index.js 2.2 MB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697186981869918700187011870218703187041870518706187071870818709187101871118712187131871418715187161871718718187191872018721187221872318724187251872618727187281872918730187311873218733187341873518736187371873818739187401874118742187431874418745187461874718748187491875018751187521875318754187551875618757187581875918760187611876218763187641876518766187671876818769187701877118772187731877418775187761877718778187791878018781187821878318784187851878618787187881878918790187911879218793187941879518796187971879818799188001880118802188031880418805188061880718808188091881018811188121881318814188151881618817188181881918820188211882218823188241882518826188271882818829188301883118832188331883418835188361883718838188391884018841188421884318844188451884618847188481884918850188511885218853188541885518856188571885818859188601886118862188631886418865188661886718868188691887018871188721887318874188751887618877188781887918880188811888218883188841888518886188871888818889188901889118892188931889418895188961889718898188991890018901189021890318904189051890618907189081890918910189111891218913189141891518916189171891818919189201892118922189231892418925189261892718928189291893018931189321893318934189351893618937189381893918940189411894218943189441894518946189471894818949189501895118952189531895418955189561895718958189591896018961189621896318964189651896618967189681896918970189711897218973189741897518976189771897818979189801898118982189831898418985189861898718988189891899018991189921899318994189951899618997189981899919000190011900219003190041900519006190071900819009190101901119012190131901419015190161901719018190191902019021190221902319024190251902619027190281902919030190311903219033190341903519036190371903819039190401904119042190431904419045190461904719048190491905019051190521905319054190551905619057190581905919060190611906219063190641906519066190671906819069190701907119072190731907419075190761907719078190791908019081190821908319084190851908619087190881908919090190911909219093190941909519096190971909819099191001910119102191031910419105191061910719108191091911019111191121911319114191151911619117191181911919120191211912219123191241912519126191271912819129191301913119132191331913419135191361913719138191391914019141191421914319144191451914619147191481914919150191511915219153191541915519156191571915819159191601916119162191631916419165191661916719168191691917019171191721917319174191751917619177191781917919180191811918219183191841918519186191871918819189191901919119192191931919419195191961919719198191991920019201192021920319204192051920619207192081920919210192111921219213192141921519216192171921819219192201922119222192231922419225192261922719228192291923019231192321923319234192351923619237192381923919240192411924219243192441924519246192471924819249192501925119252192531925419255192561925719258192591926019261192621926319264192651926619267192681926919270192711927219273192741927519276192771927819279192801928119282192831928419285192861928719288192891929019291192921929319294192951929619297192981929919300193011930219303193041930519306193071930819309193101931119312193131931419315193161931719318193191932019321193221932319324193251932619327193281932919330193311933219333193341933519336193371933819339193401934119342193431934419345193461934719348193491935019351193521935319354193551935619357193581935919360193611936219363193641936519366193671936819369193701937119372193731937419375193761937719378193791938019381193821938319384193851938619387193881938919390193911939219393193941939519396193971939819399194001940119402194031940419405194061940719408194091941019411194121941319414194151941619417194181941919420194211942219423194241942519426194271942819429194301943119432194331943419435194361943719438194391944019441194421944319444194451944619447194481944919450194511945219453194541945519456194571945819459194601946119462194631946419465194661946719468194691947019471194721947319474194751947619477194781947919480194811948219483194841948519486194871948819489194901949119492194931949419495194961949719498194991950019501195021950319504195051950619507195081950919510195111951219513195141951519516195171951819519195201952119522195231952419525195261952719528195291953019531195321953319534195351953619537195381953919540195411954219543195441954519546195471954819549195501955119552195531955419555195561955719558195591956019561195621956319564195651956619567195681956919570195711957219573195741957519576195771957819579195801958119582195831958419585195861958719588195891959019591195921959319594195951959619597195981959919600196011960219603196041960519606196071960819609196101961119612196131961419615196161961719618196191962019621196221962319624196251962619627196281962919630196311963219633196341963519636196371963819639196401964119642196431964419645196461964719648196491965019651196521965319654196551965619657196581965919660196611966219663196641966519666196671966819669196701967119672196731967419675196761967719678196791968019681196821968319684196851968619687196881968919690196911969219693196941969519696196971969819699197001970119702197031970419705197061970719708197091971019711197121971319714197151971619717197181971919720197211972219723197241972519726197271972819729197301973119732197331973419735197361973719738197391974019741197421974319744197451974619747197481974919750197511975219753197541975519756197571975819759197601976119762197631976419765197661976719768197691977019771197721977319774197751977619777197781977919780197811978219783197841978519786197871978819789197901979119792197931979419795197961979719798197991980019801198021980319804198051980619807198081980919810198111981219813198141981519816198171981819819198201982119822198231982419825198261982719828198291983019831198321983319834198351983619837198381983919840198411984219843198441984519846198471984819849198501985119852198531985419855198561985719858198591986019861198621986319864198651986619867198681986919870198711987219873198741987519876198771987819879198801988119882198831988419885198861988719888198891989019891198921989319894198951989619897198981989919900199011990219903199041990519906199071990819909199101991119912199131991419915199161991719918199191992019921199221992319924199251992619927199281992919930199311993219933199341993519936199371993819939199401994119942199431994419945199461994719948199491995019951199521995319954199551995619957199581995919960199611996219963199641996519966199671996819969199701997119972199731997419975199761997719978199791998019981199821998319984199851998619987199881998919990199911999219993199941999519996199971999819999200002000120002200032000420005200062000720008200092001020011200122001320014200152001620017200182001920020200212002220023200242002520026200272002820029200302003120032200332003420035200362003720038200392004020041200422004320044200452004620047200482004920050200512005220053200542005520056200572005820059200602006120062200632006420065200662006720068200692007020071200722007320074200752007620077200782007920080200812008220083200842008520086200872008820089200902009120092200932009420095200962009720098200992010020101201022010320104201052010620107201082010920110201112011220113201142011520116201172011820119201202012120122201232012420125201262012720128201292013020131201322013320134201352013620137201382013920140201412014220143201442014520146201472014820149201502015120152201532015420155201562015720158201592016020161201622016320164201652016620167201682016920170201712017220173201742017520176201772017820179201802018120182201832018420185201862018720188201892019020191201922019320194201952019620197201982019920200202012020220203202042020520206202072020820209202102021120212202132021420215202162021720218202192022020221202222022320224202252022620227202282022920230202312023220233202342023520236202372023820239202402024120242202432024420245202462024720248202492025020251202522025320254202552025620257202582025920260202612026220263202642026520266202672026820269202702027120272202732027420275202762027720278202792028020281202822028320284202852028620287202882028920290202912029220293202942029520296202972029820299203002030120302203032030420305203062030720308203092031020311203122031320314203152031620317203182031920320203212032220323203242032520326203272032820329203302033120332203332033420335203362033720338203392034020341203422034320344203452034620347203482034920350203512035220353203542035520356203572035820359203602036120362203632036420365203662036720368203692037020371203722037320374203752037620377203782037920380203812038220383203842038520386203872038820389203902039120392203932039420395203962039720398203992040020401204022040320404204052040620407204082040920410204112041220413204142041520416204172041820419204202042120422204232042420425204262042720428204292043020431204322043320434204352043620437204382043920440204412044220443204442044520446204472044820449204502045120452204532045420455204562045720458204592046020461204622046320464204652046620467204682046920470204712047220473204742047520476204772047820479204802048120482204832048420485204862048720488204892049020491204922049320494204952049620497204982049920500205012050220503205042050520506205072050820509205102051120512205132051420515205162051720518205192052020521205222052320524205252052620527205282052920530205312053220533205342053520536205372053820539205402054120542205432054420545205462054720548205492055020551205522055320554205552055620557205582055920560205612056220563205642056520566205672056820569205702057120572205732057420575205762057720578205792058020581205822058320584205852058620587205882058920590205912059220593205942059520596205972059820599206002060120602206032060420605206062060720608206092061020611206122061320614206152061620617206182061920620206212062220623206242062520626206272062820629206302063120632206332063420635206362063720638206392064020641206422064320644206452064620647206482064920650206512065220653206542065520656206572065820659206602066120662206632066420665206662066720668206692067020671206722067320674206752067620677206782067920680206812068220683206842068520686206872068820689206902069120692206932069420695206962069720698206992070020701207022070320704207052070620707207082070920710207112071220713207142071520716207172071820719207202072120722207232072420725207262072720728207292073020731207322073320734207352073620737207382073920740207412074220743207442074520746207472074820749207502075120752207532075420755207562075720758207592076020761207622076320764207652076620767207682076920770207712077220773207742077520776207772077820779207802078120782207832078420785207862078720788207892079020791207922079320794207952079620797207982079920800208012080220803208042080520806208072080820809208102081120812208132081420815208162081720818208192082020821208222082320824208252082620827208282082920830208312083220833208342083520836208372083820839208402084120842208432084420845208462084720848208492085020851208522085320854208552085620857208582085920860208612086220863208642086520866208672086820869208702087120872208732087420875208762087720878208792088020881208822088320884208852088620887208882088920890208912089220893208942089520896208972089820899209002090120902209032090420905209062090720908209092091020911209122091320914209152091620917209182091920920209212092220923209242092520926209272092820929209302093120932209332093420935209362093720938209392094020941209422094320944209452094620947209482094920950209512095220953209542095520956209572095820959209602096120962209632096420965209662096720968209692097020971209722097320974209752097620977209782097920980209812098220983209842098520986209872098820989209902099120992209932099420995209962099720998209992100021001210022100321004210052100621007210082100921010210112101221013210142101521016210172101821019210202102121022210232102421025210262102721028210292103021031210322103321034210352103621037210382103921040210412104221043210442104521046210472104821049210502105121052210532105421055210562105721058210592106021061210622106321064210652106621067210682106921070210712107221073210742107521076210772107821079210802108121082210832108421085210862108721088210892109021091210922109321094210952109621097210982109921100211012110221103211042110521106211072110821109211102111121112211132111421115211162111721118211192112021121211222112321124211252112621127211282112921130211312113221133211342113521136211372113821139211402114121142211432114421145211462114721148211492115021151211522115321154211552115621157211582115921160211612116221163211642116521166211672116821169211702117121172211732117421175211762117721178211792118021181211822118321184211852118621187211882118921190211912119221193211942119521196211972119821199212002120121202212032120421205212062120721208212092121021211212122121321214212152121621217212182121921220212212122221223212242122521226212272122821229212302123121232212332123421235212362123721238212392124021241212422124321244212452124621247212482124921250212512125221253212542125521256212572125821259212602126121262212632126421265212662126721268212692127021271212722127321274212752127621277212782127921280212812128221283212842128521286212872128821289212902129121292212932129421295212962129721298212992130021301213022130321304213052130621307213082130921310213112131221313213142131521316213172131821319213202132121322213232132421325213262132721328213292133021331213322133321334213352133621337213382133921340213412134221343213442134521346213472134821349213502135121352213532135421355213562135721358213592136021361213622136321364213652136621367213682136921370213712137221373213742137521376213772137821379213802138121382213832138421385213862138721388213892139021391213922139321394213952139621397213982139921400214012140221403214042140521406214072140821409214102141121412214132141421415214162141721418214192142021421214222142321424214252142621427214282142921430214312143221433214342143521436214372143821439214402144121442214432144421445214462144721448214492145021451214522145321454214552145621457214582145921460214612146221463214642146521466214672146821469214702147121472214732147421475214762147721478214792148021481214822148321484214852148621487214882148921490214912149221493214942149521496214972149821499215002150121502215032150421505215062150721508215092151021511215122151321514215152151621517215182151921520215212152221523215242152521526215272152821529215302153121532215332153421535215362153721538215392154021541215422154321544215452154621547215482154921550215512155221553215542155521556215572155821559215602156121562215632156421565215662156721568215692157021571215722157321574215752157621577215782157921580215812158221583215842158521586215872158821589215902159121592215932159421595215962159721598215992160021601216022160321604216052160621607216082160921610216112161221613216142161521616216172161821619216202162121622216232162421625216262162721628216292163021631216322163321634216352163621637216382163921640216412164221643216442164521646216472164821649216502165121652216532165421655216562165721658216592166021661216622166321664216652166621667216682166921670216712167221673216742167521676216772167821679216802168121682216832168421685216862168721688216892169021691216922169321694216952169621697216982169921700217012170221703217042170521706217072170821709217102171121712217132171421715217162171721718217192172021721217222172321724217252172621727217282172921730217312173221733217342173521736217372173821739217402174121742217432174421745217462174721748217492175021751217522175321754217552175621757217582175921760217612176221763217642176521766217672176821769217702177121772217732177421775217762177721778217792178021781217822178321784217852178621787217882178921790217912179221793217942179521796217972179821799218002180121802218032180421805218062180721808218092181021811218122181321814218152181621817218182181921820218212182221823218242182521826218272182821829218302183121832218332183421835218362183721838218392184021841218422184321844218452184621847218482184921850218512185221853218542185521856218572185821859218602186121862218632186421865218662186721868218692187021871218722187321874218752187621877218782187921880218812188221883218842188521886218872188821889218902189121892218932189421895218962189721898218992190021901219022190321904219052190621907219082190921910219112191221913219142191521916219172191821919219202192121922219232192421925219262192721928219292193021931219322193321934219352193621937219382193921940219412194221943219442194521946219472194821949219502195121952219532195421955219562195721958219592196021961219622196321964219652196621967219682196921970219712197221973219742197521976219772197821979219802198121982219832198421985219862198721988219892199021991219922199321994219952199621997219982199922000220012200222003220042200522006220072200822009220102201122012220132201422015220162201722018220192202022021220222202322024220252202622027220282202922030220312203222033220342203522036220372203822039220402204122042220432204422045220462204722048220492205022051220522205322054220552205622057220582205922060220612206222063220642206522066220672206822069220702207122072220732207422075220762207722078220792208022081220822208322084220852208622087220882208922090220912209222093220942209522096220972209822099221002210122102221032210422105221062210722108221092211022111221122211322114221152211622117221182211922120221212212222123221242212522126221272212822129221302213122132221332213422135221362213722138221392214022141221422214322144221452214622147221482214922150221512215222153221542215522156221572215822159221602216122162221632216422165221662216722168221692217022171221722217322174221752217622177221782217922180221812218222183221842218522186221872218822189221902219122192221932219422195221962219722198221992220022201222022220322204222052220622207222082220922210222112221222213222142221522216222172221822219222202222122222222232222422225222262222722228222292223022231222322223322234222352223622237222382223922240222412224222243222442224522246222472224822249222502225122252222532225422255222562225722258222592226022261222622226322264222652226622267222682226922270222712227222273222742227522276222772227822279222802228122282222832228422285222862228722288222892229022291222922229322294222952229622297222982229922300223012230222303223042230522306223072230822309223102231122312223132231422315223162231722318223192232022321223222232322324223252232622327223282232922330223312233222333223342233522336223372233822339223402234122342223432234422345223462234722348223492235022351223522235322354223552235622357223582235922360223612236222363223642236522366223672236822369223702237122372223732237422375223762237722378223792238022381223822238322384223852238622387223882238922390223912239222393223942239522396223972239822399224002240122402224032240422405224062240722408224092241022411224122241322414224152241622417224182241922420224212242222423224242242522426224272242822429224302243122432224332243422435224362243722438224392244022441224422244322444224452244622447224482244922450224512245222453224542245522456224572245822459224602246122462224632246422465224662246722468224692247022471224722247322474224752247622477224782247922480224812248222483224842248522486224872248822489224902249122492224932249422495224962249722498224992250022501225022250322504225052250622507225082250922510225112251222513225142251522516225172251822519225202252122522225232252422525225262252722528225292253022531225322253322534225352253622537225382253922540225412254222543225442254522546225472254822549225502255122552225532255422555225562255722558225592256022561225622256322564225652256622567225682256922570225712257222573225742257522576225772257822579225802258122582225832258422585225862258722588225892259022591225922259322594225952259622597225982259922600226012260222603226042260522606226072260822609226102261122612226132261422615226162261722618226192262022621226222262322624226252262622627226282262922630226312263222633226342263522636226372263822639226402264122642226432264422645226462264722648226492265022651226522265322654226552265622657226582265922660226612266222663226642266522666226672266822669226702267122672226732267422675226762267722678226792268022681226822268322684226852268622687226882268922690226912269222693226942269522696226972269822699227002270122702227032270422705227062270722708227092271022711227122271322714227152271622717227182271922720227212272222723227242272522726227272272822729227302273122732227332273422735227362273722738227392274022741227422274322744227452274622747227482274922750227512275222753227542275522756227572275822759227602276122762227632276422765227662276722768227692277022771227722277322774227752277622777227782277922780227812278222783227842278522786227872278822789227902279122792227932279422795227962279722798227992280022801228022280322804228052280622807228082280922810228112281222813228142281522816228172281822819228202282122822228232282422825228262282722828228292283022831228322283322834228352283622837228382283922840228412284222843228442284522846228472284822849228502285122852228532285422855228562285722858228592286022861228622286322864228652286622867228682286922870228712287222873228742287522876228772287822879228802288122882228832288422885228862288722888228892289022891228922289322894228952289622897228982289922900229012290222903229042290522906229072290822909229102291122912229132291422915229162291722918229192292022921229222292322924229252292622927229282292922930229312293222933229342293522936229372293822939229402294122942229432294422945229462294722948229492295022951229522295322954229552295622957229582295922960229612296222963229642296522966229672296822969229702297122972229732297422975229762297722978229792298022981229822298322984229852298622987229882298922990229912299222993229942299522996229972299822999230002300123002230032300423005230062300723008230092301023011230122301323014230152301623017230182301923020230212302223023230242302523026230272302823029230302303123032230332303423035230362303723038230392304023041230422304323044230452304623047230482304923050230512305223053230542305523056230572305823059230602306123062230632306423065230662306723068230692307023071230722307323074230752307623077230782307923080230812308223083230842308523086230872308823089230902309123092230932309423095230962309723098230992310023101231022310323104231052310623107231082310923110231112311223113231142311523116231172311823119231202312123122231232312423125231262312723128231292313023131231322313323134231352313623137231382313923140231412314223143231442314523146231472314823149231502315123152231532315423155231562315723158231592316023161231622316323164231652316623167231682316923170231712317223173231742317523176231772317823179231802318123182231832318423185231862318723188231892319023191231922319323194231952319623197231982319923200232012320223203232042320523206232072320823209232102321123212232132321423215232162321723218232192322023221232222322323224232252322623227232282322923230232312323223233232342323523236232372323823239232402324123242232432324423245232462324723248232492325023251232522325323254232552325623257232582325923260232612326223263232642326523266232672326823269232702327123272232732327423275232762327723278232792328023281232822328323284232852328623287232882328923290232912329223293232942329523296232972329823299233002330123302233032330423305233062330723308233092331023311233122331323314233152331623317233182331923320233212332223323233242332523326233272332823329233302333123332233332333423335233362333723338233392334023341233422334323344233452334623347233482334923350233512335223353233542335523356233572335823359233602336123362233632336423365233662336723368233692337023371233722337323374233752337623377233782337923380233812338223383233842338523386233872338823389233902339123392233932339423395233962339723398233992340023401234022340323404234052340623407234082340923410234112341223413234142341523416234172341823419234202342123422234232342423425234262342723428234292343023431234322343323434234352343623437234382343923440234412344223443234442344523446234472344823449234502345123452234532345423455234562345723458234592346023461234622346323464234652346623467234682346923470234712347223473234742347523476234772347823479234802348123482234832348423485234862348723488234892349023491234922349323494234952349623497234982349923500235012350223503235042350523506235072350823509235102351123512235132351423515235162351723518235192352023521235222352323524235252352623527235282352923530235312353223533235342353523536235372353823539235402354123542235432354423545235462354723548235492355023551235522355323554235552355623557235582355923560235612356223563235642356523566235672356823569235702357123572235732357423575235762357723578235792358023581235822358323584235852358623587235882358923590235912359223593235942359523596235972359823599236002360123602236032360423605236062360723608236092361023611236122361323614236152361623617236182361923620236212362223623236242362523626236272362823629236302363123632236332363423635236362363723638236392364023641236422364323644236452364623647236482364923650236512365223653236542365523656236572365823659236602366123662236632366423665236662366723668236692367023671236722367323674236752367623677236782367923680236812368223683236842368523686236872368823689236902369123692236932369423695236962369723698236992370023701237022370323704237052370623707237082370923710237112371223713237142371523716237172371823719237202372123722237232372423725237262372723728237292373023731237322373323734237352373623737237382373923740237412374223743237442374523746237472374823749237502375123752237532375423755237562375723758237592376023761237622376323764237652376623767237682376923770237712377223773237742377523776237772377823779237802378123782237832378423785237862378723788237892379023791237922379323794237952379623797237982379923800238012380223803238042380523806238072380823809238102381123812238132381423815238162381723818238192382023821238222382323824238252382623827238282382923830238312383223833238342383523836238372383823839238402384123842238432384423845238462384723848238492385023851238522385323854238552385623857238582385923860238612386223863238642386523866238672386823869238702387123872238732387423875238762387723878238792388023881238822388323884238852388623887238882388923890238912389223893238942389523896238972389823899239002390123902239032390423905239062390723908239092391023911239122391323914239152391623917239182391923920239212392223923239242392523926239272392823929239302393123932239332393423935239362393723938239392394023941239422394323944239452394623947239482394923950239512395223953239542395523956239572395823959239602396123962239632396423965239662396723968239692397023971239722397323974239752397623977239782397923980239812398223983239842398523986239872398823989239902399123992239932399423995239962399723998239992400024001240022400324004240052400624007240082400924010240112401224013240142401524016240172401824019240202402124022240232402424025240262402724028240292403024031240322403324034240352403624037240382403924040240412404224043240442404524046240472404824049240502405124052240532405424055240562405724058240592406024061240622406324064240652406624067240682406924070240712407224073240742407524076240772407824079240802408124082240832408424085240862408724088240892409024091240922409324094240952409624097240982409924100241012410224103241042410524106241072410824109241102411124112241132411424115241162411724118241192412024121241222412324124241252412624127241282412924130241312413224133241342413524136241372413824139241402414124142241432414424145241462414724148241492415024151241522415324154241552415624157241582415924160241612416224163241642416524166241672416824169241702417124172241732417424175241762417724178241792418024181241822418324184241852418624187241882418924190241912419224193241942419524196241972419824199242002420124202242032420424205242062420724208242092421024211242122421324214242152421624217242182421924220242212422224223242242422524226242272422824229242302423124232242332423424235242362423724238242392424024241242422424324244242452424624247242482424924250242512425224253242542425524256242572425824259242602426124262242632426424265242662426724268242692427024271242722427324274242752427624277242782427924280242812428224283242842428524286242872428824289242902429124292242932429424295242962429724298242992430024301243022430324304243052430624307243082430924310243112431224313243142431524316243172431824319243202432124322243232432424325243262432724328243292433024331243322433324334243352433624337243382433924340243412434224343243442434524346243472434824349243502435124352243532435424355243562435724358243592436024361243622436324364243652436624367243682436924370243712437224373243742437524376243772437824379243802438124382243832438424385243862438724388243892439024391243922439324394243952439624397243982439924400244012440224403244042440524406244072440824409244102441124412244132441424415244162441724418244192442024421244222442324424244252442624427244282442924430244312443224433244342443524436244372443824439244402444124442244432444424445244462444724448244492445024451244522445324454244552445624457244582445924460244612446224463244642446524466244672446824469244702447124472244732447424475244762447724478244792448024481244822448324484244852448624487244882448924490244912449224493244942449524496244972449824499245002450124502245032450424505245062450724508245092451024511245122451324514245152451624517245182451924520245212452224523245242452524526245272452824529245302453124532245332453424535245362453724538245392454024541245422454324544245452454624547245482454924550245512455224553245542455524556245572455824559245602456124562245632456424565245662456724568245692457024571245722457324574245752457624577245782457924580245812458224583245842458524586245872458824589245902459124592245932459424595245962459724598245992460024601246022460324604246052460624607246082460924610246112461224613246142461524616246172461824619246202462124622246232462424625246262462724628246292463024631246322463324634246352463624637246382463924640246412464224643246442464524646246472464824649246502465124652246532465424655246562465724658246592466024661246622466324664246652466624667246682466924670246712467224673246742467524676246772467824679246802468124682246832468424685246862468724688246892469024691246922469324694246952469624697246982469924700247012470224703247042470524706247072470824709247102471124712247132471424715247162471724718247192472024721247222472324724247252472624727247282472924730247312473224733247342473524736247372473824739247402474124742247432474424745247462474724748247492475024751247522475324754247552475624757247582475924760247612476224763247642476524766247672476824769247702477124772247732477424775247762477724778247792478024781247822478324784247852478624787247882478924790247912479224793247942479524796247972479824799248002480124802248032480424805248062480724808248092481024811248122481324814248152481624817248182481924820248212482224823248242482524826248272482824829248302483124832248332483424835248362483724838248392484024841248422484324844248452484624847248482484924850248512485224853248542485524856248572485824859248602486124862248632486424865248662486724868248692487024871248722487324874248752487624877248782487924880248812488224883248842488524886248872488824889248902489124892248932489424895248962489724898248992490024901249022490324904249052490624907249082490924910249112491224913249142491524916249172491824919249202492124922249232492424925249262492724928249292493024931249322493324934249352493624937249382493924940249412494224943249442494524946249472494824949249502495124952249532495424955249562495724958249592496024961249622496324964249652496624967249682496924970249712497224973249742497524976249772497824979249802498124982249832498424985249862498724988249892499024991249922499324994249952499624997249982499925000250012500225003250042500525006250072500825009250102501125012250132501425015250162501725018250192502025021250222502325024250252502625027250282502925030250312503225033250342503525036250372503825039250402504125042250432504425045250462504725048250492505025051250522505325054250552505625057250582505925060250612506225063250642506525066250672506825069250702507125072250732507425075250762507725078250792508025081250822508325084250852508625087250882508925090250912509225093250942509525096250972509825099251002510125102251032510425105251062510725108251092511025111251122511325114251152511625117251182511925120251212512225123251242512525126251272512825129251302513125132251332513425135251362513725138251392514025141251422514325144251452514625147251482514925150251512515225153251542515525156251572515825159251602516125162251632516425165251662516725168251692517025171251722517325174251752517625177251782517925180251812518225183251842518525186251872518825189251902519125192251932519425195251962519725198251992520025201252022520325204252052520625207252082520925210252112521225213252142521525216252172521825219252202522125222252232522425225252262522725228252292523025231252322523325234252352523625237252382523925240252412524225243252442524525246252472524825249252502525125252252532525425255252562525725258252592526025261252622526325264252652526625267252682526925270252712527225273252742527525276252772527825279252802528125282252832528425285252862528725288252892529025291252922529325294252952529625297252982529925300253012530225303253042530525306253072530825309253102531125312253132531425315253162531725318253192532025321253222532325324253252532625327253282532925330253312533225333253342533525336253372533825339253402534125342253432534425345253462534725348253492535025351253522535325354253552535625357253582535925360253612536225363253642536525366253672536825369253702537125372253732537425375253762537725378253792538025381253822538325384253852538625387253882538925390253912539225393253942539525396253972539825399254002540125402254032540425405254062540725408254092541025411254122541325414254152541625417254182541925420254212542225423254242542525426254272542825429254302543125432254332543425435254362543725438254392544025441254422544325444254452544625447254482544925450254512545225453254542545525456254572545825459254602546125462254632546425465254662546725468254692547025471254722547325474254752547625477254782547925480254812548225483254842548525486254872548825489254902549125492254932549425495254962549725498254992550025501255022550325504255052550625507255082550925510255112551225513255142551525516255172551825519255202552125522255232552425525255262552725528255292553025531255322553325534255352553625537255382553925540255412554225543255442554525546255472554825549255502555125552255532555425555255562555725558255592556025561255622556325564255652556625567255682556925570255712557225573255742557525576255772557825579255802558125582255832558425585255862558725588255892559025591255922559325594255952559625597255982559925600256012560225603256042560525606256072560825609256102561125612256132561425615256162561725618256192562025621256222562325624256252562625627256282562925630256312563225633256342563525636256372563825639256402564125642256432564425645256462564725648256492565025651256522565325654256552565625657256582565925660256612566225663256642566525666256672566825669256702567125672256732567425675256762567725678256792568025681256822568325684256852568625687256882568925690256912569225693256942569525696256972569825699257002570125702257032570425705257062570725708257092571025711257122571325714257152571625717257182571925720257212572225723257242572525726257272572825729257302573125732257332573425735257362573725738257392574025741257422574325744257452574625747257482574925750257512575225753257542575525756257572575825759257602576125762257632576425765257662576725768257692577025771257722577325774257752577625777257782577925780257812578225783257842578525786257872578825789257902579125792257932579425795257962579725798257992580025801258022580325804258052580625807258082580925810258112581225813258142581525816258172581825819258202582125822258232582425825258262582725828258292583025831258322583325834258352583625837258382583925840258412584225843258442584525846258472584825849258502585125852258532585425855258562585725858258592586025861258622586325864258652586625867258682586925870258712587225873258742587525876258772587825879258802588125882258832588425885258862588725888258892589025891258922589325894258952589625897258982589925900259012590225903259042590525906259072590825909259102591125912259132591425915259162591725918259192592025921259222592325924259252592625927259282592925930259312593225933259342593525936259372593825939259402594125942259432594425945259462594725948259492595025951259522595325954259552595625957259582595925960259612596225963259642596525966259672596825969259702597125972259732597425975259762597725978259792598025981259822598325984259852598625987259882598925990259912599225993259942599525996259972599825999260002600126002260032600426005260062600726008260092601026011260122601326014260152601626017260182601926020260212602226023260242602526026260272602826029260302603126032260332603426035260362603726038260392604026041260422604326044260452604626047260482604926050260512605226053260542605526056260572605826059260602606126062260632606426065260662606726068260692607026071260722607326074260752607626077260782607926080260812608226083260842608526086260872608826089260902609126092260932609426095260962609726098260992610026101261022610326104261052610626107261082610926110261112611226113261142611526116261172611826119261202612126122261232612426125261262612726128261292613026131261322613326134261352613626137261382613926140261412614226143261442614526146261472614826149261502615126152261532615426155261562615726158261592616026161261622616326164261652616626167261682616926170261712617226173261742617526176261772617826179261802618126182261832618426185261862618726188261892619026191261922619326194261952619626197261982619926200262012620226203262042620526206262072620826209262102621126212262132621426215262162621726218262192622026221262222622326224262252622626227262282622926230262312623226233262342623526236262372623826239262402624126242262432624426245262462624726248262492625026251262522625326254262552625626257262582625926260262612626226263262642626526266262672626826269262702627126272262732627426275262762627726278262792628026281262822628326284262852628626287262882628926290262912629226293262942629526296262972629826299263002630126302263032630426305263062630726308263092631026311263122631326314263152631626317263182631926320263212632226323263242632526326263272632826329263302633126332263332633426335263362633726338263392634026341263422634326344263452634626347263482634926350263512635226353263542635526356263572635826359263602636126362263632636426365263662636726368263692637026371263722637326374263752637626377263782637926380263812638226383263842638526386263872638826389263902639126392263932639426395263962639726398263992640026401264022640326404264052640626407264082640926410264112641226413264142641526416264172641826419264202642126422264232642426425264262642726428264292643026431264322643326434264352643626437264382643926440264412644226443264442644526446264472644826449264502645126452264532645426455264562645726458264592646026461264622646326464264652646626467264682646926470264712647226473264742647526476264772647826479264802648126482264832648426485264862648726488264892649026491264922649326494264952649626497264982649926500265012650226503265042650526506265072650826509265102651126512265132651426515265162651726518265192652026521265222652326524265252652626527265282652926530265312653226533265342653526536265372653826539265402654126542265432654426545265462654726548265492655026551265522655326554265552655626557265582655926560265612656226563265642656526566265672656826569265702657126572265732657426575265762657726578265792658026581265822658326584265852658626587265882658926590265912659226593265942659526596265972659826599266002660126602266032660426605266062660726608266092661026611266122661326614266152661626617266182661926620266212662226623266242662526626266272662826629266302663126632266332663426635266362663726638266392664026641266422664326644266452664626647266482664926650266512665226653266542665526656266572665826659266602666126662266632666426665266662666726668266692667026671266722667326674266752667626677266782667926680266812668226683266842668526686266872668826689266902669126692266932669426695266962669726698266992670026701267022670326704267052670626707267082670926710267112671226713267142671526716267172671826719267202672126722267232672426725267262672726728267292673026731267322673326734267352673626737267382673926740267412674226743267442674526746267472674826749267502675126752267532675426755267562675726758267592676026761267622676326764267652676626767267682676926770267712677226773267742677526776267772677826779267802678126782267832678426785267862678726788267892679026791267922679326794267952679626797267982679926800268012680226803268042680526806268072680826809268102681126812268132681426815268162681726818268192682026821268222682326824268252682626827268282682926830268312683226833268342683526836268372683826839268402684126842268432684426845268462684726848268492685026851268522685326854268552685626857268582685926860268612686226863268642686526866268672686826869268702687126872268732687426875268762687726878268792688026881268822688326884268852688626887268882688926890268912689226893268942689526896268972689826899269002690126902269032690426905269062690726908269092691026911269122691326914269152691626917269182691926920269212692226923269242692526926269272692826929269302693126932269332693426935269362693726938269392694026941269422694326944269452694626947269482694926950269512695226953269542695526956269572695826959269602696126962269632696426965269662696726968269692697026971269722697326974269752697626977269782697926980269812698226983269842698526986269872698826989269902699126992269932699426995269962699726998269992700027001270022700327004270052700627007270082700927010270112701227013270142701527016270172701827019270202702127022270232702427025270262702727028270292703027031270322703327034270352703627037270382703927040270412704227043270442704527046270472704827049270502705127052270532705427055270562705727058270592706027061270622706327064270652706627067270682706927070270712707227073270742707527076270772707827079270802708127082270832708427085270862708727088270892709027091270922709327094270952709627097270982709927100271012710227103271042710527106271072710827109271102711127112271132711427115271162711727118271192712027121271222712327124271252712627127271282712927130271312713227133271342713527136271372713827139271402714127142271432714427145271462714727148271492715027151271522715327154271552715627157271582715927160271612716227163271642716527166271672716827169271702717127172271732717427175271762717727178271792718027181271822718327184271852718627187271882718927190271912719227193271942719527196271972719827199272002720127202272032720427205272062720727208272092721027211272122721327214272152721627217272182721927220272212722227223272242722527226272272722827229272302723127232272332723427235272362723727238272392724027241272422724327244272452724627247272482724927250272512725227253272542725527256272572725827259272602726127262272632726427265272662726727268272692727027271272722727327274272752727627277272782727927280272812728227283272842728527286272872728827289272902729127292272932729427295272962729727298272992730027301273022730327304273052730627307273082730927310273112731227313273142731527316273172731827319273202732127322273232732427325273262732727328273292733027331273322733327334273352733627337273382733927340273412734227343273442734527346273472734827349273502735127352273532735427355273562735727358273592736027361273622736327364273652736627367273682736927370273712737227373273742737527376273772737827379273802738127382273832738427385273862738727388273892739027391273922739327394273952739627397273982739927400274012740227403274042740527406274072740827409274102741127412274132741427415274162741727418274192742027421274222742327424274252742627427274282742927430274312743227433274342743527436274372743827439274402744127442274432744427445274462744727448274492745027451274522745327454274552745627457274582745927460274612746227463274642746527466274672746827469274702747127472274732747427475274762747727478274792748027481274822748327484274852748627487274882748927490274912749227493274942749527496274972749827499275002750127502275032750427505275062750727508275092751027511275122751327514275152751627517275182751927520275212752227523275242752527526275272752827529275302753127532275332753427535275362753727538275392754027541275422754327544275452754627547275482754927550275512755227553275542755527556275572755827559275602756127562275632756427565275662756727568275692757027571275722757327574275752757627577275782757927580275812758227583275842758527586275872758827589275902759127592275932759427595275962759727598275992760027601276022760327604276052760627607276082760927610276112761227613276142761527616276172761827619276202762127622276232762427625276262762727628276292763027631276322763327634276352763627637276382763927640276412764227643276442764527646276472764827649276502765127652276532765427655276562765727658276592766027661276622766327664276652766627667276682766927670276712767227673276742767527676276772767827679276802768127682276832768427685276862768727688276892769027691276922769327694276952769627697276982769927700277012770227703277042770527706277072770827709277102771127712277132771427715277162771727718277192772027721277222772327724277252772627727277282772927730277312773227733277342773527736277372773827739277402774127742277432774427745277462774727748277492775027751277522775327754277552775627757277582775927760277612776227763277642776527766277672776827769277702777127772277732777427775277762777727778277792778027781277822778327784277852778627787277882778927790277912779227793277942779527796277972779827799278002780127802278032780427805278062780727808278092781027811278122781327814278152781627817278182781927820278212782227823278242782527826278272782827829278302783127832278332783427835278362783727838278392784027841278422784327844278452784627847278482784927850278512785227853278542785527856278572785827859278602786127862278632786427865278662786727868278692787027871278722787327874278752787627877278782787927880278812788227883278842788527886278872788827889278902789127892278932789427895278962789727898278992790027901279022790327904279052790627907279082790927910279112791227913279142791527916279172791827919279202792127922279232792427925279262792727928279292793027931279322793327934279352793627937279382793927940279412794227943279442794527946279472794827949279502795127952279532795427955279562795727958279592796027961279622796327964279652796627967279682796927970279712797227973279742797527976279772797827979279802798127982279832798427985279862798727988279892799027991279922799327994279952799627997279982799928000280012800228003280042800528006280072800828009280102801128012280132801428015280162801728018280192802028021280222802328024280252802628027280282802928030280312803228033280342803528036280372803828039280402804128042280432804428045280462804728048280492805028051280522805328054280552805628057280582805928060280612806228063280642806528066280672806828069280702807128072280732807428075280762807728078280792808028081280822808328084280852808628087280882808928090280912809228093280942809528096280972809828099281002810128102281032810428105281062810728108281092811028111281122811328114281152811628117281182811928120281212812228123281242812528126281272812828129281302813128132281332813428135281362813728138281392814028141281422814328144281452814628147281482814928150281512815228153281542815528156281572815828159281602816128162281632816428165281662816728168281692817028171281722817328174281752817628177281782817928180281812818228183281842818528186281872818828189281902819128192281932819428195281962819728198281992820028201282022820328204282052820628207282082820928210282112821228213282142821528216282172821828219282202822128222282232822428225282262822728228282292823028231282322823328234282352823628237282382823928240282412824228243282442824528246282472824828249282502825128252282532825428255282562825728258282592826028261282622826328264282652826628267282682826928270282712827228273282742827528276282772827828279282802828128282282832828428285282862828728288282892829028291282922829328294282952829628297282982829928300283012830228303283042830528306283072830828309283102831128312283132831428315283162831728318283192832028321283222832328324283252832628327283282832928330283312833228333283342833528336283372833828339283402834128342283432834428345283462834728348283492835028351283522835328354283552835628357283582835928360283612836228363283642836528366283672836828369283702837128372283732837428375283762837728378283792838028381283822838328384283852838628387283882838928390283912839228393283942839528396283972839828399284002840128402284032840428405284062840728408284092841028411284122841328414284152841628417284182841928420284212842228423284242842528426284272842828429284302843128432284332843428435284362843728438284392844028441284422844328444284452844628447284482844928450284512845228453284542845528456284572845828459284602846128462284632846428465284662846728468284692847028471284722847328474284752847628477284782847928480284812848228483284842848528486284872848828489284902849128492284932849428495284962849728498284992850028501285022850328504285052850628507285082850928510285112851228513285142851528516285172851828519285202852128522285232852428525285262852728528285292853028531285322853328534285352853628537285382853928540285412854228543285442854528546285472854828549285502855128552285532855428555285562855728558285592856028561285622856328564285652856628567285682856928570285712857228573285742857528576285772857828579285802858128582285832858428585285862858728588285892859028591285922859328594285952859628597285982859928600286012860228603286042860528606286072860828609286102861128612286132861428615286162861728618286192862028621286222862328624286252862628627286282862928630286312863228633286342863528636286372863828639286402864128642286432864428645286462864728648286492865028651286522865328654286552865628657286582865928660286612866228663286642866528666286672866828669286702867128672286732867428675286762867728678286792868028681286822868328684286852868628687286882868928690286912869228693286942869528696286972869828699287002870128702287032870428705287062870728708287092871028711287122871328714287152871628717287182871928720287212872228723287242872528726287272872828729287302873128732287332873428735287362873728738287392874028741287422874328744287452874628747287482874928750287512875228753287542875528756287572875828759287602876128762287632876428765287662876728768287692877028771287722877328774287752877628777287782877928780287812878228783287842878528786287872878828789287902879128792287932879428795287962879728798287992880028801288022880328804288052880628807288082880928810288112881228813288142881528816288172881828819288202882128822288232882428825288262882728828288292883028831288322883328834288352883628837288382883928840288412884228843288442884528846288472884828849288502885128852288532885428855288562885728858288592886028861288622886328864288652886628867288682886928870288712887228873288742887528876288772887828879288802888128882288832888428885288862888728888288892889028891288922889328894288952889628897288982889928900289012890228903289042890528906289072890828909289102891128912289132891428915289162891728918289192892028921289222892328924289252892628927289282892928930289312893228933289342893528936289372893828939289402894128942289432894428945289462894728948289492895028951289522895328954289552895628957289582895928960289612896228963289642896528966289672896828969289702897128972289732897428975289762897728978289792898028981289822898328984289852898628987289882898928990289912899228993289942899528996289972899828999290002900129002290032900429005290062900729008290092901029011290122901329014290152901629017290182901929020290212902229023290242902529026290272902829029290302903129032290332903429035290362903729038290392904029041290422904329044290452904629047290482904929050290512905229053290542905529056290572905829059290602906129062290632906429065290662906729068290692907029071290722907329074290752907629077290782907929080290812908229083290842908529086290872908829089290902909129092290932909429095290962909729098290992910029101291022910329104291052910629107291082910929110291112911229113291142911529116291172911829119291202912129122291232912429125291262912729128291292913029131291322913329134291352913629137291382913929140291412914229143291442914529146291472914829149291502915129152291532915429155291562915729158291592916029161291622916329164291652916629167291682916929170291712917229173291742917529176291772917829179291802918129182291832918429185291862918729188291892919029191291922919329194291952919629197291982919929200292012920229203292042920529206292072920829209292102921129212292132921429215292162921729218292192922029221292222922329224292252922629227292282922929230292312923229233292342923529236292372923829239292402924129242292432924429245292462924729248292492925029251292522925329254292552925629257292582925929260292612926229263292642926529266292672926829269292702927129272292732927429275292762927729278292792928029281292822928329284292852928629287292882928929290292912929229293292942929529296292972929829299293002930129302293032930429305293062930729308293092931029311293122931329314293152931629317293182931929320293212932229323293242932529326293272932829329293302933129332293332933429335293362933729338293392934029341293422934329344293452934629347293482934929350293512935229353293542935529356293572935829359293602936129362293632936429365293662936729368293692937029371293722937329374293752937629377293782937929380293812938229383293842938529386293872938829389293902939129392293932939429395293962939729398293992940029401294022940329404294052940629407294082940929410294112941229413294142941529416294172941829419294202942129422294232942429425294262942729428294292943029431294322943329434294352943629437294382943929440294412944229443294442944529446294472944829449294502945129452294532945429455294562945729458294592946029461294622946329464294652946629467294682946929470294712947229473294742947529476294772947829479294802948129482294832948429485294862948729488294892949029491294922949329494294952949629497294982949929500295012950229503295042950529506295072950829509295102951129512295132951429515295162951729518295192952029521295222952329524295252952629527295282952929530295312953229533295342953529536295372953829539295402954129542295432954429545295462954729548295492955029551295522955329554295552955629557295582955929560295612956229563295642956529566295672956829569295702957129572295732957429575295762957729578295792958029581295822958329584295852958629587295882958929590295912959229593295942959529596295972959829599296002960129602296032960429605296062960729608296092961029611296122961329614296152961629617296182961929620296212962229623296242962529626296272962829629296302963129632296332963429635296362963729638296392964029641296422964329644296452964629647296482964929650296512965229653296542965529656296572965829659296602966129662296632966429665296662966729668296692967029671296722967329674296752967629677296782967929680296812968229683296842968529686296872968829689296902969129692296932969429695296962969729698296992970029701297022970329704297052970629707297082970929710297112971229713297142971529716297172971829719297202972129722297232972429725297262972729728297292973029731297322973329734297352973629737297382973929740297412974229743297442974529746297472974829749297502975129752297532975429755297562975729758297592976029761297622976329764297652976629767297682976929770297712977229773297742977529776297772977829779297802978129782297832978429785297862978729788297892979029791297922979329794297952979629797297982979929800298012980229803298042980529806298072980829809298102981129812298132981429815298162981729818298192982029821298222982329824298252982629827298282982929830298312983229833298342983529836298372983829839298402984129842298432984429845298462984729848298492985029851298522985329854298552985629857298582985929860298612986229863298642986529866298672986829869298702987129872298732987429875298762987729878298792988029881298822988329884298852988629887298882988929890298912989229893298942989529896298972989829899299002990129902299032990429905299062990729908299092991029911299122991329914299152991629917299182991929920299212992229923299242992529926299272992829929299302993129932299332993429935299362993729938299392994029941299422994329944299452994629947299482994929950299512995229953299542995529956299572995829959299602996129962299632996429965299662996729968299692997029971299722997329974299752997629977299782997929980299812998229983299842998529986299872998829989299902999129992299932999429995299962999729998299993000030001300023000330004300053000630007300083000930010300113001230013300143001530016300173001830019300203002130022300233002430025300263002730028300293003030031300323003330034300353003630037300383003930040300413004230043300443004530046300473004830049300503005130052300533005430055300563005730058300593006030061300623006330064300653006630067300683006930070300713007230073300743007530076300773007830079300803008130082300833008430085300863008730088300893009030091300923009330094300953009630097300983009930100301013010230103301043010530106301073010830109301103011130112301133011430115301163011730118301193012030121301223012330124301253012630127301283012930130301313013230133301343013530136301373013830139301403014130142301433014430145301463014730148301493015030151301523015330154301553015630157301583015930160301613016230163301643016530166301673016830169301703017130172301733017430175301763017730178301793018030181301823018330184301853018630187301883018930190301913019230193301943019530196301973019830199302003020130202302033020430205302063020730208302093021030211302123021330214302153021630217302183021930220302213022230223302243022530226302273022830229302303023130232302333023430235302363023730238302393024030241302423024330244302453024630247302483024930250302513025230253302543025530256302573025830259302603026130262302633026430265302663026730268302693027030271302723027330274302753027630277302783027930280302813028230283302843028530286302873028830289302903029130292302933029430295302963029730298302993030030301303023030330304303053030630307303083030930310303113031230313303143031530316303173031830319303203032130322303233032430325303263032730328303293033030331303323033330334303353033630337303383033930340303413034230343303443034530346303473034830349303503035130352303533035430355303563035730358303593036030361303623036330364303653036630367303683036930370303713037230373303743037530376303773037830379303803038130382303833038430385303863038730388303893039030391303923039330394303953039630397303983039930400304013040230403304043040530406304073040830409304103041130412304133041430415304163041730418304193042030421304223042330424304253042630427304283042930430304313043230433304343043530436304373043830439304403044130442304433044430445304463044730448304493045030451304523045330454304553045630457304583045930460304613046230463304643046530466304673046830469304703047130472304733047430475304763047730478304793048030481304823048330484304853048630487304883048930490304913049230493304943049530496304973049830499305003050130502305033050430505305063050730508305093051030511305123051330514305153051630517305183051930520305213052230523305243052530526305273052830529305303053130532305333053430535305363053730538305393054030541305423054330544305453054630547305483054930550305513055230553305543055530556305573055830559305603056130562305633056430565305663056730568305693057030571305723057330574305753057630577305783057930580305813058230583305843058530586305873058830589305903059130592305933059430595305963059730598305993060030601306023060330604306053060630607306083060930610306113061230613306143061530616306173061830619306203062130622306233062430625306263062730628306293063030631306323063330634306353063630637306383063930640306413064230643306443064530646306473064830649306503065130652306533065430655306563065730658306593066030661306623066330664306653066630667306683066930670306713067230673306743067530676306773067830679306803068130682306833068430685306863068730688306893069030691306923069330694306953069630697306983069930700307013070230703307043070530706307073070830709307103071130712307133071430715307163071730718307193072030721307223072330724307253072630727307283072930730307313073230733307343073530736307373073830739307403074130742307433074430745307463074730748307493075030751307523075330754307553075630757307583075930760307613076230763307643076530766307673076830769307703077130772307733077430775307763077730778307793078030781307823078330784307853078630787307883078930790307913079230793307943079530796307973079830799308003080130802308033080430805308063080730808308093081030811308123081330814308153081630817308183081930820308213082230823308243082530826308273082830829308303083130832308333083430835308363083730838308393084030841308423084330844308453084630847308483084930850308513085230853308543085530856308573085830859308603086130862308633086430865308663086730868308693087030871308723087330874308753087630877308783087930880308813088230883308843088530886308873088830889308903089130892308933089430895308963089730898308993090030901309023090330904309053090630907309083090930910309113091230913309143091530916309173091830919309203092130922309233092430925309263092730928309293093030931309323093330934309353093630937309383093930940309413094230943309443094530946309473094830949309503095130952309533095430955309563095730958309593096030961309623096330964309653096630967309683096930970309713097230973309743097530976309773097830979309803098130982309833098430985309863098730988309893099030991309923099330994309953099630997309983099931000310013100231003310043100531006310073100831009310103101131012310133101431015310163101731018310193102031021310223102331024310253102631027310283102931030310313103231033310343103531036310373103831039310403104131042310433104431045310463104731048310493105031051310523105331054310553105631057310583105931060310613106231063310643106531066310673106831069310703107131072310733107431075310763107731078310793108031081310823108331084310853108631087310883108931090310913109231093310943109531096310973109831099311003110131102311033110431105311063110731108311093111031111311123111331114311153111631117311183111931120311213112231123311243112531126311273112831129311303113131132311333113431135311363113731138311393114031141311423114331144311453114631147311483114931150311513115231153311543115531156311573115831159311603116131162311633116431165311663116731168311693117031171311723117331174311753117631177311783117931180311813118231183311843118531186311873118831189311903119131192311933119431195311963119731198311993120031201312023120331204312053120631207312083120931210312113121231213312143121531216312173121831219312203122131222312233122431225312263122731228312293123031231312323123331234312353123631237312383123931240312413124231243312443124531246312473124831249312503125131252312533125431255312563125731258312593126031261312623126331264312653126631267312683126931270312713127231273312743127531276312773127831279312803128131282312833128431285312863128731288312893129031291312923129331294312953129631297312983129931300313013130231303313043130531306313073130831309313103131131312313133131431315313163131731318313193132031321313223132331324313253132631327313283132931330313313133231333313343133531336313373133831339313403134131342313433134431345313463134731348313493135031351313523135331354313553135631357313583135931360313613136231363313643136531366313673136831369313703137131372313733137431375313763137731378313793138031381313823138331384313853138631387313883138931390313913139231393313943139531396313973139831399314003140131402314033140431405314063140731408314093141031411314123141331414314153141631417314183141931420314213142231423314243142531426314273142831429314303143131432314333143431435314363143731438314393144031441314423144331444314453144631447314483144931450314513145231453314543145531456314573145831459314603146131462314633146431465314663146731468314693147031471314723147331474314753147631477314783147931480314813148231483314843148531486314873148831489314903149131492314933149431495314963149731498314993150031501315023150331504315053150631507315083150931510315113151231513315143151531516315173151831519315203152131522315233152431525315263152731528315293153031531315323153331534315353153631537315383153931540315413154231543315443154531546315473154831549315503155131552315533155431555315563155731558315593156031561315623156331564315653156631567315683156931570315713157231573315743157531576315773157831579315803158131582315833158431585315863158731588315893159031591315923159331594315953159631597315983159931600316013160231603316043160531606316073160831609316103161131612316133161431615316163161731618316193162031621316223162331624316253162631627316283162931630316313163231633316343163531636316373163831639316403164131642316433164431645316463164731648316493165031651316523165331654316553165631657316583165931660316613166231663316643166531666316673166831669316703167131672316733167431675316763167731678316793168031681316823168331684316853168631687316883168931690316913169231693316943169531696316973169831699317003170131702317033170431705317063170731708317093171031711317123171331714317153171631717317183171931720317213172231723317243172531726317273172831729317303173131732317333173431735317363173731738317393174031741317423174331744317453174631747317483174931750317513175231753317543175531756317573175831759317603176131762317633176431765317663176731768317693177031771317723177331774317753177631777317783177931780317813178231783317843178531786317873178831789317903179131792317933179431795317963179731798317993180031801318023180331804318053180631807318083180931810318113181231813318143181531816318173181831819318203182131822318233182431825318263182731828318293183031831318323183331834318353183631837318383183931840318413184231843318443184531846318473184831849318503185131852318533185431855318563185731858318593186031861318623186331864318653186631867318683186931870318713187231873318743187531876318773187831879318803188131882318833188431885318863188731888318893189031891318923189331894318953189631897318983189931900319013190231903319043190531906319073190831909319103191131912319133191431915319163191731918319193192031921319223192331924319253192631927319283192931930319313193231933319343193531936319373193831939319403194131942319433194431945319463194731948319493195031951319523195331954319553195631957319583195931960319613196231963319643196531966319673196831969319703197131972319733197431975319763197731978319793198031981319823198331984319853198631987319883198931990319913199231993319943199531996319973199831999320003200132002320033200432005320063200732008320093201032011320123201332014320153201632017320183201932020320213202232023320243202532026320273202832029320303203132032320333203432035320363203732038320393204032041320423204332044320453204632047320483204932050320513205232053320543205532056320573205832059320603206132062320633206432065320663206732068320693207032071320723207332074320753207632077320783207932080320813208232083320843208532086320873208832089320903209132092320933209432095320963209732098320993210032101321023210332104321053210632107321083210932110321113211232113321143211532116321173211832119321203212132122321233212432125321263212732128321293213032131321323213332134321353213632137321383213932140321413214232143321443214532146321473214832149321503215132152321533215432155321563215732158321593216032161321623216332164321653216632167321683216932170321713217232173321743217532176321773217832179321803218132182321833218432185321863218732188321893219032191321923219332194321953219632197321983219932200322013220232203322043220532206322073220832209322103221132212322133221432215322163221732218322193222032221322223222332224322253222632227322283222932230322313223232233322343223532236322373223832239322403224132242322433224432245322463224732248322493225032251322523225332254322553225632257322583225932260322613226232263322643226532266322673226832269322703227132272322733227432275322763227732278322793228032281322823228332284322853228632287322883228932290322913229232293322943229532296322973229832299323003230132302323033230432305323063230732308323093231032311323123231332314323153231632317323183231932320323213232232323323243232532326323273232832329323303233132332323333233432335323363233732338323393234032341323423234332344323453234632347323483234932350323513235232353323543235532356323573235832359323603236132362323633236432365323663236732368323693237032371323723237332374323753237632377323783237932380323813238232383323843238532386323873238832389323903239132392323933239432395323963239732398323993240032401324023240332404324053240632407324083240932410324113241232413324143241532416324173241832419324203242132422324233242432425324263242732428324293243032431324323243332434324353243632437324383243932440324413244232443324443244532446324473244832449324503245132452324533245432455324563245732458324593246032461324623246332464324653246632467324683246932470324713247232473324743247532476324773247832479324803248132482324833248432485324863248732488324893249032491324923249332494324953249632497324983249932500325013250232503325043250532506325073250832509325103251132512325133251432515325163251732518325193252032521325223252332524325253252632527325283252932530325313253232533325343253532536325373253832539325403254132542325433254432545325463254732548325493255032551325523255332554325553255632557325583255932560325613256232563325643256532566325673256832569325703257132572325733257432575325763257732578325793258032581325823258332584325853258632587325883258932590325913259232593325943259532596325973259832599326003260132602326033260432605326063260732608326093261032611326123261332614326153261632617326183261932620326213262232623326243262532626326273262832629326303263132632326333263432635326363263732638326393264032641326423264332644326453264632647326483264932650326513265232653326543265532656326573265832659326603266132662326633266432665326663266732668326693267032671326723267332674326753267632677326783267932680326813268232683326843268532686326873268832689326903269132692326933269432695326963269732698326993270032701327023270332704327053270632707327083270932710327113271232713327143271532716327173271832719327203272132722327233272432725327263272732728327293273032731327323273332734327353273632737327383273932740327413274232743327443274532746327473274832749327503275132752327533275432755327563275732758327593276032761327623276332764327653276632767327683276932770327713277232773327743277532776327773277832779327803278132782327833278432785327863278732788327893279032791327923279332794327953279632797327983279932800328013280232803328043280532806328073280832809328103281132812328133281432815328163281732818328193282032821328223282332824328253282632827328283282932830328313283232833328343283532836328373283832839328403284132842328433284432845328463284732848328493285032851328523285332854328553285632857328583285932860328613286232863328643286532866328673286832869328703287132872328733287432875328763287732878328793288032881328823288332884328853288632887328883288932890328913289232893328943289532896328973289832899329003290132902329033290432905329063290732908329093291032911329123291332914329153291632917329183291932920329213292232923329243292532926329273292832929329303293132932329333293432935329363293732938329393294032941329423294332944329453294632947329483294932950329513295232953329543295532956329573295832959329603296132962329633296432965329663296732968329693297032971329723297332974329753297632977329783297932980329813298232983329843298532986329873298832989329903299132992329933299432995329963299732998329993300033001330023300333004330053300633007330083300933010330113301233013330143301533016330173301833019330203302133022330233302433025330263302733028330293303033031330323303333034330353303633037330383303933040330413304233043330443304533046330473304833049330503305133052330533305433055330563305733058330593306033061330623306333064330653306633067330683306933070330713307233073330743307533076330773307833079330803308133082330833308433085330863308733088330893309033091330923309333094330953309633097330983309933100331013310233103331043310533106331073310833109331103311133112331133311433115331163311733118331193312033121331223312333124331253312633127331283312933130331313313233133331343313533136331373313833139331403314133142331433314433145331463314733148331493315033151331523315333154331553315633157331583315933160331613316233163331643316533166331673316833169331703317133172331733317433175331763317733178331793318033181331823318333184331853318633187331883318933190331913319233193331943319533196331973319833199332003320133202332033320433205332063320733208332093321033211332123321333214332153321633217332183321933220332213322233223332243322533226332273322833229332303323133232332333323433235332363323733238332393324033241332423324333244332453324633247332483324933250332513325233253332543325533256332573325833259332603326133262332633326433265332663326733268332693327033271332723327333274332753327633277332783327933280332813328233283332843328533286332873328833289332903329133292332933329433295332963329733298332993330033301333023330333304333053330633307333083330933310333113331233313333143331533316333173331833319333203332133322333233332433325333263332733328333293333033331333323333333334333353333633337333383333933340333413334233343333443334533346333473334833349333503335133352333533335433355333563335733358333593336033361333623336333364333653336633367333683336933370333713337233373333743337533376333773337833379333803338133382333833338433385333863338733388333893339033391333923339333394333953339633397333983339933400334013340233403334043340533406334073340833409334103341133412334133341433415334163341733418334193342033421334223342333424334253342633427334283342933430334313343233433334343343533436334373343833439334403344133442334433344433445334463344733448334493345033451334523345333454334553345633457334583345933460334613346233463334643346533466334673346833469334703347133472334733347433475334763347733478334793348033481334823348333484334853348633487334883348933490334913349233493334943349533496334973349833499335003350133502335033350433505335063350733508335093351033511335123351333514335153351633517335183351933520335213352233523335243352533526335273352833529335303353133532335333353433535335363353733538335393354033541335423354333544335453354633547335483354933550335513355233553335543355533556335573355833559335603356133562335633356433565335663356733568335693357033571335723357333574335753357633577335783357933580335813358233583335843358533586335873358833589335903359133592335933359433595335963359733598335993360033601336023360333604336053360633607336083360933610336113361233613336143361533616336173361833619336203362133622336233362433625336263362733628336293363033631336323363333634336353363633637336383363933640336413364233643336443364533646336473364833649336503365133652336533365433655336563365733658336593366033661336623366333664336653366633667336683366933670336713367233673336743367533676336773367833679336803368133682336833368433685336863368733688336893369033691336923369333694336953369633697336983369933700337013370233703337043370533706337073370833709337103371133712337133371433715337163371733718337193372033721337223372333724337253372633727337283372933730337313373233733337343373533736337373373833739337403374133742337433374433745337463374733748337493375033751337523375333754337553375633757337583375933760337613376233763337643376533766337673376833769337703377133772337733377433775337763377733778337793378033781337823378333784337853378633787337883378933790337913379233793337943379533796337973379833799338003380133802338033380433805338063380733808338093381033811338123381333814338153381633817338183381933820338213382233823338243382533826338273382833829338303383133832338333383433835338363383733838338393384033841338423384333844338453384633847338483384933850338513385233853338543385533856338573385833859338603386133862338633386433865338663386733868338693387033871338723387333874338753387633877338783387933880338813388233883338843388533886338873388833889338903389133892338933389433895338963389733898338993390033901339023390333904339053390633907339083390933910339113391233913339143391533916339173391833919339203392133922339233392433925339263392733928339293393033931339323393333934339353393633937339383393933940339413394233943339443394533946339473394833949339503395133952339533395433955339563395733958339593396033961339623396333964339653396633967339683396933970339713397233973339743397533976339773397833979339803398133982339833398433985339863398733988339893399033991339923399333994339953399633997339983399934000340013400234003340043400534006340073400834009340103401134012340133401434015340163401734018340193402034021340223402334024340253402634027340283402934030340313403234033340343403534036340373403834039340403404134042340433404434045340463404734048340493405034051340523405334054340553405634057340583405934060340613406234063340643406534066340673406834069340703407134072340733407434075340763407734078340793408034081340823408334084340853408634087340883408934090340913409234093340943409534096340973409834099341003410134102341033410434105341063410734108341093411034111341123411334114341153411634117341183411934120341213412234123341243412534126341273412834129341303413134132341333413434135341363413734138341393414034141341423414334144341453414634147341483414934150341513415234153341543415534156341573415834159341603416134162341633416434165341663416734168341693417034171341723417334174341753417634177341783417934180341813418234183341843418534186341873418834189341903419134192341933419434195341963419734198341993420034201342023420334204342053420634207342083420934210342113421234213342143421534216342173421834219342203422134222342233422434225342263422734228342293423034231342323423334234342353423634237342383423934240342413424234243342443424534246342473424834249342503425134252342533425434255342563425734258342593426034261342623426334264342653426634267342683426934270342713427234273342743427534276342773427834279342803428134282342833428434285342863428734288342893429034291342923429334294342953429634297342983429934300343013430234303343043430534306343073430834309343103431134312343133431434315343163431734318343193432034321343223432334324343253432634327343283432934330343313433234333343343433534336343373433834339343403434134342343433434434345343463434734348343493435034351343523435334354343553435634357343583435934360343613436234363343643436534366343673436834369343703437134372343733437434375343763437734378343793438034381343823438334384343853438634387343883438934390343913439234393343943439534396343973439834399344003440134402344033440434405344063440734408344093441034411344123441334414344153441634417344183441934420344213442234423344243442534426344273442834429344303443134432344333443434435344363443734438344393444034441344423444334444344453444634447344483444934450344513445234453344543445534456344573445834459344603446134462344633446434465344663446734468344693447034471344723447334474344753447634477344783447934480344813448234483344843448534486344873448834489344903449134492344933449434495344963449734498344993450034501345023450334504345053450634507345083450934510345113451234513345143451534516345173451834519345203452134522345233452434525345263452734528345293453034531345323453334534345353453634537345383453934540345413454234543345443454534546345473454834549345503455134552345533455434555345563455734558345593456034561345623456334564345653456634567345683456934570345713457234573345743457534576345773457834579345803458134582345833458434585345863458734588345893459034591345923459334594345953459634597345983459934600346013460234603346043460534606346073460834609346103461134612346133461434615346163461734618346193462034621346223462334624346253462634627346283462934630346313463234633346343463534636346373463834639346403464134642346433464434645346463464734648346493465034651346523465334654346553465634657346583465934660346613466234663346643466534666346673466834669346703467134672346733467434675346763467734678346793468034681346823468334684346853468634687346883468934690346913469234693346943469534696346973469834699347003470134702347033470434705347063470734708347093471034711347123471334714347153471634717347183471934720347213472234723347243472534726347273472834729347303473134732347333473434735347363473734738347393474034741347423474334744347453474634747347483474934750347513475234753347543475534756347573475834759347603476134762347633476434765347663476734768347693477034771347723477334774347753477634777347783477934780347813478234783347843478534786347873478834789347903479134792347933479434795347963479734798347993480034801348023480334804348053480634807348083480934810348113481234813348143481534816348173481834819348203482134822348233482434825348263482734828348293483034831348323483334834348353483634837348383483934840348413484234843348443484534846348473484834849348503485134852348533485434855348563485734858348593486034861348623486334864348653486634867348683486934870348713487234873348743487534876348773487834879348803488134882348833488434885348863488734888348893489034891348923489334894348953489634897348983489934900349013490234903349043490534906349073490834909349103491134912349133491434915349163491734918349193492034921349223492334924349253492634927349283492934930349313493234933349343493534936349373493834939349403494134942349433494434945349463494734948349493495034951349523495334954349553495634957349583495934960349613496234963349643496534966349673496834969349703497134972349733497434975349763497734978349793498034981349823498334984349853498634987349883498934990349913499234993349943499534996349973499834999350003500135002350033500435005350063500735008350093501035011350123501335014350153501635017350183501935020350213502235023350243502535026350273502835029350303503135032350333503435035350363503735038350393504035041350423504335044350453504635047350483504935050350513505235053350543505535056350573505835059350603506135062350633506435065350663506735068350693507035071350723507335074350753507635077350783507935080350813508235083350843508535086350873508835089350903509135092350933509435095350963509735098350993510035101351023510335104351053510635107351083510935110351113511235113351143511535116351173511835119351203512135122351233512435125351263512735128351293513035131351323513335134351353513635137351383513935140351413514235143351443514535146351473514835149351503515135152351533515435155351563515735158351593516035161351623516335164351653516635167351683516935170351713517235173351743517535176351773517835179351803518135182351833518435185351863518735188351893519035191351923519335194351953519635197351983519935200352013520235203352043520535206352073520835209352103521135212352133521435215352163521735218352193522035221352223522335224352253522635227352283522935230352313523235233352343523535236352373523835239352403524135242352433524435245352463524735248352493525035251352523525335254352553525635257352583525935260352613526235263352643526535266352673526835269352703527135272352733527435275352763527735278352793528035281352823528335284352853528635287352883528935290352913529235293352943529535296352973529835299353003530135302353033530435305353063530735308353093531035311353123531335314353153531635317353183531935320353213532235323353243532535326353273532835329353303533135332353333533435335353363533735338353393534035341353423534335344353453534635347353483534935350353513535235353353543535535356353573535835359353603536135362353633536435365353663536735368353693537035371353723537335374353753537635377353783537935380353813538235383353843538535386353873538835389353903539135392353933539435395353963539735398353993540035401354023540335404354053540635407354083540935410354113541235413354143541535416354173541835419354203542135422354233542435425354263542735428354293543035431354323543335434354353543635437354383543935440354413544235443354443544535446354473544835449354503545135452354533545435455354563545735458354593546035461354623546335464354653546635467354683546935470354713547235473354743547535476354773547835479354803548135482354833548435485354863548735488354893549035491354923549335494354953549635497354983549935500355013550235503355043550535506355073550835509355103551135512355133551435515355163551735518355193552035521355223552335524355253552635527355283552935530355313553235533355343553535536355373553835539355403554135542355433554435545355463554735548355493555035551355523555335554355553555635557355583555935560355613556235563355643556535566355673556835569355703557135572355733557435575355763557735578355793558035581355823558335584355853558635587355883558935590355913559235593355943559535596355973559835599356003560135602356033560435605356063560735608356093561035611356123561335614356153561635617356183561935620356213562235623356243562535626356273562835629356303563135632356333563435635356363563735638356393564035641356423564335644356453564635647356483564935650356513565235653356543565535656356573565835659356603566135662356633566435665356663566735668356693567035671356723567335674356753567635677356783567935680356813568235683356843568535686356873568835689356903569135692356933569435695356963569735698356993570035701357023570335704357053570635707357083570935710357113571235713357143571535716357173571835719357203572135722357233572435725357263572735728357293573035731357323573335734357353573635737357383573935740357413574235743357443574535746357473574835749357503575135752357533575435755357563575735758357593576035761357623576335764357653576635767357683576935770357713577235773357743577535776357773577835779357803578135782357833578435785357863578735788357893579035791357923579335794357953579635797357983579935800358013580235803358043580535806358073580835809358103581135812358133581435815358163581735818358193582035821358223582335824358253582635827358283582935830358313583235833358343583535836358373583835839358403584135842358433584435845358463584735848358493585035851358523585335854358553585635857358583585935860358613586235863358643586535866358673586835869358703587135872358733587435875358763587735878358793588035881358823588335884358853588635887358883588935890358913589235893358943589535896358973589835899359003590135902359033590435905359063590735908359093591035911359123591335914359153591635917359183591935920359213592235923359243592535926359273592835929359303593135932359333593435935359363593735938359393594035941359423594335944359453594635947359483594935950359513595235953359543595535956359573595835959359603596135962359633596435965359663596735968359693597035971359723597335974359753597635977359783597935980359813598235983359843598535986359873598835989359903599135992359933599435995359963599735998359993600036001360023600336004360053600636007360083600936010360113601236013360143601536016360173601836019360203602136022360233602436025360263602736028360293603036031360323603336034360353603636037360383603936040360413604236043360443604536046360473604836049360503605136052360533605436055360563605736058360593606036061360623606336064360653606636067360683606936070360713607236073360743607536076360773607836079360803608136082360833608436085360863608736088360893609036091360923609336094360953609636097360983609936100361013610236103361043610536106361073610836109361103611136112361133611436115361163611736118361193612036121361223612336124361253612636127361283612936130361313613236133361343613536136361373613836139361403614136142361433614436145361463614736148361493615036151361523615336154361553615636157361583615936160361613616236163361643616536166361673616836169361703617136172361733617436175361763617736178361793618036181361823618336184361853618636187361883618936190361913619236193361943619536196361973619836199362003620136202362033620436205362063620736208362093621036211362123621336214362153621636217362183621936220362213622236223362243622536226362273622836229362303623136232362333623436235362363623736238362393624036241362423624336244362453624636247362483624936250362513625236253362543625536256362573625836259362603626136262362633626436265362663626736268362693627036271362723627336274362753627636277362783627936280362813628236283362843628536286362873628836289362903629136292362933629436295362963629736298362993630036301363023630336304363053630636307363083630936310363113631236313363143631536316363173631836319363203632136322363233632436325363263632736328363293633036331363323633336334363353633636337363383633936340363413634236343363443634536346363473634836349363503635136352363533635436355363563635736358363593636036361363623636336364363653636636367363683636936370363713637236373363743637536376363773637836379363803638136382363833638436385363863638736388363893639036391363923639336394363953639636397363983639936400364013640236403364043640536406364073640836409364103641136412364133641436415364163641736418364193642036421364223642336424364253642636427364283642936430364313643236433364343643536436364373643836439364403644136442364433644436445364463644736448364493645036451364523645336454364553645636457364583645936460364613646236463364643646536466364673646836469364703647136472364733647436475364763647736478364793648036481364823648336484364853648636487364883648936490364913649236493364943649536496364973649836499365003650136502365033650436505365063650736508365093651036511365123651336514365153651636517365183651936520365213652236523365243652536526365273652836529365303653136532365333653436535365363653736538365393654036541365423654336544365453654636547365483654936550365513655236553365543655536556365573655836559365603656136562365633656436565365663656736568365693657036571365723657336574365753657636577365783657936580365813658236583365843658536586365873658836589365903659136592365933659436595365963659736598365993660036601366023660336604366053660636607366083660936610366113661236613366143661536616366173661836619366203662136622366233662436625366263662736628366293663036631366323663336634366353663636637366383663936640366413664236643366443664536646366473664836649366503665136652366533665436655366563665736658366593666036661366623666336664366653666636667366683666936670366713667236673366743667536676366773667836679366803668136682366833668436685366863668736688366893669036691366923669336694366953669636697366983669936700367013670236703367043670536706367073670836709367103671136712367133671436715367163671736718367193672036721367223672336724367253672636727367283672936730367313673236733367343673536736367373673836739367403674136742367433674436745367463674736748367493675036751367523675336754367553675636757367583675936760367613676236763367643676536766367673676836769367703677136772367733677436775367763677736778367793678036781367823678336784367853678636787367883678936790367913679236793367943679536796367973679836799368003680136802368033680436805368063680736808368093681036811368123681336814368153681636817368183681936820368213682236823368243682536826368273682836829368303683136832368333683436835368363683736838368393684036841368423684336844368453684636847368483684936850368513685236853368543685536856368573685836859368603686136862368633686436865368663686736868368693687036871368723687336874368753687636877368783687936880368813688236883368843688536886368873688836889368903689136892368933689436895368963689736898368993690036901369023690336904369053690636907369083690936910369113691236913369143691536916369173691836919369203692136922369233692436925369263692736928369293693036931369323693336934369353693636937369383693936940369413694236943369443694536946369473694836949369503695136952369533695436955369563695736958369593696036961369623696336964369653696636967369683696936970369713697236973369743697536976369773697836979369803698136982369833698436985369863698736988369893699036991369923699336994369953699636997369983699937000370013700237003370043700537006370073700837009370103701137012370133701437015370163701737018370193702037021370223702337024370253702637027370283702937030370313703237033370343703537036370373703837039370403704137042370433704437045370463704737048370493705037051370523705337054370553705637057370583705937060370613706237063370643706537066370673706837069370703707137072370733707437075370763707737078370793708037081370823708337084370853708637087370883708937090370913709237093370943709537096370973709837099371003710137102371033710437105371063710737108371093711037111371123711337114371153711637117371183711937120371213712237123371243712537126371273712837129371303713137132371333713437135371363713737138371393714037141371423714337144371453714637147371483714937150371513715237153371543715537156371573715837159371603716137162371633716437165371663716737168371693717037171371723717337174371753717637177371783717937180371813718237183371843718537186371873718837189371903719137192371933719437195371963719737198371993720037201372023720337204372053720637207372083720937210372113721237213372143721537216372173721837219372203722137222372233722437225372263722737228372293723037231372323723337234372353723637237372383723937240372413724237243372443724537246372473724837249372503725137252372533725437255372563725737258372593726037261372623726337264372653726637267372683726937270372713727237273372743727537276372773727837279372803728137282372833728437285372863728737288372893729037291372923729337294372953729637297372983729937300373013730237303373043730537306373073730837309373103731137312373133731437315373163731737318373193732037321373223732337324373253732637327373283732937330373313733237333373343733537336373373733837339373403734137342373433734437345373463734737348373493735037351373523735337354373553735637357373583735937360373613736237363373643736537366373673736837369373703737137372373733737437375373763737737378373793738037381373823738337384373853738637387373883738937390373913739237393373943739537396373973739837399374003740137402374033740437405374063740737408374093741037411374123741337414374153741637417374183741937420374213742237423374243742537426374273742837429374303743137432374333743437435374363743737438374393744037441374423744337444374453744637447374483744937450374513745237453374543745537456374573745837459374603746137462374633746437465374663746737468374693747037471374723747337474374753747637477374783747937480374813748237483374843748537486374873748837489374903749137492374933749437495374963749737498374993750037501375023750337504375053750637507375083750937510375113751237513375143751537516375173751837519375203752137522375233752437525375263752737528375293753037531375323753337534375353753637537375383753937540375413754237543375443754537546375473754837549375503755137552375533755437555375563755737558375593756037561375623756337564375653756637567375683756937570375713757237573375743757537576375773757837579375803758137582375833758437585375863758737588375893759037591375923759337594375953759637597375983759937600376013760237603376043760537606376073760837609376103761137612376133761437615376163761737618376193762037621376223762337624376253762637627376283762937630376313763237633376343763537636376373763837639376403764137642376433764437645376463764737648376493765037651376523765337654376553765637657376583765937660376613766237663376643766537666376673766837669376703767137672376733767437675376763767737678376793768037681376823768337684376853768637687376883768937690376913769237693376943769537696376973769837699377003770137702377033770437705377063770737708377093771037711377123771337714377153771637717377183771937720377213772237723377243772537726377273772837729377303773137732377333773437735377363773737738377393774037741377423774337744377453774637747377483774937750377513775237753377543775537756377573775837759377603776137762377633776437765377663776737768377693777037771377723777337774377753777637777377783777937780377813778237783377843778537786377873778837789377903779137792377933779437795377963779737798377993780037801378023780337804378053780637807378083780937810378113781237813378143781537816378173781837819378203782137822378233782437825378263782737828378293783037831378323783337834378353783637837378383783937840378413784237843378443784537846378473784837849378503785137852378533785437855378563785737858378593786037861378623786337864378653786637867378683786937870378713787237873378743787537876378773787837879378803788137882378833788437885378863788737888378893789037891378923789337894378953789637897378983789937900379013790237903379043790537906379073790837909379103791137912379133791437915379163791737918379193792037921379223792337924379253792637927379283792937930379313793237933379343793537936379373793837939379403794137942379433794437945379463794737948379493795037951379523795337954379553795637957379583795937960379613796237963379643796537966379673796837969379703797137972379733797437975379763797737978379793798037981379823798337984379853798637987379883798937990379913799237993379943799537996379973799837999380003800138002380033800438005380063800738008380093801038011380123801338014380153801638017380183801938020380213802238023380243802538026380273802838029380303803138032380333803438035380363803738038380393804038041380423804338044380453804638047380483804938050380513805238053380543805538056380573805838059380603806138062380633806438065380663806738068380693807038071380723807338074380753807638077380783807938080380813808238083380843808538086380873808838089380903809138092380933809438095380963809738098380993810038101381023810338104381053810638107381083810938110381113811238113381143811538116381173811838119381203812138122381233812438125381263812738128381293813038131381323813338134381353813638137381383813938140381413814238143381443814538146381473814838149381503815138152381533815438155381563815738158381593816038161381623816338164381653816638167381683816938170381713817238173381743817538176381773817838179381803818138182381833818438185381863818738188381893819038191381923819338194381953819638197381983819938200382013820238203382043820538206382073820838209382103821138212382133821438215382163821738218382193822038221382223822338224382253822638227382283822938230382313823238233382343823538236382373823838239382403824138242382433824438245382463824738248382493825038251382523825338254382553825638257382583825938260382613826238263382643826538266382673826838269382703827138272382733827438275382763827738278382793828038281382823828338284382853828638287382883828938290382913829238293382943829538296382973829838299383003830138302383033830438305383063830738308383093831038311383123831338314383153831638317383183831938320383213832238323383243832538326383273832838329383303833138332383333833438335383363833738338383393834038341383423834338344383453834638347383483834938350383513835238353383543835538356383573835838359383603836138362383633836438365383663836738368383693837038371383723837338374383753837638377383783837938380383813838238383383843838538386383873838838389383903839138392383933839438395383963839738398383993840038401384023840338404384053840638407384083840938410384113841238413384143841538416384173841838419384203842138422384233842438425384263842738428384293843038431384323843338434384353843638437384383843938440384413844238443384443844538446384473844838449384503845138452384533845438455384563845738458384593846038461384623846338464384653846638467384683846938470384713847238473384743847538476384773847838479384803848138482384833848438485384863848738488384893849038491384923849338494384953849638497384983849938500385013850238503385043850538506385073850838509385103851138512385133851438515385163851738518385193852038521385223852338524385253852638527385283852938530385313853238533385343853538536385373853838539385403854138542385433854438545385463854738548385493855038551385523855338554385553855638557385583855938560385613856238563385643856538566385673856838569385703857138572385733857438575385763857738578385793858038581385823858338584385853858638587385883858938590385913859238593385943859538596385973859838599386003860138602386033860438605386063860738608386093861038611386123861338614386153861638617386183861938620386213862238623386243862538626386273862838629386303863138632386333863438635386363863738638386393864038641386423864338644386453864638647386483864938650386513865238653386543865538656386573865838659386603866138662386633866438665386663866738668386693867038671386723867338674386753867638677386783867938680386813868238683386843868538686386873868838689386903869138692386933869438695386963869738698386993870038701387023870338704387053870638707387083870938710387113871238713387143871538716387173871838719387203872138722387233872438725387263872738728387293873038731387323873338734387353873638737387383873938740387413874238743387443874538746387473874838749387503875138752387533875438755387563875738758387593876038761387623876338764387653876638767387683876938770387713877238773387743877538776387773877838779387803878138782387833878438785387863878738788387893879038791387923879338794387953879638797387983879938800388013880238803388043880538806388073880838809388103881138812388133881438815388163881738818388193882038821388223882338824388253882638827388283882938830388313883238833388343883538836388373883838839388403884138842388433884438845388463884738848388493885038851388523885338854388553885638857388583885938860388613886238863388643886538866388673886838869388703887138872388733887438875388763887738878388793888038881388823888338884388853888638887388883888938890388913889238893388943889538896388973889838899389003890138902389033890438905389063890738908389093891038911389123891338914389153891638917389183891938920389213892238923389243892538926389273892838929389303893138932389333893438935389363893738938389393894038941389423894338944389453894638947389483894938950389513895238953389543895538956389573895838959389603896138962389633896438965389663896738968389693897038971389723897338974389753897638977389783897938980389813898238983389843898538986389873898838989389903899138992389933899438995389963899738998389993900039001390023900339004390053900639007390083900939010390113901239013390143901539016390173901839019390203902139022390233902439025390263902739028390293903039031390323903339034390353903639037390383903939040390413904239043390443904539046390473904839049390503905139052390533905439055390563905739058390593906039061390623906339064390653906639067390683906939070390713907239073390743907539076390773907839079390803908139082390833908439085390863908739088390893909039091390923909339094390953909639097390983909939100391013910239103391043910539106391073910839109391103911139112391133911439115391163911739118391193912039121391223912339124391253912639127391283912939130391313913239133391343913539136391373913839139391403914139142391433914439145391463914739148391493915039151391523915339154391553915639157391583915939160391613916239163391643916539166391673916839169391703917139172391733917439175391763917739178391793918039181391823918339184391853918639187391883918939190391913919239193391943919539196391973919839199392003920139202392033920439205392063920739208392093921039211392123921339214392153921639217392183921939220392213922239223392243922539226392273922839229392303923139232392333923439235392363923739238392393924039241392423924339244392453924639247392483924939250392513925239253392543925539256392573925839259392603926139262392633926439265392663926739268392693927039271392723927339274392753927639277392783927939280392813928239283392843928539286392873928839289392903929139292392933929439295392963929739298392993930039301393023930339304393053930639307393083930939310393113931239313393143931539316393173931839319393203932139322393233932439325393263932739328393293933039331393323933339334393353933639337393383933939340393413934239343393443934539346393473934839349393503935139352393533935439355393563935739358393593936039361393623936339364393653936639367393683936939370393713937239373393743937539376393773937839379393803938139382393833938439385393863938739388393893939039391393923939339394393953939639397393983939939400394013940239403394043940539406394073940839409394103941139412394133941439415394163941739418394193942039421394223942339424394253942639427394283942939430394313943239433394343943539436394373943839439394403944139442394433944439445394463944739448394493945039451394523945339454394553945639457394583945939460394613946239463394643946539466394673946839469394703947139472394733947439475394763947739478394793948039481394823948339484394853948639487394883948939490394913949239493394943949539496394973949839499395003950139502395033950439505395063950739508395093951039511395123951339514395153951639517395183951939520395213952239523395243952539526395273952839529395303953139532395333953439535395363953739538
  1. "use strict";
  2. (function() {
  3. Error.stackTraceLimit = Infinity;
  4. var $global, $module;
  5. if (typeof window !== "undefined") { /* web page */
  6. $global = window;
  7. } else if (typeof self !== "undefined") { /* web worker */
  8. $global = self;
  9. } else if (typeof global !== "undefined") { /* Node.js */
  10. $global = global;
  11. $global.require = require;
  12. } else { /* others (e.g. Nashorn) */
  13. $global = this;
  14. }
  15. if ($global === undefined || $global.Array === undefined) {
  16. throw new Error("no global object found");
  17. }
  18. if (typeof module !== "undefined") {
  19. $module = module;
  20. }
  21. var $packages = {}, $idCounter = 0;
  22. var $keys = function(m) { return m ? Object.keys(m) : []; };
  23. var $flushConsole = function() {};
  24. var $throwRuntimeError; /* set by package "runtime" */
  25. var $throwNilPointerError = function() { $throwRuntimeError("invalid memory address or nil pointer dereference"); };
  26. var $call = function(fn, rcvr, args) { return fn.apply(rcvr, args); };
  27. var $makeFunc = function(fn) { return function() { return $externalize(fn(this, new ($sliceType($jsObjectPtr))($global.Array.prototype.slice.call(arguments, []))), $emptyInterface); }; };
  28. var $unused = function(v) {};
  29. var $mapArray = function(array, f) {
  30. var newArray = new array.constructor(array.length);
  31. for (var i = 0; i < array.length; i++) {
  32. newArray[i] = f(array[i]);
  33. }
  34. return newArray;
  35. };
  36. var $methodVal = function(recv, name) {
  37. var vals = recv.$methodVals || {};
  38. recv.$methodVals = vals; /* noop for primitives */
  39. var f = vals[name];
  40. if (f !== undefined) {
  41. return f;
  42. }
  43. var method = recv[name];
  44. f = function() {
  45. $stackDepthOffset--;
  46. try {
  47. return method.apply(recv, arguments);
  48. } finally {
  49. $stackDepthOffset++;
  50. }
  51. };
  52. vals[name] = f;
  53. return f;
  54. };
  55. var $methodExpr = function(typ, name) {
  56. var method = typ.prototype[name];
  57. if (method.$expr === undefined) {
  58. method.$expr = function() {
  59. $stackDepthOffset--;
  60. try {
  61. if (typ.wrapped) {
  62. arguments[0] = new typ(arguments[0]);
  63. }
  64. return Function.call.apply(method, arguments);
  65. } finally {
  66. $stackDepthOffset++;
  67. }
  68. };
  69. }
  70. return method.$expr;
  71. };
  72. var $ifaceMethodExprs = {};
  73. var $ifaceMethodExpr = function(name) {
  74. var expr = $ifaceMethodExprs["$" + name];
  75. if (expr === undefined) {
  76. expr = $ifaceMethodExprs["$" + name] = function() {
  77. $stackDepthOffset--;
  78. try {
  79. return Function.call.apply(arguments[0][name], arguments);
  80. } finally {
  81. $stackDepthOffset++;
  82. }
  83. };
  84. }
  85. return expr;
  86. };
  87. var $subslice = function(slice, low, high, max) {
  88. if (high === undefined) {
  89. high = slice.$length;
  90. }
  91. if (max === undefined) {
  92. max = slice.$capacity;
  93. }
  94. if (low < 0 || high < low || max < high || high > slice.$capacity || max > slice.$capacity) {
  95. $throwRuntimeError("slice bounds out of range");
  96. }
  97. if (slice === slice.constructor.nil) {
  98. return slice;
  99. }
  100. var s = new slice.constructor(slice.$array);
  101. s.$offset = slice.$offset + low;
  102. s.$length = high - low;
  103. s.$capacity = max - low;
  104. return s;
  105. };
  106. var $substring = function(str, low, high) {
  107. if (low < 0 || high < low || high > str.length) {
  108. $throwRuntimeError("slice bounds out of range");
  109. }
  110. return str.substring(low, high);
  111. };
  112. var $sliceToArray = function(slice) {
  113. if (slice.$array.constructor !== Array) {
  114. return slice.$array.subarray(slice.$offset, slice.$offset + slice.$length);
  115. }
  116. return slice.$array.slice(slice.$offset, slice.$offset + slice.$length);
  117. };
  118. var $decodeRune = function(str, pos) {
  119. var c0 = str.charCodeAt(pos);
  120. if (c0 < 0x80) {
  121. return [c0, 1];
  122. }
  123. if (c0 !== c0 || c0 < 0xC0) {
  124. return [0xFFFD, 1];
  125. }
  126. var c1 = str.charCodeAt(pos + 1);
  127. if (c1 !== c1 || c1 < 0x80 || 0xC0 <= c1) {
  128. return [0xFFFD, 1];
  129. }
  130. if (c0 < 0xE0) {
  131. var r = (c0 & 0x1F) << 6 | (c1 & 0x3F);
  132. if (r <= 0x7F) {
  133. return [0xFFFD, 1];
  134. }
  135. return [r, 2];
  136. }
  137. var c2 = str.charCodeAt(pos + 2);
  138. if (c2 !== c2 || c2 < 0x80 || 0xC0 <= c2) {
  139. return [0xFFFD, 1];
  140. }
  141. if (c0 < 0xF0) {
  142. var r = (c0 & 0x0F) << 12 | (c1 & 0x3F) << 6 | (c2 & 0x3F);
  143. if (r <= 0x7FF) {
  144. return [0xFFFD, 1];
  145. }
  146. if (0xD800 <= r && r <= 0xDFFF) {
  147. return [0xFFFD, 1];
  148. }
  149. return [r, 3];
  150. }
  151. var c3 = str.charCodeAt(pos + 3);
  152. if (c3 !== c3 || c3 < 0x80 || 0xC0 <= c3) {
  153. return [0xFFFD, 1];
  154. }
  155. if (c0 < 0xF8) {
  156. var r = (c0 & 0x07) << 18 | (c1 & 0x3F) << 12 | (c2 & 0x3F) << 6 | (c3 & 0x3F);
  157. if (r <= 0xFFFF || 0x10FFFF < r) {
  158. return [0xFFFD, 1];
  159. }
  160. return [r, 4];
  161. }
  162. return [0xFFFD, 1];
  163. };
  164. var $encodeRune = function(r) {
  165. if (r < 0 || r > 0x10FFFF || (0xD800 <= r && r <= 0xDFFF)) {
  166. r = 0xFFFD;
  167. }
  168. if (r <= 0x7F) {
  169. return String.fromCharCode(r);
  170. }
  171. if (r <= 0x7FF) {
  172. return String.fromCharCode(0xC0 | r >> 6, 0x80 | (r & 0x3F));
  173. }
  174. if (r <= 0xFFFF) {
  175. return String.fromCharCode(0xE0 | r >> 12, 0x80 | (r >> 6 & 0x3F), 0x80 | (r & 0x3F));
  176. }
  177. return String.fromCharCode(0xF0 | r >> 18, 0x80 | (r >> 12 & 0x3F), 0x80 | (r >> 6 & 0x3F), 0x80 | (r & 0x3F));
  178. };
  179. var $stringToBytes = function(str) {
  180. var array = new Uint8Array(str.length);
  181. for (var i = 0; i < str.length; i++) {
  182. array[i] = str.charCodeAt(i);
  183. }
  184. return array;
  185. };
  186. var $bytesToString = function(slice) {
  187. if (slice.$length === 0) {
  188. return "";
  189. }
  190. var str = "";
  191. for (var i = 0; i < slice.$length; i += 10000) {
  192. str += String.fromCharCode.apply(undefined, slice.$array.subarray(slice.$offset + i, slice.$offset + Math.min(slice.$length, i + 10000)));
  193. }
  194. return str;
  195. };
  196. var $stringToRunes = function(str) {
  197. var array = new Int32Array(str.length);
  198. var rune, j = 0;
  199. for (var i = 0; i < str.length; i += rune[1], j++) {
  200. rune = $decodeRune(str, i);
  201. array[j] = rune[0];
  202. }
  203. return array.subarray(0, j);
  204. };
  205. var $runesToString = function(slice) {
  206. if (slice.$length === 0) {
  207. return "";
  208. }
  209. var str = "";
  210. for (var i = 0; i < slice.$length; i++) {
  211. str += $encodeRune(slice.$array[slice.$offset + i]);
  212. }
  213. return str;
  214. };
  215. var $copyString = function(dst, src) {
  216. var n = Math.min(src.length, dst.$length);
  217. for (var i = 0; i < n; i++) {
  218. dst.$array[dst.$offset + i] = src.charCodeAt(i);
  219. }
  220. return n;
  221. };
  222. var $copySlice = function(dst, src) {
  223. var n = Math.min(src.$length, dst.$length);
  224. $copyArray(dst.$array, src.$array, dst.$offset, src.$offset, n, dst.constructor.elem);
  225. return n;
  226. };
  227. var $copyArray = function(dst, src, dstOffset, srcOffset, n, elem) {
  228. if (n === 0 || (dst === src && dstOffset === srcOffset)) {
  229. return;
  230. }
  231. if (src.subarray) {
  232. dst.set(src.subarray(srcOffset, srcOffset + n), dstOffset);
  233. return;
  234. }
  235. switch (elem.kind) {
  236. case $kindArray:
  237. case $kindStruct:
  238. if (dst === src && dstOffset > srcOffset) {
  239. for (var i = n - 1; i >= 0; i--) {
  240. elem.copy(dst[dstOffset + i], src[srcOffset + i]);
  241. }
  242. return;
  243. }
  244. for (var i = 0; i < n; i++) {
  245. elem.copy(dst[dstOffset + i], src[srcOffset + i]);
  246. }
  247. return;
  248. }
  249. if (dst === src && dstOffset > srcOffset) {
  250. for (var i = n - 1; i >= 0; i--) {
  251. dst[dstOffset + i] = src[srcOffset + i];
  252. }
  253. return;
  254. }
  255. for (var i = 0; i < n; i++) {
  256. dst[dstOffset + i] = src[srcOffset + i];
  257. }
  258. };
  259. var $clone = function(src, type) {
  260. var clone = type.zero();
  261. type.copy(clone, src);
  262. return clone;
  263. };
  264. var $pointerOfStructConversion = function(obj, type) {
  265. if(obj.$proxies === undefined) {
  266. obj.$proxies = {};
  267. obj.$proxies[obj.constructor.string] = obj;
  268. }
  269. var proxy = obj.$proxies[type.string];
  270. if (proxy === undefined) {
  271. var properties = {};
  272. for (var i = 0; i < type.elem.fields.length; i++) {
  273. (function(fieldProp) {
  274. properties[fieldProp] = {
  275. get: function() { return obj[fieldProp]; },
  276. set: function(value) { obj[fieldProp] = value; }
  277. };
  278. })(type.elem.fields[i].prop);
  279. }
  280. proxy = Object.create(type.prototype, properties);
  281. proxy.$val = proxy;
  282. obj.$proxies[type.string] = proxy;
  283. proxy.$proxies = obj.$proxies;
  284. }
  285. return proxy;
  286. };
  287. var $append = function(slice) {
  288. return $internalAppend(slice, arguments, 1, arguments.length - 1);
  289. };
  290. var $appendSlice = function(slice, toAppend) {
  291. if (toAppend.constructor === String) {
  292. var bytes = $stringToBytes(toAppend);
  293. return $internalAppend(slice, bytes, 0, bytes.length);
  294. }
  295. return $internalAppend(slice, toAppend.$array, toAppend.$offset, toAppend.$length);
  296. };
  297. var $internalAppend = function(slice, array, offset, length) {
  298. if (length === 0) {
  299. return slice;
  300. }
  301. var newArray = slice.$array;
  302. var newOffset = slice.$offset;
  303. var newLength = slice.$length + length;
  304. var newCapacity = slice.$capacity;
  305. if (newLength > newCapacity) {
  306. newOffset = 0;
  307. newCapacity = Math.max(newLength, slice.$capacity < 1024 ? slice.$capacity * 2 : Math.floor(slice.$capacity * 5 / 4));
  308. if (slice.$array.constructor === Array) {
  309. newArray = slice.$array.slice(slice.$offset, slice.$offset + slice.$length);
  310. newArray.length = newCapacity;
  311. var zero = slice.constructor.elem.zero;
  312. for (var i = slice.$length; i < newCapacity; i++) {
  313. newArray[i] = zero();
  314. }
  315. } else {
  316. newArray = new slice.$array.constructor(newCapacity);
  317. newArray.set(slice.$array.subarray(slice.$offset, slice.$offset + slice.$length));
  318. }
  319. }
  320. $copyArray(newArray, array, newOffset + slice.$length, offset, length, slice.constructor.elem);
  321. var newSlice = new slice.constructor(newArray);
  322. newSlice.$offset = newOffset;
  323. newSlice.$length = newLength;
  324. newSlice.$capacity = newCapacity;
  325. return newSlice;
  326. };
  327. var $equal = function(a, b, type) {
  328. if (type === $jsObjectPtr) {
  329. return a === b;
  330. }
  331. switch (type.kind) {
  332. case $kindComplex64:
  333. case $kindComplex128:
  334. return a.$real === b.$real && a.$imag === b.$imag;
  335. case $kindInt64:
  336. case $kindUint64:
  337. return a.$high === b.$high && a.$low === b.$low;
  338. case $kindArray:
  339. if (a.length !== b.length) {
  340. return false;
  341. }
  342. for (var i = 0; i < a.length; i++) {
  343. if (!$equal(a[i], b[i], type.elem)) {
  344. return false;
  345. }
  346. }
  347. return true;
  348. case $kindStruct:
  349. for (var i = 0; i < type.fields.length; i++) {
  350. var f = type.fields[i];
  351. if (!$equal(a[f.prop], b[f.prop], f.typ)) {
  352. return false;
  353. }
  354. }
  355. return true;
  356. case $kindInterface:
  357. return $interfaceIsEqual(a, b);
  358. default:
  359. return a === b;
  360. }
  361. };
  362. var $interfaceIsEqual = function(a, b) {
  363. if (a === $ifaceNil || b === $ifaceNil) {
  364. return a === b;
  365. }
  366. if (a.constructor !== b.constructor) {
  367. return false;
  368. }
  369. if (a.constructor === $jsObjectPtr) {
  370. return a.object === b.object;
  371. }
  372. if (!a.constructor.comparable) {
  373. $throwRuntimeError("comparing uncomparable type " + a.constructor.string);
  374. }
  375. return $equal(a.$val, b.$val, a.constructor);
  376. };
  377. var $min = Math.min;
  378. var $mod = function(x, y) { return x % y; };
  379. var $parseInt = parseInt;
  380. var $parseFloat = function(f) {
  381. if (f !== undefined && f !== null && f.constructor === Number) {
  382. return f;
  383. }
  384. return parseFloat(f);
  385. };
  386. var $froundBuf = new Float32Array(1);
  387. var $fround = Math.fround || function(f) {
  388. $froundBuf[0] = f;
  389. return $froundBuf[0];
  390. };
  391. var $imul = Math.imul || function(a, b) {
  392. var ah = (a >>> 16) & 0xffff;
  393. var al = a & 0xffff;
  394. var bh = (b >>> 16) & 0xffff;
  395. var bl = b & 0xffff;
  396. return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0) >> 0);
  397. };
  398. var $floatKey = function(f) {
  399. if (f !== f) {
  400. $idCounter++;
  401. return "NaN$" + $idCounter;
  402. }
  403. return String(f);
  404. };
  405. var $flatten64 = function(x) {
  406. return x.$high * 4294967296 + x.$low;
  407. };
  408. var $shiftLeft64 = function(x, y) {
  409. if (y === 0) {
  410. return x;
  411. }
  412. if (y < 32) {
  413. return new x.constructor(x.$high << y | x.$low >>> (32 - y), (x.$low << y) >>> 0);
  414. }
  415. if (y < 64) {
  416. return new x.constructor(x.$low << (y - 32), 0);
  417. }
  418. return new x.constructor(0, 0);
  419. };
  420. var $shiftRightInt64 = function(x, y) {
  421. if (y === 0) {
  422. return x;
  423. }
  424. if (y < 32) {
  425. return new x.constructor(x.$high >> y, (x.$low >>> y | x.$high << (32 - y)) >>> 0);
  426. }
  427. if (y < 64) {
  428. return new x.constructor(x.$high >> 31, (x.$high >> (y - 32)) >>> 0);
  429. }
  430. if (x.$high < 0) {
  431. return new x.constructor(-1, 4294967295);
  432. }
  433. return new x.constructor(0, 0);
  434. };
  435. var $shiftRightUint64 = function(x, y) {
  436. if (y === 0) {
  437. return x;
  438. }
  439. if (y < 32) {
  440. return new x.constructor(x.$high >>> y, (x.$low >>> y | x.$high << (32 - y)) >>> 0);
  441. }
  442. if (y < 64) {
  443. return new x.constructor(0, x.$high >>> (y - 32));
  444. }
  445. return new x.constructor(0, 0);
  446. };
  447. var $mul64 = function(x, y) {
  448. var high = 0, low = 0;
  449. if ((y.$low & 1) !== 0) {
  450. high = x.$high;
  451. low = x.$low;
  452. }
  453. for (var i = 1; i < 32; i++) {
  454. if ((y.$low & 1<<i) !== 0) {
  455. high += x.$high << i | x.$low >>> (32 - i);
  456. low += (x.$low << i) >>> 0;
  457. }
  458. }
  459. for (var i = 0; i < 32; i++) {
  460. if ((y.$high & 1<<i) !== 0) {
  461. high += x.$low << i;
  462. }
  463. }
  464. return new x.constructor(high, low);
  465. };
  466. var $div64 = function(x, y, returnRemainder) {
  467. if (y.$high === 0 && y.$low === 0) {
  468. $throwRuntimeError("integer divide by zero");
  469. }
  470. var s = 1;
  471. var rs = 1;
  472. var xHigh = x.$high;
  473. var xLow = x.$low;
  474. if (xHigh < 0) {
  475. s = -1;
  476. rs = -1;
  477. xHigh = -xHigh;
  478. if (xLow !== 0) {
  479. xHigh--;
  480. xLow = 4294967296 - xLow;
  481. }
  482. }
  483. var yHigh = y.$high;
  484. var yLow = y.$low;
  485. if (y.$high < 0) {
  486. s *= -1;
  487. yHigh = -yHigh;
  488. if (yLow !== 0) {
  489. yHigh--;
  490. yLow = 4294967296 - yLow;
  491. }
  492. }
  493. var high = 0, low = 0, n = 0;
  494. while (yHigh < 2147483648 && ((xHigh > yHigh) || (xHigh === yHigh && xLow > yLow))) {
  495. yHigh = (yHigh << 1 | yLow >>> 31) >>> 0;
  496. yLow = (yLow << 1) >>> 0;
  497. n++;
  498. }
  499. for (var i = 0; i <= n; i++) {
  500. high = high << 1 | low >>> 31;
  501. low = (low << 1) >>> 0;
  502. if ((xHigh > yHigh) || (xHigh === yHigh && xLow >= yLow)) {
  503. xHigh = xHigh - yHigh;
  504. xLow = xLow - yLow;
  505. if (xLow < 0) {
  506. xHigh--;
  507. xLow += 4294967296;
  508. }
  509. low++;
  510. if (low === 4294967296) {
  511. high++;
  512. low = 0;
  513. }
  514. }
  515. yLow = (yLow >>> 1 | yHigh << (32 - 1)) >>> 0;
  516. yHigh = yHigh >>> 1;
  517. }
  518. if (returnRemainder) {
  519. return new x.constructor(xHigh * rs, xLow * rs);
  520. }
  521. return new x.constructor(high * s, low * s);
  522. };
  523. var $divComplex = function(n, d) {
  524. var ninf = n.$real === Infinity || n.$real === -Infinity || n.$imag === Infinity || n.$imag === -Infinity;
  525. var dinf = d.$real === Infinity || d.$real === -Infinity || d.$imag === Infinity || d.$imag === -Infinity;
  526. var nnan = !ninf && (n.$real !== n.$real || n.$imag !== n.$imag);
  527. var dnan = !dinf && (d.$real !== d.$real || d.$imag !== d.$imag);
  528. if(nnan || dnan) {
  529. return new n.constructor(NaN, NaN);
  530. }
  531. if (ninf && !dinf) {
  532. return new n.constructor(Infinity, Infinity);
  533. }
  534. if (!ninf && dinf) {
  535. return new n.constructor(0, 0);
  536. }
  537. if (d.$real === 0 && d.$imag === 0) {
  538. if (n.$real === 0 && n.$imag === 0) {
  539. return new n.constructor(NaN, NaN);
  540. }
  541. return new n.constructor(Infinity, Infinity);
  542. }
  543. var a = Math.abs(d.$real);
  544. var b = Math.abs(d.$imag);
  545. if (a <= b) {
  546. var ratio = d.$real / d.$imag;
  547. var denom = d.$real * ratio + d.$imag;
  548. return new n.constructor((n.$real * ratio + n.$imag) / denom, (n.$imag * ratio - n.$real) / denom);
  549. }
  550. var ratio = d.$imag / d.$real;
  551. var denom = d.$imag * ratio + d.$real;
  552. return new n.constructor((n.$imag * ratio + n.$real) / denom, (n.$imag - n.$real * ratio) / denom);
  553. };
  554. var $kindBool = 1;
  555. var $kindInt = 2;
  556. var $kindInt8 = 3;
  557. var $kindInt16 = 4;
  558. var $kindInt32 = 5;
  559. var $kindInt64 = 6;
  560. var $kindUint = 7;
  561. var $kindUint8 = 8;
  562. var $kindUint16 = 9;
  563. var $kindUint32 = 10;
  564. var $kindUint64 = 11;
  565. var $kindUintptr = 12;
  566. var $kindFloat32 = 13;
  567. var $kindFloat64 = 14;
  568. var $kindComplex64 = 15;
  569. var $kindComplex128 = 16;
  570. var $kindArray = 17;
  571. var $kindChan = 18;
  572. var $kindFunc = 19;
  573. var $kindInterface = 20;
  574. var $kindMap = 21;
  575. var $kindPtr = 22;
  576. var $kindSlice = 23;
  577. var $kindString = 24;
  578. var $kindStruct = 25;
  579. var $kindUnsafePointer = 26;
  580. var $methodSynthesizers = [];
  581. var $addMethodSynthesizer = function(f) {
  582. if ($methodSynthesizers === null) {
  583. f();
  584. return;
  585. }
  586. $methodSynthesizers.push(f);
  587. };
  588. var $synthesizeMethods = function() {
  589. $methodSynthesizers.forEach(function(f) { f(); });
  590. $methodSynthesizers = null;
  591. };
  592. var $ifaceKeyFor = function(x) {
  593. if (x === $ifaceNil) {
  594. return 'nil';
  595. }
  596. var c = x.constructor;
  597. return c.string + '$' + c.keyFor(x.$val);
  598. };
  599. var $identity = function(x) { return x; };
  600. var $typeIDCounter = 0;
  601. var $idKey = function(x) {
  602. if (x.$id === undefined) {
  603. $idCounter++;
  604. x.$id = $idCounter;
  605. }
  606. return String(x.$id);
  607. };
  608. var $newType = function(size, kind, string, named, pkg, exported, constructor) {
  609. var typ;
  610. switch(kind) {
  611. case $kindBool:
  612. case $kindInt:
  613. case $kindInt8:
  614. case $kindInt16:
  615. case $kindInt32:
  616. case $kindUint:
  617. case $kindUint8:
  618. case $kindUint16:
  619. case $kindUint32:
  620. case $kindUintptr:
  621. case $kindUnsafePointer:
  622. typ = function(v) { this.$val = v; };
  623. typ.wrapped = true;
  624. typ.keyFor = $identity;
  625. break;
  626. case $kindString:
  627. typ = function(v) { this.$val = v; };
  628. typ.wrapped = true;
  629. typ.keyFor = function(x) { return "$" + x; };
  630. break;
  631. case $kindFloat32:
  632. case $kindFloat64:
  633. typ = function(v) { this.$val = v; };
  634. typ.wrapped = true;
  635. typ.keyFor = function(x) { return $floatKey(x); };
  636. break;
  637. case $kindInt64:
  638. typ = function(high, low) {
  639. this.$high = (high + Math.floor(Math.ceil(low) / 4294967296)) >> 0;
  640. this.$low = low >>> 0;
  641. this.$val = this;
  642. };
  643. typ.keyFor = function(x) { return x.$high + "$" + x.$low; };
  644. break;
  645. case $kindUint64:
  646. typ = function(high, low) {
  647. this.$high = (high + Math.floor(Math.ceil(low) / 4294967296)) >>> 0;
  648. this.$low = low >>> 0;
  649. this.$val = this;
  650. };
  651. typ.keyFor = function(x) { return x.$high + "$" + x.$low; };
  652. break;
  653. case $kindComplex64:
  654. typ = function(real, imag) {
  655. this.$real = $fround(real);
  656. this.$imag = $fround(imag);
  657. this.$val = this;
  658. };
  659. typ.keyFor = function(x) { return x.$real + "$" + x.$imag; };
  660. break;
  661. case $kindComplex128:
  662. typ = function(real, imag) {
  663. this.$real = real;
  664. this.$imag = imag;
  665. this.$val = this;
  666. };
  667. typ.keyFor = function(x) { return x.$real + "$" + x.$imag; };
  668. break;
  669. case $kindArray:
  670. typ = function(v) { this.$val = v; };
  671. typ.wrapped = true;
  672. typ.ptr = $newType(4, $kindPtr, "*" + string, false, "", false, function(array) {
  673. this.$get = function() { return array; };
  674. this.$set = function(v) { typ.copy(this, v); };
  675. this.$val = array;
  676. });
  677. typ.init = function(elem, len) {
  678. typ.elem = elem;
  679. typ.len = len;
  680. typ.comparable = elem.comparable;
  681. typ.keyFor = function(x) {
  682. return Array.prototype.join.call($mapArray(x, function(e) {
  683. return String(elem.keyFor(e)).replace(/\\/g, "\\\\").replace(/\$/g, "\\$");
  684. }), "$");
  685. };
  686. typ.copy = function(dst, src) {
  687. $copyArray(dst, src, 0, 0, src.length, elem);
  688. };
  689. typ.ptr.init(typ);
  690. Object.defineProperty(typ.ptr.nil, "nilCheck", { get: $throwNilPointerError });
  691. };
  692. break;
  693. case $kindChan:
  694. typ = function(v) { this.$val = v; };
  695. typ.wrapped = true;
  696. typ.keyFor = $idKey;
  697. typ.init = function(elem, sendOnly, recvOnly) {
  698. typ.elem = elem;
  699. typ.sendOnly = sendOnly;
  700. typ.recvOnly = recvOnly;
  701. };
  702. break;
  703. case $kindFunc:
  704. typ = function(v) { this.$val = v; };
  705. typ.wrapped = true;
  706. typ.init = function(params, results, variadic) {
  707. typ.params = params;
  708. typ.results = results;
  709. typ.variadic = variadic;
  710. typ.comparable = false;
  711. };
  712. break;
  713. case $kindInterface:
  714. typ = { implementedBy: {}, missingMethodFor: {} };
  715. typ.keyFor = $ifaceKeyFor;
  716. typ.init = function(methods) {
  717. typ.methods = methods;
  718. methods.forEach(function(m) {
  719. $ifaceNil[m.prop] = $throwNilPointerError;
  720. });
  721. };
  722. break;
  723. case $kindMap:
  724. typ = function(v) { this.$val = v; };
  725. typ.wrapped = true;
  726. typ.init = function(key, elem) {
  727. typ.key = key;
  728. typ.elem = elem;
  729. typ.comparable = false;
  730. };
  731. break;
  732. case $kindPtr:
  733. typ = constructor || function(getter, setter, target) {
  734. this.$get = getter;
  735. this.$set = setter;
  736. this.$target = target;
  737. this.$val = this;
  738. };
  739. typ.keyFor = $idKey;
  740. typ.init = function(elem) {
  741. typ.elem = elem;
  742. typ.wrapped = (elem.kind === $kindArray);
  743. typ.nil = new typ($throwNilPointerError, $throwNilPointerError);
  744. };
  745. break;
  746. case $kindSlice:
  747. typ = function(array) {
  748. if (array.constructor !== typ.nativeArray) {
  749. array = new typ.nativeArray(array);
  750. }
  751. this.$array = array;
  752. this.$offset = 0;
  753. this.$length = array.length;
  754. this.$capacity = array.length;
  755. this.$val = this;
  756. };
  757. typ.init = function(elem) {
  758. typ.elem = elem;
  759. typ.comparable = false;
  760. typ.nativeArray = $nativeArray(elem.kind);
  761. typ.nil = new typ([]);
  762. };
  763. break;
  764. case $kindStruct:
  765. typ = function(v) { this.$val = v; };
  766. typ.wrapped = true;
  767. typ.ptr = $newType(4, $kindPtr, "*" + string, false, pkg, exported, constructor);
  768. typ.ptr.elem = typ;
  769. typ.ptr.prototype.$get = function() { return this; };
  770. typ.ptr.prototype.$set = function(v) { typ.copy(this, v); };
  771. typ.init = function(pkgPath, fields) {
  772. typ.pkgPath = pkgPath;
  773. typ.fields = fields;
  774. fields.forEach(function(f) {
  775. if (!f.typ.comparable) {
  776. typ.comparable = false;
  777. }
  778. });
  779. typ.keyFor = function(x) {
  780. var val = x.$val;
  781. return $mapArray(fields, function(f) {
  782. return String(f.typ.keyFor(val[f.prop])).replace(/\\/g, "\\\\").replace(/\$/g, "\\$");
  783. }).join("$");
  784. };
  785. typ.copy = function(dst, src) {
  786. for (var i = 0; i < fields.length; i++) {
  787. var f = fields[i];
  788. switch (f.typ.kind) {
  789. case $kindArray:
  790. case $kindStruct:
  791. f.typ.copy(dst[f.prop], src[f.prop]);
  792. continue;
  793. default:
  794. dst[f.prop] = src[f.prop];
  795. continue;
  796. }
  797. }
  798. };
  799. /* nil value */
  800. var properties = {};
  801. fields.forEach(function(f) {
  802. properties[f.prop] = { get: $throwNilPointerError, set: $throwNilPointerError };
  803. });
  804. typ.ptr.nil = Object.create(constructor.prototype, properties);
  805. typ.ptr.nil.$val = typ.ptr.nil;
  806. /* methods for embedded fields */
  807. $addMethodSynthesizer(function() {
  808. var synthesizeMethod = function(target, m, f) {
  809. if (target.prototype[m.prop] !== undefined) { return; }
  810. target.prototype[m.prop] = function() {
  811. var v = this.$val[f.prop];
  812. if (f.typ === $jsObjectPtr) {
  813. v = new $jsObjectPtr(v);
  814. }
  815. if (v.$val === undefined) {
  816. v = new f.typ(v);
  817. }
  818. return v[m.prop].apply(v, arguments);
  819. };
  820. };
  821. fields.forEach(function(f) {
  822. if (f.embedded) {
  823. $methodSet(f.typ).forEach(function(m) {
  824. synthesizeMethod(typ, m, f);
  825. synthesizeMethod(typ.ptr, m, f);
  826. });
  827. $methodSet($ptrType(f.typ)).forEach(function(m) {
  828. synthesizeMethod(typ.ptr, m, f);
  829. });
  830. }
  831. });
  832. });
  833. };
  834. break;
  835. default:
  836. $panic(new $String("invalid kind: " + kind));
  837. }
  838. switch (kind) {
  839. case $kindBool:
  840. case $kindMap:
  841. typ.zero = function() { return false; };
  842. break;
  843. case $kindInt:
  844. case $kindInt8:
  845. case $kindInt16:
  846. case $kindInt32:
  847. case $kindUint:
  848. case $kindUint8 :
  849. case $kindUint16:
  850. case $kindUint32:
  851. case $kindUintptr:
  852. case $kindUnsafePointer:
  853. case $kindFloat32:
  854. case $kindFloat64:
  855. typ.zero = function() { return 0; };
  856. break;
  857. case $kindString:
  858. typ.zero = function() { return ""; };
  859. break;
  860. case $kindInt64:
  861. case $kindUint64:
  862. case $kindComplex64:
  863. case $kindComplex128:
  864. var zero = new typ(0, 0);
  865. typ.zero = function() { return zero; };
  866. break;
  867. case $kindPtr:
  868. case $kindSlice:
  869. typ.zero = function() { return typ.nil; };
  870. break;
  871. case $kindChan:
  872. typ.zero = function() { return $chanNil; };
  873. break;
  874. case $kindFunc:
  875. typ.zero = function() { return $throwNilPointerError; };
  876. break;
  877. case $kindInterface:
  878. typ.zero = function() { return $ifaceNil; };
  879. break;
  880. case $kindArray:
  881. typ.zero = function() {
  882. var arrayClass = $nativeArray(typ.elem.kind);
  883. if (arrayClass !== Array) {
  884. return new arrayClass(typ.len);
  885. }
  886. var array = new Array(typ.len);
  887. for (var i = 0; i < typ.len; i++) {
  888. array[i] = typ.elem.zero();
  889. }
  890. return array;
  891. };
  892. break;
  893. case $kindStruct:
  894. typ.zero = function() { return new typ.ptr(); };
  895. break;
  896. default:
  897. $panic(new $String("invalid kind: " + kind));
  898. }
  899. typ.id = $typeIDCounter;
  900. $typeIDCounter++;
  901. typ.size = size;
  902. typ.kind = kind;
  903. typ.string = string;
  904. typ.named = named;
  905. typ.pkg = pkg;
  906. typ.exported = exported;
  907. typ.methods = [];
  908. typ.methodSetCache = null;
  909. typ.comparable = true;
  910. return typ;
  911. };
  912. var $methodSet = function(typ) {
  913. if (typ.methodSetCache !== null) {
  914. return typ.methodSetCache;
  915. }
  916. var base = {};
  917. var isPtr = (typ.kind === $kindPtr);
  918. if (isPtr && typ.elem.kind === $kindInterface) {
  919. typ.methodSetCache = [];
  920. return [];
  921. }
  922. var current = [{typ: isPtr ? typ.elem : typ, indirect: isPtr}];
  923. var seen = {};
  924. while (current.length > 0) {
  925. var next = [];
  926. var mset = [];
  927. current.forEach(function(e) {
  928. if (seen[e.typ.string]) {
  929. return;
  930. }
  931. seen[e.typ.string] = true;
  932. if (e.typ.named) {
  933. mset = mset.concat(e.typ.methods);
  934. if (e.indirect) {
  935. mset = mset.concat($ptrType(e.typ).methods);
  936. }
  937. }
  938. switch (e.typ.kind) {
  939. case $kindStruct:
  940. e.typ.fields.forEach(function(f) {
  941. if (f.embedded) {
  942. var fTyp = f.typ;
  943. var fIsPtr = (fTyp.kind === $kindPtr);
  944. next.push({typ: fIsPtr ? fTyp.elem : fTyp, indirect: e.indirect || fIsPtr});
  945. }
  946. });
  947. break;
  948. case $kindInterface:
  949. mset = mset.concat(e.typ.methods);
  950. break;
  951. }
  952. });
  953. mset.forEach(function(m) {
  954. if (base[m.name] === undefined) {
  955. base[m.name] = m;
  956. }
  957. });
  958. current = next;
  959. }
  960. typ.methodSetCache = [];
  961. Object.keys(base).sort().forEach(function(name) {
  962. typ.methodSetCache.push(base[name]);
  963. });
  964. return typ.methodSetCache;
  965. };
  966. var $Bool = $newType( 1, $kindBool, "bool", true, "", false, null);
  967. var $Int = $newType( 4, $kindInt, "int", true, "", false, null);
  968. var $Int8 = $newType( 1, $kindInt8, "int8", true, "", false, null);
  969. var $Int16 = $newType( 2, $kindInt16, "int16", true, "", false, null);
  970. var $Int32 = $newType( 4, $kindInt32, "int32", true, "", false, null);
  971. var $Int64 = $newType( 8, $kindInt64, "int64", true, "", false, null);
  972. var $Uint = $newType( 4, $kindUint, "uint", true, "", false, null);
  973. var $Uint8 = $newType( 1, $kindUint8, "uint8", true, "", false, null);
  974. var $Uint16 = $newType( 2, $kindUint16, "uint16", true, "", false, null);
  975. var $Uint32 = $newType( 4, $kindUint32, "uint32", true, "", false, null);
  976. var $Uint64 = $newType( 8, $kindUint64, "uint64", true, "", false, null);
  977. var $Uintptr = $newType( 4, $kindUintptr, "uintptr", true, "", false, null);
  978. var $Float32 = $newType( 4, $kindFloat32, "float32", true, "", false, null);
  979. var $Float64 = $newType( 8, $kindFloat64, "float64", true, "", false, null);
  980. var $Complex64 = $newType( 8, $kindComplex64, "complex64", true, "", false, null);
  981. var $Complex128 = $newType(16, $kindComplex128, "complex128", true, "", false, null);
  982. var $String = $newType( 8, $kindString, "string", true, "", false, null);
  983. var $UnsafePointer = $newType( 4, $kindUnsafePointer, "unsafe.Pointer", true, "", false, null);
  984. var $nativeArray = function(elemKind) {
  985. switch (elemKind) {
  986. case $kindInt:
  987. return Int32Array;
  988. case $kindInt8:
  989. return Int8Array;
  990. case $kindInt16:
  991. return Int16Array;
  992. case $kindInt32:
  993. return Int32Array;
  994. case $kindUint:
  995. return Uint32Array;
  996. case $kindUint8:
  997. return Uint8Array;
  998. case $kindUint16:
  999. return Uint16Array;
  1000. case $kindUint32:
  1001. return Uint32Array;
  1002. case $kindUintptr:
  1003. return Uint32Array;
  1004. case $kindFloat32:
  1005. return Float32Array;
  1006. case $kindFloat64:
  1007. return Float64Array;
  1008. default:
  1009. return Array;
  1010. }
  1011. };
  1012. var $toNativeArray = function(elemKind, array) {
  1013. var nativeArray = $nativeArray(elemKind);
  1014. if (nativeArray === Array) {
  1015. return array;
  1016. }
  1017. return new nativeArray(array);
  1018. };
  1019. var $arrayTypes = {};
  1020. var $arrayType = function(elem, len) {
  1021. var typeKey = elem.id + "$" + len;
  1022. var typ = $arrayTypes[typeKey];
  1023. if (typ === undefined) {
  1024. typ = $newType(12, $kindArray, "[" + len + "]" + elem.string, false, "", false, null);
  1025. $arrayTypes[typeKey] = typ;
  1026. typ.init(elem, len);
  1027. }
  1028. return typ;
  1029. };
  1030. var $chanType = function(elem, sendOnly, recvOnly) {
  1031. var string = (recvOnly ? "<-" : "") + "chan" + (sendOnly ? "<- " : " ") + elem.string;
  1032. var field = sendOnly ? "SendChan" : (recvOnly ? "RecvChan" : "Chan");
  1033. var typ = elem[field];
  1034. if (typ === undefined) {
  1035. typ = $newType(4, $kindChan, string, false, "", false, null);
  1036. elem[field] = typ;
  1037. typ.init(elem, sendOnly, recvOnly);
  1038. }
  1039. return typ;
  1040. };
  1041. var $Chan = function(elem, capacity) {
  1042. if (capacity < 0 || capacity > 2147483647) {
  1043. $throwRuntimeError("makechan: size out of range");
  1044. }
  1045. this.$elem = elem;
  1046. this.$capacity = capacity;
  1047. this.$buffer = [];
  1048. this.$sendQueue = [];
  1049. this.$recvQueue = [];
  1050. this.$closed = false;
  1051. };
  1052. var $chanNil = new $Chan(null, 0);
  1053. $chanNil.$sendQueue = $chanNil.$recvQueue = { length: 0, push: function() {}, shift: function() { return undefined; }, indexOf: function() { return -1; } };
  1054. var $funcTypes = {};
  1055. var $funcType = function(params, results, variadic) {
  1056. var typeKey = $mapArray(params, function(p) { return p.id; }).join(",") + "$" + $mapArray(results, function(r) { return r.id; }).join(",") + "$" + variadic;
  1057. var typ = $funcTypes[typeKey];
  1058. if (typ === undefined) {
  1059. var paramTypes = $mapArray(params, function(p) { return p.string; });
  1060. if (variadic) {
  1061. paramTypes[paramTypes.length - 1] = "..." + paramTypes[paramTypes.length - 1].substr(2);
  1062. }
  1063. var string = "func(" + paramTypes.join(", ") + ")";
  1064. if (results.length === 1) {
  1065. string += " " + results[0].string;
  1066. } else if (results.length > 1) {
  1067. string += " (" + $mapArray(results, function(r) { return r.string; }).join(", ") + ")";
  1068. }
  1069. typ = $newType(4, $kindFunc, string, false, "", false, null);
  1070. $funcTypes[typeKey] = typ;
  1071. typ.init(params, results, variadic);
  1072. }
  1073. return typ;
  1074. };
  1075. var $interfaceTypes = {};
  1076. var $interfaceType = function(methods) {
  1077. var typeKey = $mapArray(methods, function(m) { return m.pkg + "," + m.name + "," + m.typ.id; }).join("$");
  1078. var typ = $interfaceTypes[typeKey];
  1079. if (typ === undefined) {
  1080. var string = "interface {}";
  1081. if (methods.length !== 0) {
  1082. string = "interface { " + $mapArray(methods, function(m) {
  1083. return (m.pkg !== "" ? m.pkg + "." : "") + m.name + m.typ.string.substr(4);
  1084. }).join("; ") + " }";
  1085. }
  1086. typ = $newType(8, $kindInterface, string, false, "", false, null);
  1087. $interfaceTypes[typeKey] = typ;
  1088. typ.init(methods);
  1089. }
  1090. return typ;
  1091. };
  1092. var $emptyInterface = $interfaceType([]);
  1093. var $ifaceNil = {};
  1094. var $error = $newType(8, $kindInterface, "error", true, "", false, null);
  1095. $error.init([{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]);
  1096. var $mapTypes = {};
  1097. var $mapType = function(key, elem) {
  1098. var typeKey = key.id + "$" + elem.id;
  1099. var typ = $mapTypes[typeKey];
  1100. if (typ === undefined) {
  1101. typ = $newType(4, $kindMap, "map[" + key.string + "]" + elem.string, false, "", false, null);
  1102. $mapTypes[typeKey] = typ;
  1103. typ.init(key, elem);
  1104. }
  1105. return typ;
  1106. };
  1107. var $makeMap = function(keyForFunc, entries) {
  1108. var m = {};
  1109. for (var i = 0; i < entries.length; i++) {
  1110. var e = entries[i];
  1111. m[keyForFunc(e.k)] = e;
  1112. }
  1113. return m;
  1114. };
  1115. var $ptrType = function(elem) {
  1116. var typ = elem.ptr;
  1117. if (typ === undefined) {
  1118. typ = $newType(4, $kindPtr, "*" + elem.string, false, "", elem.exported, null);
  1119. elem.ptr = typ;
  1120. typ.init(elem);
  1121. }
  1122. return typ;
  1123. };
  1124. var $newDataPointer = function(data, constructor) {
  1125. if (constructor.elem.kind === $kindStruct) {
  1126. return data;
  1127. }
  1128. return new constructor(function() { return data; }, function(v) { data = v; });
  1129. };
  1130. var $indexPtr = function(array, index, constructor) {
  1131. array.$ptr = array.$ptr || {};
  1132. return array.$ptr[index] || (array.$ptr[index] = new constructor(function() { return array[index]; }, function(v) { array[index] = v; }));
  1133. };
  1134. var $sliceType = function(elem) {
  1135. var typ = elem.slice;
  1136. if (typ === undefined) {
  1137. typ = $newType(12, $kindSlice, "[]" + elem.string, false, "", false, null);
  1138. elem.slice = typ;
  1139. typ.init(elem);
  1140. }
  1141. return typ;
  1142. };
  1143. var $makeSlice = function(typ, length, capacity) {
  1144. capacity = capacity || length;
  1145. if (length < 0 || length > 2147483647) {
  1146. $throwRuntimeError("makeslice: len out of range");
  1147. }
  1148. if (capacity < 0 || capacity < length || capacity > 2147483647) {
  1149. $throwRuntimeError("makeslice: cap out of range");
  1150. }
  1151. var array = new typ.nativeArray(capacity);
  1152. if (typ.nativeArray === Array) {
  1153. for (var i = 0; i < capacity; i++) {
  1154. array[i] = typ.elem.zero();
  1155. }
  1156. }
  1157. var slice = new typ(array);
  1158. slice.$length = length;
  1159. return slice;
  1160. };
  1161. var $structTypes = {};
  1162. var $structType = function(pkgPath, fields) {
  1163. var typeKey = $mapArray(fields, function(f) { return f.name + "," + f.typ.id + "," + f.tag; }).join("$");
  1164. var typ = $structTypes[typeKey];
  1165. if (typ === undefined) {
  1166. var string = "struct { " + $mapArray(fields, function(f) {
  1167. return f.name + " " + f.typ.string + (f.tag !== "" ? (" \"" + f.tag.replace(/\\/g, "\\\\").replace(/"/g, "\\\"") + "\"") : "");
  1168. }).join("; ") + " }";
  1169. if (fields.length === 0) {
  1170. string = "struct {}";
  1171. }
  1172. typ = $newType(0, $kindStruct, string, false, "", false, function() {
  1173. this.$val = this;
  1174. for (var i = 0; i < fields.length; i++) {
  1175. var f = fields[i];
  1176. var arg = arguments[i];
  1177. this[f.prop] = arg !== undefined ? arg : f.typ.zero();
  1178. }
  1179. });
  1180. $structTypes[typeKey] = typ;
  1181. typ.init(pkgPath, fields);
  1182. }
  1183. return typ;
  1184. };
  1185. var $assertType = function(value, type, returnTuple) {
  1186. var isInterface = (type.kind === $kindInterface), ok, missingMethod = "";
  1187. if (value === $ifaceNil) {
  1188. ok = false;
  1189. } else if (!isInterface) {
  1190. ok = value.constructor === type;
  1191. } else {
  1192. var valueTypeString = value.constructor.string;
  1193. ok = type.implementedBy[valueTypeString];
  1194. if (ok === undefined) {
  1195. ok = true;
  1196. var valueMethodSet = $methodSet(value.constructor);
  1197. var interfaceMethods = type.methods;
  1198. for (var i = 0; i < interfaceMethods.length; i++) {
  1199. var tm = interfaceMethods[i];
  1200. var found = false;
  1201. for (var j = 0; j < valueMethodSet.length; j++) {
  1202. var vm = valueMethodSet[j];
  1203. if (vm.name === tm.name && vm.pkg === tm.pkg && vm.typ === tm.typ) {
  1204. found = true;
  1205. break;
  1206. }
  1207. }
  1208. if (!found) {
  1209. ok = false;
  1210. type.missingMethodFor[valueTypeString] = tm.name;
  1211. break;
  1212. }
  1213. }
  1214. type.implementedBy[valueTypeString] = ok;
  1215. }
  1216. if (!ok) {
  1217. missingMethod = type.missingMethodFor[valueTypeString];
  1218. }
  1219. }
  1220. if (!ok) {
  1221. if (returnTuple) {
  1222. return [type.zero(), false];
  1223. }
  1224. $panic(new $packages["runtime"].TypeAssertionError.ptr(
  1225. $packages["runtime"]._type.ptr.nil,
  1226. (value === $ifaceNil ? $packages["runtime"]._type.ptr.nil : new $packages["runtime"]._type.ptr(value.constructor.string)),
  1227. new $packages["runtime"]._type.ptr(type.string),
  1228. missingMethod));
  1229. }
  1230. if (!isInterface) {
  1231. value = value.$val;
  1232. }
  1233. if (type === $jsObjectPtr) {
  1234. value = value.object;
  1235. }
  1236. return returnTuple ? [value, true] : value;
  1237. };
  1238. var $stackDepthOffset = 0;
  1239. var $getStackDepth = function() {
  1240. var err = new Error();
  1241. if (err.stack === undefined) {
  1242. return undefined;
  1243. }
  1244. return $stackDepthOffset + err.stack.split("\n").length;
  1245. };
  1246. var $panicStackDepth = null, $panicValue;
  1247. var $callDeferred = function(deferred, jsErr, fromPanic) {
  1248. if (!fromPanic && deferred !== null && deferred.index >= $curGoroutine.deferStack.length) {
  1249. throw jsErr;
  1250. }
  1251. if (jsErr !== null) {
  1252. var newErr = null;
  1253. try {
  1254. $curGoroutine.deferStack.push(deferred);
  1255. $panic(new $jsErrorPtr(jsErr));
  1256. } catch (err) {
  1257. newErr = err;
  1258. }
  1259. $curGoroutine.deferStack.pop();
  1260. $callDeferred(deferred, newErr);
  1261. return;
  1262. }
  1263. if ($curGoroutine.asleep) {
  1264. return;
  1265. }
  1266. $stackDepthOffset--;
  1267. var outerPanicStackDepth = $panicStackDepth;
  1268. var outerPanicValue = $panicValue;
  1269. var localPanicValue = $curGoroutine.panicStack.pop();
  1270. if (localPanicValue !== undefined) {
  1271. $panicStackDepth = $getStackDepth();
  1272. $panicValue = localPanicValue;
  1273. }
  1274. try {
  1275. while (true) {
  1276. if (deferred === null) {
  1277. deferred = $curGoroutine.deferStack[$curGoroutine.deferStack.length - 1];
  1278. if (deferred === undefined) {
  1279. /* The panic reached the top of the stack. Clear it and throw it as a JavaScript error. */
  1280. $panicStackDepth = null;
  1281. if (localPanicValue.Object instanceof Error) {
  1282. throw localPanicValue.Object;
  1283. }
  1284. var msg;
  1285. if (localPanicValue.constructor === $String) {
  1286. msg = localPanicValue.$val;
  1287. } else if (localPanicValue.Error !== undefined) {
  1288. msg = localPanicValue.Error();
  1289. } else if (localPanicValue.String !== undefined) {
  1290. msg = localPanicValue.String();
  1291. } else {
  1292. msg = localPanicValue;
  1293. }
  1294. throw new Error(msg);
  1295. }
  1296. }
  1297. var call = deferred.pop();
  1298. if (call === undefined) {
  1299. $curGoroutine.deferStack.pop();
  1300. if (localPanicValue !== undefined) {
  1301. deferred = null;
  1302. continue;
  1303. }
  1304. return;
  1305. }
  1306. var r = call[0].apply(call[2], call[1]);
  1307. if (r && r.$blk !== undefined) {
  1308. deferred.push([r.$blk, [], r]);
  1309. if (fromPanic) {
  1310. throw null;
  1311. }
  1312. return;
  1313. }
  1314. if (localPanicValue !== undefined && $panicStackDepth === null) {
  1315. throw null; /* error was recovered */
  1316. }
  1317. }
  1318. } finally {
  1319. if (localPanicValue !== undefined) {
  1320. if ($panicStackDepth !== null) {
  1321. $curGoroutine.panicStack.push(localPanicValue);
  1322. }
  1323. $panicStackDepth = outerPanicStackDepth;
  1324. $panicValue = outerPanicValue;
  1325. }
  1326. $stackDepthOffset++;
  1327. }
  1328. };
  1329. var $panic = function(value) {
  1330. $curGoroutine.panicStack.push(value);
  1331. $callDeferred(null, null, true);
  1332. };
  1333. var $recover = function() {
  1334. if ($panicStackDepth === null || ($panicStackDepth !== undefined && $panicStackDepth !== $getStackDepth() - 2)) {
  1335. return $ifaceNil;
  1336. }
  1337. $panicStackDepth = null;
  1338. return $panicValue;
  1339. };
  1340. var $throw = function(err) { throw err; };
  1341. var $noGoroutine = { asleep: false, exit: false, deferStack: [], panicStack: [] };
  1342. var $curGoroutine = $noGoroutine, $totalGoroutines = 0, $awakeGoroutines = 0, $checkForDeadlock = true;
  1343. var $mainFinished = false;
  1344. var $go = function(fun, args) {
  1345. $totalGoroutines++;
  1346. $awakeGoroutines++;
  1347. var $goroutine = function() {
  1348. try {
  1349. $curGoroutine = $goroutine;
  1350. var r = fun.apply(undefined, args);
  1351. if (r && r.$blk !== undefined) {
  1352. fun = function() { return r.$blk(); };
  1353. args = [];
  1354. return;
  1355. }
  1356. $goroutine.exit = true;
  1357. } catch (err) {
  1358. if (!$goroutine.exit) {
  1359. throw err;
  1360. }
  1361. } finally {
  1362. $curGoroutine = $noGoroutine;
  1363. if ($goroutine.exit) { /* also set by runtime.Goexit() */
  1364. $totalGoroutines--;
  1365. $goroutine.asleep = true;
  1366. }
  1367. if ($goroutine.asleep) {
  1368. $awakeGoroutines--;
  1369. if (!$mainFinished && $awakeGoroutines === 0 && $checkForDeadlock) {
  1370. console.error("fatal error: all goroutines are asleep - deadlock!");
  1371. if ($global.process !== undefined) {
  1372. $global.process.exit(2);
  1373. }
  1374. }
  1375. }
  1376. }
  1377. };
  1378. $goroutine.asleep = false;
  1379. $goroutine.exit = false;
  1380. $goroutine.deferStack = [];
  1381. $goroutine.panicStack = [];
  1382. $schedule($goroutine);
  1383. };
  1384. var $scheduled = [];
  1385. var $runScheduled = function() {
  1386. try {
  1387. var r;
  1388. while ((r = $scheduled.shift()) !== undefined) {
  1389. r();
  1390. }
  1391. } finally {
  1392. if ($scheduled.length > 0) {
  1393. setTimeout($runScheduled, 0);
  1394. }
  1395. }
  1396. };
  1397. var $schedule = function(goroutine) {
  1398. if (goroutine.asleep) {
  1399. goroutine.asleep = false;
  1400. $awakeGoroutines++;
  1401. }
  1402. $scheduled.push(goroutine);
  1403. if ($curGoroutine === $noGoroutine) {
  1404. $runScheduled();
  1405. }
  1406. };
  1407. var $setTimeout = function(f, t) {
  1408. $awakeGoroutines++;
  1409. return setTimeout(function() {
  1410. $awakeGoroutines--;
  1411. f();
  1412. }, t);
  1413. };
  1414. var $block = function() {
  1415. if ($curGoroutine === $noGoroutine) {
  1416. $throwRuntimeError("cannot block in JavaScript callback, fix by wrapping code in goroutine");
  1417. }
  1418. $curGoroutine.asleep = true;
  1419. };
  1420. var $send = function(chan, value) {
  1421. if (chan.$closed) {
  1422. $throwRuntimeError("send on closed channel");
  1423. }
  1424. var queuedRecv = chan.$recvQueue.shift();
  1425. if (queuedRecv !== undefined) {
  1426. queuedRecv([value, true]);
  1427. return;
  1428. }
  1429. if (chan.$buffer.length < chan.$capacity) {
  1430. chan.$buffer.push(value);
  1431. return;
  1432. }
  1433. var thisGoroutine = $curGoroutine;
  1434. var closedDuringSend;
  1435. chan.$sendQueue.push(function(closed) {
  1436. closedDuringSend = closed;
  1437. $schedule(thisGoroutine);
  1438. return value;
  1439. });
  1440. $block();
  1441. return {
  1442. $blk: function() {
  1443. if (closedDuringSend) {
  1444. $throwRuntimeError("send on closed channel");
  1445. }
  1446. }
  1447. };
  1448. };
  1449. var $recv = function(chan) {
  1450. var queuedSend = chan.$sendQueue.shift();
  1451. if (queuedSend !== undefined) {
  1452. chan.$buffer.push(queuedSend(false));
  1453. }
  1454. var bufferedValue = chan.$buffer.shift();
  1455. if (bufferedValue !== undefined) {
  1456. return [bufferedValue, true];
  1457. }
  1458. if (chan.$closed) {
  1459. return [chan.$elem.zero(), false];
  1460. }
  1461. var thisGoroutine = $curGoroutine;
  1462. var f = { $blk: function() { return this.value; } };
  1463. var queueEntry = function(v) {
  1464. f.value = v;
  1465. $schedule(thisGoroutine);
  1466. };
  1467. chan.$recvQueue.push(queueEntry);
  1468. $block();
  1469. return f;
  1470. };
  1471. var $close = function(chan) {
  1472. if (chan.$closed) {
  1473. $throwRuntimeError("close of closed channel");
  1474. }
  1475. chan.$closed = true;
  1476. while (true) {
  1477. var queuedSend = chan.$sendQueue.shift();
  1478. if (queuedSend === undefined) {
  1479. break;
  1480. }
  1481. queuedSend(true); /* will panic */
  1482. }
  1483. while (true) {
  1484. var queuedRecv = chan.$recvQueue.shift();
  1485. if (queuedRecv === undefined) {
  1486. break;
  1487. }
  1488. queuedRecv([chan.$elem.zero(), false]);
  1489. }
  1490. };
  1491. var $select = function(comms) {
  1492. var ready = [];
  1493. var selection = -1;
  1494. for (var i = 0; i < comms.length; i++) {
  1495. var comm = comms[i];
  1496. var chan = comm[0];
  1497. switch (comm.length) {
  1498. case 0: /* default */
  1499. selection = i;
  1500. break;
  1501. case 1: /* recv */
  1502. if (chan.$sendQueue.length !== 0 || chan.$buffer.length !== 0 || chan.$closed) {
  1503. ready.push(i);
  1504. }
  1505. break;
  1506. case 2: /* send */
  1507. if (chan.$closed) {
  1508. $throwRuntimeError("send on closed channel");
  1509. }
  1510. if (chan.$recvQueue.length !== 0 || chan.$buffer.length < chan.$capacity) {
  1511. ready.push(i);
  1512. }
  1513. break;
  1514. }
  1515. }
  1516. if (ready.length !== 0) {
  1517. selection = ready[Math.floor(Math.random() * ready.length)];
  1518. }
  1519. if (selection !== -1) {
  1520. var comm = comms[selection];
  1521. switch (comm.length) {
  1522. case 0: /* default */
  1523. return [selection];
  1524. case 1: /* recv */
  1525. return [selection, $recv(comm[0])];
  1526. case 2: /* send */
  1527. $send(comm[0], comm[1]);
  1528. return [selection];
  1529. }
  1530. }
  1531. var entries = [];
  1532. var thisGoroutine = $curGoroutine;
  1533. var f = { $blk: function() { return this.selection; } };
  1534. var removeFromQueues = function() {
  1535. for (var i = 0; i < entries.length; i++) {
  1536. var entry = entries[i];
  1537. var queue = entry[0];
  1538. var index = queue.indexOf(entry[1]);
  1539. if (index !== -1) {
  1540. queue.splice(index, 1);
  1541. }
  1542. }
  1543. };
  1544. for (var i = 0; i < comms.length; i++) {
  1545. (function(i) {
  1546. var comm = comms[i];
  1547. switch (comm.length) {
  1548. case 1: /* recv */
  1549. var queueEntry = function(value) {
  1550. f.selection = [i, value];
  1551. removeFromQueues();
  1552. $schedule(thisGoroutine);
  1553. };
  1554. entries.push([comm[0].$recvQueue, queueEntry]);
  1555. comm[0].$recvQueue.push(queueEntry);
  1556. break;
  1557. case 2: /* send */
  1558. var queueEntry = function() {
  1559. if (comm[0].$closed) {
  1560. $throwRuntimeError("send on closed channel");
  1561. }
  1562. f.selection = [i];
  1563. removeFromQueues();
  1564. $schedule(thisGoroutine);
  1565. return comm[1];
  1566. };
  1567. entries.push([comm[0].$sendQueue, queueEntry]);
  1568. comm[0].$sendQueue.push(queueEntry);
  1569. break;
  1570. }
  1571. })(i);
  1572. }
  1573. $block();
  1574. return f;
  1575. };
  1576. var $jsObjectPtr, $jsErrorPtr;
  1577. var $needsExternalization = function(t) {
  1578. switch (t.kind) {
  1579. case $kindBool:
  1580. case $kindInt:
  1581. case $kindInt8:
  1582. case $kindInt16:
  1583. case $kindInt32:
  1584. case $kindUint:
  1585. case $kindUint8:
  1586. case $kindUint16:
  1587. case $kindUint32:
  1588. case $kindUintptr:
  1589. case $kindFloat32:
  1590. case $kindFloat64:
  1591. return false;
  1592. default:
  1593. return t !== $jsObjectPtr;
  1594. }
  1595. };
  1596. var $externalize = function(v, t) {
  1597. if (t === $jsObjectPtr) {
  1598. return v;
  1599. }
  1600. switch (t.kind) {
  1601. case $kindBool:
  1602. case $kindInt:
  1603. case $kindInt8:
  1604. case $kindInt16:
  1605. case $kindInt32:
  1606. case $kindUint:
  1607. case $kindUint8:
  1608. case $kindUint16:
  1609. case $kindUint32:
  1610. case $kindUintptr:
  1611. case $kindFloat32:
  1612. case $kindFloat64:
  1613. return v;
  1614. case $kindInt64:
  1615. case $kindUint64:
  1616. return $flatten64(v);
  1617. case $kindArray:
  1618. if ($needsExternalization(t.elem)) {
  1619. return $mapArray(v, function(e) { return $externalize(e, t.elem); });
  1620. }
  1621. return v;
  1622. case $kindFunc:
  1623. return $externalizeFunction(v, t, false);
  1624. case $kindInterface:
  1625. if (v === $ifaceNil) {
  1626. return null;
  1627. }
  1628. if (v.constructor === $jsObjectPtr) {
  1629. return v.$val.object;
  1630. }
  1631. return $externalize(v.$val, v.constructor);
  1632. case $kindMap:
  1633. var m = {};
  1634. var keys = $keys(v);
  1635. for (var i = 0; i < keys.length; i++) {
  1636. var entry = v[keys[i]];
  1637. m[$externalize(entry.k, t.key)] = $externalize(entry.v, t.elem);
  1638. }
  1639. return m;
  1640. case $kindPtr:
  1641. if (v === t.nil) {
  1642. return null;
  1643. }
  1644. return $externalize(v.$get(), t.elem);
  1645. case $kindSlice:
  1646. if ($needsExternalization(t.elem)) {
  1647. return $mapArray($sliceToArray(v), function(e) { return $externalize(e, t.elem); });
  1648. }
  1649. return $sliceToArray(v);
  1650. case $kindString:
  1651. if ($isASCII(v)) {
  1652. return v;
  1653. }
  1654. var s = "", r;
  1655. for (var i = 0; i < v.length; i += r[1]) {
  1656. r = $decodeRune(v, i);
  1657. var c = r[0];
  1658. if (c > 0xFFFF) {
  1659. var h = Math.floor((c - 0x10000) / 0x400) + 0xD800;
  1660. var l = (c - 0x10000) % 0x400 + 0xDC00;
  1661. s += String.fromCharCode(h, l);
  1662. continue;
  1663. }
  1664. s += String.fromCharCode(c);
  1665. }
  1666. return s;
  1667. case $kindStruct:
  1668. var timePkg = $packages["time"];
  1669. if (timePkg !== undefined && v.constructor === timePkg.Time.ptr) {
  1670. var milli = $div64(v.UnixNano(), new $Int64(0, 1000000));
  1671. return new Date($flatten64(milli));
  1672. }
  1673. var noJsObject = {};
  1674. var searchJsObject = function(v, t) {
  1675. if (t === $jsObjectPtr) {
  1676. return v;
  1677. }
  1678. switch (t.kind) {
  1679. case $kindPtr:
  1680. if (v === t.nil) {
  1681. return noJsObject;
  1682. }
  1683. return searchJsObject(v.$get(), t.elem);
  1684. case $kindStruct:
  1685. var f = t.fields[0];
  1686. return searchJsObject(v[f.prop], f.typ);
  1687. case $kindInterface:
  1688. return searchJsObject(v.$val, v.constructor);
  1689. default:
  1690. return noJsObject;
  1691. }
  1692. };
  1693. var o = searchJsObject(v, t);
  1694. if (o !== noJsObject) {
  1695. return o;
  1696. }
  1697. o = {};
  1698. for (var i = 0; i < t.fields.length; i++) {
  1699. var f = t.fields[i];
  1700. if (!f.exported) {
  1701. continue;
  1702. }
  1703. o[f.name] = $externalize(v[f.prop], f.typ);
  1704. }
  1705. return o;
  1706. }
  1707. $throwRuntimeError("cannot externalize " + t.string);
  1708. };
  1709. var $externalizeFunction = function(v, t, passThis) {
  1710. if (v === $throwNilPointerError) {
  1711. return null;
  1712. }
  1713. if (v.$externalizeWrapper === undefined) {
  1714. $checkForDeadlock = false;
  1715. v.$externalizeWrapper = function() {
  1716. var args = [];
  1717. for (var i = 0; i < t.params.length; i++) {
  1718. if (t.variadic && i === t.params.length - 1) {
  1719. var vt = t.params[i].elem, varargs = [];
  1720. for (var j = i; j < arguments.length; j++) {
  1721. varargs.push($internalize(arguments[j], vt));
  1722. }
  1723. args.push(new (t.params[i])(varargs));
  1724. break;
  1725. }
  1726. args.push($internalize(arguments[i], t.params[i]));
  1727. }
  1728. var result = v.apply(passThis ? this : undefined, args);
  1729. switch (t.results.length) {
  1730. case 0:
  1731. return;
  1732. case 1:
  1733. return $externalize(result, t.results[0]);
  1734. default:
  1735. for (var i = 0; i < t.results.length; i++) {
  1736. result[i] = $externalize(result[i], t.results[i]);
  1737. }
  1738. return result;
  1739. }
  1740. };
  1741. }
  1742. return v.$externalizeWrapper;
  1743. };
  1744. var $internalize = function(v, t, recv) {
  1745. if (t === $jsObjectPtr) {
  1746. return v;
  1747. }
  1748. if (t === $jsObjectPtr.elem) {
  1749. $throwRuntimeError("cannot internalize js.Object, use *js.Object instead");
  1750. }
  1751. if (v && v.__internal_object__ !== undefined) {
  1752. return $assertType(v.__internal_object__, t, false);
  1753. }
  1754. var timePkg = $packages["time"];
  1755. if (timePkg !== undefined && t === timePkg.Time) {
  1756. if (!(v !== null && v !== undefined && v.constructor === Date)) {
  1757. $throwRuntimeError("cannot internalize time.Time from " + typeof v + ", must be Date");
  1758. }
  1759. return timePkg.Unix(new $Int64(0, 0), new $Int64(0, v.getTime() * 1000000));
  1760. }
  1761. switch (t.kind) {
  1762. case $kindBool:
  1763. return !!v;
  1764. case $kindInt:
  1765. return parseInt(v);
  1766. case $kindInt8:
  1767. return parseInt(v) << 24 >> 24;
  1768. case $kindInt16:
  1769. return parseInt(v) << 16 >> 16;
  1770. case $kindInt32:
  1771. return parseInt(v) >> 0;
  1772. case $kindUint:
  1773. return parseInt(v);
  1774. case $kindUint8:
  1775. return parseInt(v) << 24 >>> 24;
  1776. case $kindUint16:
  1777. return parseInt(v) << 16 >>> 16;
  1778. case $kindUint32:
  1779. case $kindUintptr:
  1780. return parseInt(v) >>> 0;
  1781. case $kindInt64:
  1782. case $kindUint64:
  1783. return new t(0, v);
  1784. case $kindFloat32:
  1785. case $kindFloat64:
  1786. return parseFloat(v);
  1787. case $kindArray:
  1788. if (v.length !== t.len) {
  1789. $throwRuntimeError("got array with wrong size from JavaScript native");
  1790. }
  1791. return $mapArray(v, function(e) { return $internalize(e, t.elem); });
  1792. case $kindFunc:
  1793. return function() {
  1794. var args = [];
  1795. for (var i = 0; i < t.params.length; i++) {
  1796. if (t.variadic && i === t.params.length - 1) {
  1797. var vt = t.params[i].elem, varargs = arguments[i];
  1798. for (var j = 0; j < varargs.$length; j++) {
  1799. args.push($externalize(varargs.$array[varargs.$offset + j], vt));
  1800. }
  1801. break;
  1802. }
  1803. args.push($externalize(arguments[i], t.params[i]));
  1804. }
  1805. var result = v.apply(recv, args);
  1806. switch (t.results.length) {
  1807. case 0:
  1808. return;
  1809. case 1:
  1810. return $internalize(result, t.results[0]);
  1811. default:
  1812. for (var i = 0; i < t.results.length; i++) {
  1813. result[i] = $internalize(result[i], t.results[i]);
  1814. }
  1815. return result;
  1816. }
  1817. };
  1818. case $kindInterface:
  1819. if (t.methods.length !== 0) {
  1820. $throwRuntimeError("cannot internalize " + t.string);
  1821. }
  1822. if (v === null) {
  1823. return $ifaceNil;
  1824. }
  1825. if (v === undefined) {
  1826. return new $jsObjectPtr(undefined);
  1827. }
  1828. switch (v.constructor) {
  1829. case Int8Array:
  1830. return new ($sliceType($Int8))(v);
  1831. case Int16Array:
  1832. return new ($sliceType($Int16))(v);
  1833. case Int32Array:
  1834. return new ($sliceType($Int))(v);
  1835. case Uint8Array:
  1836. return new ($sliceType($Uint8))(v);
  1837. case Uint16Array:
  1838. return new ($sliceType($Uint16))(v);
  1839. case Uint32Array:
  1840. return new ($sliceType($Uint))(v);
  1841. case Float32Array:
  1842. return new ($sliceType($Float32))(v);
  1843. case Float64Array:
  1844. return new ($sliceType($Float64))(v);
  1845. case Array:
  1846. return $internalize(v, $sliceType($emptyInterface));
  1847. case Boolean:
  1848. return new $Bool(!!v);
  1849. case Date:
  1850. if (timePkg === undefined) {
  1851. /* time package is not present, internalize as &js.Object{Date} so it can be externalized into original Date. */
  1852. return new $jsObjectPtr(v);
  1853. }
  1854. return new timePkg.Time($internalize(v, timePkg.Time));
  1855. case Function:
  1856. var funcType = $funcType([$sliceType($emptyInterface)], [$jsObjectPtr], true);
  1857. return new funcType($internalize(v, funcType));
  1858. case Number:
  1859. return new $Float64(parseFloat(v));
  1860. case String:
  1861. return new $String($internalize(v, $String));
  1862. default:
  1863. if ($global.Node && v instanceof $global.Node) {
  1864. return new $jsObjectPtr(v);
  1865. }
  1866. var mapType = $mapType($String, $emptyInterface);
  1867. return new mapType($internalize(v, mapType));
  1868. }
  1869. case $kindMap:
  1870. var m = {};
  1871. var keys = $keys(v);
  1872. for (var i = 0; i < keys.length; i++) {
  1873. var k = $internalize(keys[i], t.key);
  1874. m[t.key.keyFor(k)] = { k: k, v: $internalize(v[keys[i]], t.elem) };
  1875. }
  1876. return m;
  1877. case $kindPtr:
  1878. if (t.elem.kind === $kindStruct) {
  1879. return $internalize(v, t.elem);
  1880. }
  1881. case $kindSlice:
  1882. return new t($mapArray(v, function(e) { return $internalize(e, t.elem); }));
  1883. case $kindString:
  1884. v = String(v);
  1885. if ($isASCII(v)) {
  1886. return v;
  1887. }
  1888. var s = "";
  1889. var i = 0;
  1890. while (i < v.length) {
  1891. var h = v.charCodeAt(i);
  1892. if (0xD800 <= h && h <= 0xDBFF) {
  1893. var l = v.charCodeAt(i + 1);
  1894. var c = (h - 0xD800) * 0x400 + l - 0xDC00 + 0x10000;
  1895. s += $encodeRune(c);
  1896. i += 2;
  1897. continue;
  1898. }
  1899. s += $encodeRune(h);
  1900. i++;
  1901. }
  1902. return s;
  1903. case $kindStruct:
  1904. var noJsObject = {};
  1905. var searchJsObject = function(t) {
  1906. if (t === $jsObjectPtr) {
  1907. return v;
  1908. }
  1909. if (t === $jsObjectPtr.elem) {
  1910. $throwRuntimeError("cannot internalize js.Object, use *js.Object instead");
  1911. }
  1912. switch (t.kind) {
  1913. case $kindPtr:
  1914. return searchJsObject(t.elem);
  1915. case $kindStruct:
  1916. var f = t.fields[0];
  1917. var o = searchJsObject(f.typ);
  1918. if (o !== noJsObject) {
  1919. var n = new t.ptr();
  1920. n[f.prop] = o;
  1921. return n;
  1922. }
  1923. return noJsObject;
  1924. default:
  1925. return noJsObject;
  1926. }
  1927. };
  1928. var o = searchJsObject(t);
  1929. if (o !== noJsObject) {
  1930. return o;
  1931. }
  1932. }
  1933. $throwRuntimeError("cannot internalize " + t.string);
  1934. };
  1935. /* $isASCII reports whether string s contains only ASCII characters. */
  1936. var $isASCII = function(s) {
  1937. for (var i = 0; i < s.length; i++) {
  1938. if (s.charCodeAt(i) >= 128) {
  1939. return false;
  1940. }
  1941. }
  1942. return true;
  1943. };
  1944. $packages["github.com/gopherjs/gopherjs/js"] = (function() {
  1945. var $pkg = {}, $init, Object, Error, sliceType, ptrType, ptrType$1, MakeFunc, init;
  1946. Object = $pkg.Object = $newType(0, $kindStruct, "js.Object", true, "github.com/gopherjs/gopherjs/js", true, function(object_) {
  1947. this.$val = this;
  1948. if (arguments.length === 0) {
  1949. this.object = null;
  1950. return;
  1951. }
  1952. this.object = object_;
  1953. });
  1954. Error = $pkg.Error = $newType(0, $kindStruct, "js.Error", true, "github.com/gopherjs/gopherjs/js", true, function(Object_) {
  1955. this.$val = this;
  1956. if (arguments.length === 0) {
  1957. this.Object = null;
  1958. return;
  1959. }
  1960. this.Object = Object_;
  1961. });
  1962. sliceType = $sliceType($emptyInterface);
  1963. ptrType = $ptrType(Object);
  1964. ptrType$1 = $ptrType(Error);
  1965. Object.ptr.prototype.Get = function(key) {
  1966. var key, o;
  1967. o = this;
  1968. return o.object[$externalize(key, $String)];
  1969. };
  1970. Object.prototype.Get = function(key) { return this.$val.Get(key); };
  1971. Object.ptr.prototype.Set = function(key, value) {
  1972. var key, o, value;
  1973. o = this;
  1974. o.object[$externalize(key, $String)] = $externalize(value, $emptyInterface);
  1975. };
  1976. Object.prototype.Set = function(key, value) { return this.$val.Set(key, value); };
  1977. Object.ptr.prototype.Delete = function(key) {
  1978. var key, o;
  1979. o = this;
  1980. delete o.object[$externalize(key, $String)];
  1981. };
  1982. Object.prototype.Delete = function(key) { return this.$val.Delete(key); };
  1983. Object.ptr.prototype.Length = function() {
  1984. var o;
  1985. o = this;
  1986. return $parseInt(o.object.length);
  1987. };
  1988. Object.prototype.Length = function() { return this.$val.Length(); };
  1989. Object.ptr.prototype.Index = function(i) {
  1990. var i, o;
  1991. o = this;
  1992. return o.object[i];
  1993. };
  1994. Object.prototype.Index = function(i) { return this.$val.Index(i); };
  1995. Object.ptr.prototype.SetIndex = function(i, value) {
  1996. var i, o, value;
  1997. o = this;
  1998. o.object[i] = $externalize(value, $emptyInterface);
  1999. };
  2000. Object.prototype.SetIndex = function(i, value) { return this.$val.SetIndex(i, value); };
  2001. Object.ptr.prototype.Call = function(name, args) {
  2002. var args, name, o, obj;
  2003. o = this;
  2004. return (obj = o.object, obj[$externalize(name, $String)].apply(obj, $externalize(args, sliceType)));
  2005. };
  2006. Object.prototype.Call = function(name, args) { return this.$val.Call(name, args); };
  2007. Object.ptr.prototype.Invoke = function(args) {
  2008. var args, o;
  2009. o = this;
  2010. return o.object.apply(undefined, $externalize(args, sliceType));
  2011. };
  2012. Object.prototype.Invoke = function(args) { return this.$val.Invoke(args); };
  2013. Object.ptr.prototype.New = function(args) {
  2014. var args, o;
  2015. o = this;
  2016. return new ($global.Function.prototype.bind.apply(o.object, [undefined].concat($externalize(args, sliceType))));
  2017. };
  2018. Object.prototype.New = function(args) { return this.$val.New(args); };
  2019. Object.ptr.prototype.Bool = function() {
  2020. var o;
  2021. o = this;
  2022. return !!(o.object);
  2023. };
  2024. Object.prototype.Bool = function() { return this.$val.Bool(); };
  2025. Object.ptr.prototype.String = function() {
  2026. var o;
  2027. o = this;
  2028. return $internalize(o.object, $String);
  2029. };
  2030. Object.prototype.String = function() { return this.$val.String(); };
  2031. Object.ptr.prototype.Int = function() {
  2032. var o;
  2033. o = this;
  2034. return $parseInt(o.object) >> 0;
  2035. };
  2036. Object.prototype.Int = function() { return this.$val.Int(); };
  2037. Object.ptr.prototype.Int64 = function() {
  2038. var o;
  2039. o = this;
  2040. return $internalize(o.object, $Int64);
  2041. };
  2042. Object.prototype.Int64 = function() { return this.$val.Int64(); };
  2043. Object.ptr.prototype.Uint64 = function() {
  2044. var o;
  2045. o = this;
  2046. return $internalize(o.object, $Uint64);
  2047. };
  2048. Object.prototype.Uint64 = function() { return this.$val.Uint64(); };
  2049. Object.ptr.prototype.Float = function() {
  2050. var o;
  2051. o = this;
  2052. return $parseFloat(o.object);
  2053. };
  2054. Object.prototype.Float = function() { return this.$val.Float(); };
  2055. Object.ptr.prototype.Interface = function() {
  2056. var o;
  2057. o = this;
  2058. return $internalize(o.object, $emptyInterface);
  2059. };
  2060. Object.prototype.Interface = function() { return this.$val.Interface(); };
  2061. Object.ptr.prototype.Unsafe = function() {
  2062. var o;
  2063. o = this;
  2064. return o.object;
  2065. };
  2066. Object.prototype.Unsafe = function() { return this.$val.Unsafe(); };
  2067. Error.ptr.prototype.Error = function() {
  2068. var err;
  2069. err = this;
  2070. return "JavaScript error: " + $internalize(err.Object.message, $String);
  2071. };
  2072. Error.prototype.Error = function() { return this.$val.Error(); };
  2073. Error.ptr.prototype.Stack = function() {
  2074. var err;
  2075. err = this;
  2076. return $internalize(err.Object.stack, $String);
  2077. };
  2078. Error.prototype.Stack = function() { return this.$val.Stack(); };
  2079. MakeFunc = function(fn) {
  2080. var fn;
  2081. return $makeFunc(fn);
  2082. };
  2083. $pkg.MakeFunc = MakeFunc;
  2084. init = function() {
  2085. var e;
  2086. e = new Error.ptr(null);
  2087. $unused(e);
  2088. };
  2089. ptrType.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [ptrType], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, $emptyInterface], [], false)}, {prop: "Delete", name: "Delete", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Length", name: "Length", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [ptrType], false)}, {prop: "SetIndex", name: "SetIndex", pkg: "", typ: $funcType([$Int, $emptyInterface], [], false)}, {prop: "Call", name: "Call", pkg: "", typ: $funcType([$String, sliceType], [ptrType], true)}, {prop: "Invoke", name: "Invoke", pkg: "", typ: $funcType([sliceType], [ptrType], true)}, {prop: "New", name: "New", pkg: "", typ: $funcType([sliceType], [ptrType], true)}, {prop: "Bool", name: "Bool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Int64", name: "Int64", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "Float", name: "Float", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Interface", name: "Interface", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Unsafe", name: "Unsafe", pkg: "", typ: $funcType([], [$Uintptr], false)}];
  2090. ptrType$1.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Stack", name: "Stack", pkg: "", typ: $funcType([], [$String], false)}];
  2091. Object.init("github.com/gopherjs/gopherjs/js", [{prop: "object", name: "object", embedded: false, exported: false, typ: ptrType, tag: ""}]);
  2092. Error.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType, tag: ""}]);
  2093. $init = function() {
  2094. $pkg.$init = function() {};
  2095. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  2096. init();
  2097. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  2098. };
  2099. $pkg.$init = $init;
  2100. return $pkg;
  2101. })();
  2102. $packages["internal/cpu"] = (function() {
  2103. var $pkg = {}, $init;
  2104. $init = function() {
  2105. $pkg.$init = function() {};
  2106. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  2107. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  2108. };
  2109. $pkg.$init = $init;
  2110. return $pkg;
  2111. })();
  2112. $packages["internal/bytealg"] = (function() {
  2113. var $pkg = {}, $init, cpu, Equal, Index, Cutover, IndexByteString;
  2114. cpu = $packages["internal/cpu"];
  2115. Equal = function(a, b) {
  2116. var _i, _ref, a, b, c, i;
  2117. if (!((a.$length === b.$length))) {
  2118. return false;
  2119. }
  2120. _ref = a;
  2121. _i = 0;
  2122. while (true) {
  2123. if (!(_i < _ref.$length)) { break; }
  2124. i = _i;
  2125. c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  2126. if (!((c === ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i])))) {
  2127. return false;
  2128. }
  2129. _i++;
  2130. }
  2131. return true;
  2132. };
  2133. $pkg.Equal = Equal;
  2134. Index = function(a, b) {
  2135. var a, b;
  2136. $panic(new $String("unimplemented"));
  2137. };
  2138. $pkg.Index = Index;
  2139. Cutover = function(n) {
  2140. var n;
  2141. $panic(new $String("unimplemented"));
  2142. };
  2143. $pkg.Cutover = Cutover;
  2144. IndexByteString = function(s, c) {
  2145. var c, i, s;
  2146. i = 0;
  2147. while (true) {
  2148. if (!(i < s.length)) { break; }
  2149. if (s.charCodeAt(i) === c) {
  2150. return i;
  2151. }
  2152. i = i + (1) >> 0;
  2153. }
  2154. return -1;
  2155. };
  2156. $pkg.IndexByteString = IndexByteString;
  2157. $init = function() {
  2158. $pkg.$init = function() {};
  2159. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  2160. $r = cpu.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  2161. $pkg.MaxLen = 0;
  2162. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  2163. };
  2164. $pkg.$init = $init;
  2165. return $pkg;
  2166. })();
  2167. $packages["runtime/internal/sys"] = (function() {
  2168. var $pkg = {}, $init;
  2169. $init = function() {
  2170. $pkg.$init = function() {};
  2171. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  2172. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  2173. };
  2174. $pkg.$init = $init;
  2175. return $pkg;
  2176. })();
  2177. $packages["runtime"] = (function() {
  2178. var $pkg = {}, $init, js, bytealg, sys, _type, TypeAssertionError, errorString, ptrType, ptrType$4, init, GOROOT, Caller, Goexit, SetFinalizer, KeepAlive, throw$1;
  2179. js = $packages["github.com/gopherjs/gopherjs/js"];
  2180. bytealg = $packages["internal/bytealg"];
  2181. sys = $packages["runtime/internal/sys"];
  2182. _type = $pkg._type = $newType(0, $kindStruct, "runtime._type", true, "runtime", false, function(str_) {
  2183. this.$val = this;
  2184. if (arguments.length === 0) {
  2185. this.str = "";
  2186. return;
  2187. }
  2188. this.str = str_;
  2189. });
  2190. TypeAssertionError = $pkg.TypeAssertionError = $newType(0, $kindStruct, "runtime.TypeAssertionError", true, "runtime", true, function(_interface_, concrete_, asserted_, missingMethod_) {
  2191. this.$val = this;
  2192. if (arguments.length === 0) {
  2193. this._interface = ptrType.nil;
  2194. this.concrete = ptrType.nil;
  2195. this.asserted = ptrType.nil;
  2196. this.missingMethod = "";
  2197. return;
  2198. }
  2199. this._interface = _interface_;
  2200. this.concrete = concrete_;
  2201. this.asserted = asserted_;
  2202. this.missingMethod = missingMethod_;
  2203. });
  2204. errorString = $pkg.errorString = $newType(8, $kindString, "runtime.errorString", true, "runtime", false, null);
  2205. ptrType = $ptrType(_type);
  2206. ptrType$4 = $ptrType(TypeAssertionError);
  2207. _type.ptr.prototype.string = function() {
  2208. var t;
  2209. t = this;
  2210. return t.str;
  2211. };
  2212. _type.prototype.string = function() { return this.$val.string(); };
  2213. _type.ptr.prototype.pkgpath = function() {
  2214. var t;
  2215. t = this;
  2216. return "";
  2217. };
  2218. _type.prototype.pkgpath = function() { return this.$val.pkgpath(); };
  2219. init = function() {
  2220. var e, jsPkg;
  2221. jsPkg = $packages[$externalize("github.com/gopherjs/gopherjs/js", $String)];
  2222. $jsObjectPtr = jsPkg.Object.ptr;
  2223. $jsErrorPtr = jsPkg.Error.ptr;
  2224. $throwRuntimeError = throw$1;
  2225. e = $ifaceNil;
  2226. e = new TypeAssertionError.ptr(ptrType.nil, ptrType.nil, ptrType.nil, "");
  2227. $unused(e);
  2228. };
  2229. GOROOT = function() {
  2230. var process, v, v$1;
  2231. process = $global.process;
  2232. if (process === undefined) {
  2233. return "/";
  2234. }
  2235. v = process.env.GOPHERJS_GOROOT;
  2236. if (!(v === undefined)) {
  2237. return $internalize(v, $String);
  2238. } else {
  2239. v$1 = process.env.GOROOT;
  2240. if (!(v$1 === undefined)) {
  2241. return $internalize(v$1, $String);
  2242. }
  2243. }
  2244. return "/usr/local/go";
  2245. };
  2246. $pkg.GOROOT = GOROOT;
  2247. Caller = function(skip) {
  2248. var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, file, info, line, ok, parts, pc, skip;
  2249. pc = 0;
  2250. file = "";
  2251. line = 0;
  2252. ok = false;
  2253. info = new ($global.Error)().stack.split($externalize("\n", $String))[(skip + 2 >> 0)];
  2254. if (info === undefined) {
  2255. _tmp = 0;
  2256. _tmp$1 = "";
  2257. _tmp$2 = 0;
  2258. _tmp$3 = false;
  2259. pc = _tmp;
  2260. file = _tmp$1;
  2261. line = _tmp$2;
  2262. ok = _tmp$3;
  2263. return [pc, file, line, ok];
  2264. }
  2265. parts = info.substring(($parseInt(info.indexOf($externalize("(", $String))) >> 0) + 1 >> 0, $parseInt(info.indexOf($externalize(")", $String))) >> 0).split($externalize(":", $String));
  2266. _tmp$4 = 0;
  2267. _tmp$5 = $internalize(parts[0], $String);
  2268. _tmp$6 = $parseInt(parts[1]) >> 0;
  2269. _tmp$7 = true;
  2270. pc = _tmp$4;
  2271. file = _tmp$5;
  2272. line = _tmp$6;
  2273. ok = _tmp$7;
  2274. return [pc, file, line, ok];
  2275. };
  2276. $pkg.Caller = Caller;
  2277. Goexit = function() {
  2278. $curGoroutine.exit = $externalize(true, $Bool);
  2279. $throw(null);
  2280. };
  2281. $pkg.Goexit = Goexit;
  2282. SetFinalizer = function(x, f) {
  2283. var f, x;
  2284. };
  2285. $pkg.SetFinalizer = SetFinalizer;
  2286. KeepAlive = function(param) {
  2287. var param;
  2288. };
  2289. $pkg.KeepAlive = KeepAlive;
  2290. throw$1 = function(s) {
  2291. var s;
  2292. $panic(new errorString((s)));
  2293. };
  2294. TypeAssertionError.ptr.prototype.RuntimeError = function() {
  2295. };
  2296. TypeAssertionError.prototype.RuntimeError = function() { return this.$val.RuntimeError(); };
  2297. TypeAssertionError.ptr.prototype.Error = function() {
  2298. var as, cs, e, inter, msg;
  2299. e = this;
  2300. inter = "interface";
  2301. if (!(e._interface === ptrType.nil)) {
  2302. inter = e._interface.string();
  2303. }
  2304. as = e.asserted.string();
  2305. if (e.concrete === ptrType.nil) {
  2306. return "interface conversion: " + inter + " is nil, not " + as;
  2307. }
  2308. cs = e.concrete.string();
  2309. if (e.missingMethod === "") {
  2310. msg = "interface conversion: " + inter + " is " + cs + ", not " + as;
  2311. if (cs === as) {
  2312. if (!(e.concrete.pkgpath() === e.asserted.pkgpath())) {
  2313. msg = msg + (" (types from different packages)");
  2314. } else {
  2315. msg = msg + (" (types from different scopes)");
  2316. }
  2317. }
  2318. return msg;
  2319. }
  2320. return "interface conversion: " + cs + " is not " + as + ": missing method " + e.missingMethod;
  2321. };
  2322. TypeAssertionError.prototype.Error = function() { return this.$val.Error(); };
  2323. errorString.prototype.RuntimeError = function() {
  2324. var e;
  2325. e = this.$val;
  2326. };
  2327. $ptrType(errorString).prototype.RuntimeError = function() { return new errorString(this.$get()).RuntimeError(); };
  2328. errorString.prototype.Error = function() {
  2329. var e;
  2330. e = this.$val;
  2331. return "runtime error: " + (e);
  2332. };
  2333. $ptrType(errorString).prototype.Error = function() { return new errorString(this.$get()).Error(); };
  2334. ptrType.methods = [{prop: "string", name: "string", pkg: "runtime", typ: $funcType([], [$String], false)}, {prop: "pkgpath", name: "pkgpath", pkg: "runtime", typ: $funcType([], [$String], false)}];
  2335. ptrType$4.methods = [{prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
  2336. errorString.methods = [{prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
  2337. _type.init("runtime", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]);
  2338. TypeAssertionError.init("runtime", [{prop: "_interface", name: "_interface", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "concrete", name: "concrete", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "asserted", name: "asserted", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "missingMethod", name: "missingMethod", embedded: false, exported: false, typ: $String, tag: ""}]);
  2339. $init = function() {
  2340. $pkg.$init = function() {};
  2341. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  2342. $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  2343. $r = bytealg.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  2344. $r = sys.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  2345. init();
  2346. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  2347. };
  2348. $pkg.$init = $init;
  2349. return $pkg;
  2350. })();
  2351. $packages["errors"] = (function() {
  2352. var $pkg = {}, $init, errorString, ptrType, New;
  2353. errorString = $pkg.errorString = $newType(0, $kindStruct, "errors.errorString", true, "errors", false, function(s_) {
  2354. this.$val = this;
  2355. if (arguments.length === 0) {
  2356. this.s = "";
  2357. return;
  2358. }
  2359. this.s = s_;
  2360. });
  2361. ptrType = $ptrType(errorString);
  2362. New = function(text) {
  2363. var text;
  2364. return new errorString.ptr(text);
  2365. };
  2366. $pkg.New = New;
  2367. errorString.ptr.prototype.Error = function() {
  2368. var e;
  2369. e = this;
  2370. return e.s;
  2371. };
  2372. errorString.prototype.Error = function() { return this.$val.Error(); };
  2373. ptrType.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
  2374. errorString.init("errors", [{prop: "s", name: "s", embedded: false, exported: false, typ: $String, tag: ""}]);
  2375. $init = function() {
  2376. $pkg.$init = function() {};
  2377. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  2378. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  2379. };
  2380. $pkg.$init = $init;
  2381. return $pkg;
  2382. })();
  2383. $packages["math/bits"] = (function() {
  2384. var $pkg = {}, $init, deBruijn32tab, deBruijn64tab, len8tab, LeadingZeros64, TrailingZeros, TrailingZeros32, TrailingZeros64, Len64;
  2385. LeadingZeros64 = function(x) {
  2386. var x;
  2387. return 64 - Len64(x) >> 0;
  2388. };
  2389. $pkg.LeadingZeros64 = LeadingZeros64;
  2390. TrailingZeros = function(x) {
  2391. var x;
  2392. if (true) {
  2393. return TrailingZeros32(((x >>> 0)));
  2394. }
  2395. return TrailingZeros64((new $Uint64(0, x)));
  2396. };
  2397. $pkg.TrailingZeros = TrailingZeros;
  2398. TrailingZeros32 = function(x) {
  2399. var x, x$1;
  2400. if (x === 0) {
  2401. return 32;
  2402. }
  2403. return (((x$1 = ($imul((((x & (-x >>> 0)) >>> 0)), 125613361) >>> 0) >>> 27 >>> 0, ((x$1 < 0 || x$1 >= deBruijn32tab.length) ? ($throwRuntimeError("index out of range"), undefined) : deBruijn32tab[x$1])) >> 0));
  2404. };
  2405. $pkg.TrailingZeros32 = TrailingZeros32;
  2406. TrailingZeros64 = function(x) {
  2407. var x, x$1, x$2;
  2408. if ((x.$high === 0 && x.$low === 0)) {
  2409. return 64;
  2410. }
  2411. return (((x$1 = $shiftRightUint64($mul64(((x$2 = new $Uint64(-x.$high, -x.$low), new $Uint64(x.$high & x$2.$high, (x.$low & x$2.$low) >>> 0))), new $Uint64(66559345, 3033172745)), 58), (($flatten64(x$1) < 0 || $flatten64(x$1) >= deBruijn64tab.length) ? ($throwRuntimeError("index out of range"), undefined) : deBruijn64tab[$flatten64(x$1)])) >> 0));
  2412. };
  2413. $pkg.TrailingZeros64 = TrailingZeros64;
  2414. Len64 = function(x) {
  2415. var n, x;
  2416. n = 0;
  2417. if ((x.$high > 1 || (x.$high === 1 && x.$low >= 0))) {
  2418. x = $shiftRightUint64(x, (32));
  2419. n = 32;
  2420. }
  2421. if ((x.$high > 0 || (x.$high === 0 && x.$low >= 65536))) {
  2422. x = $shiftRightUint64(x, (16));
  2423. n = n + (16) >> 0;
  2424. }
  2425. if ((x.$high > 0 || (x.$high === 0 && x.$low >= 256))) {
  2426. x = $shiftRightUint64(x, (8));
  2427. n = n + (8) >> 0;
  2428. }
  2429. n = n + (((($flatten64(x) < 0 || $flatten64(x) >= len8tab.length) ? ($throwRuntimeError("index out of range"), undefined) : len8tab[$flatten64(x)]) >> 0)) >> 0;
  2430. return n;
  2431. };
  2432. $pkg.Len64 = Len64;
  2433. $init = function() {
  2434. $pkg.$init = function() {};
  2435. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  2436. deBruijn32tab = $toNativeArray($kindUint8, [0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9]);
  2437. deBruijn64tab = $toNativeArray($kindUint8, [0, 1, 56, 2, 57, 49, 28, 3, 61, 58, 42, 50, 38, 29, 17, 4, 62, 47, 59, 36, 45, 43, 51, 22, 53, 39, 33, 30, 24, 18, 12, 5, 63, 55, 48, 27, 60, 41, 37, 16, 46, 35, 44, 21, 52, 32, 23, 11, 54, 26, 40, 15, 34, 20, 31, 10, 25, 14, 19, 9, 13, 8, 7, 6]);
  2438. len8tab = $toNativeArray($kindUint8, [0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8]);
  2439. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  2440. };
  2441. $pkg.$init = $init;
  2442. return $pkg;
  2443. })();
  2444. $packages["math"] = (function() {
  2445. var $pkg = {}, $init, js, bits, arrayType, arrayType$1, arrayType$2, structType, math, zero, nan, buf, Exp, Log, init, Float32bits, Float32frombits, Float64bits, Float64frombits;
  2446. js = $packages["github.com/gopherjs/gopherjs/js"];
  2447. bits = $packages["math/bits"];
  2448. arrayType = $arrayType($Uint32, 2);
  2449. arrayType$1 = $arrayType($Float32, 2);
  2450. arrayType$2 = $arrayType($Float64, 1);
  2451. structType = $structType("math", [{prop: "uint32array", name: "uint32array", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "float32array", name: "float32array", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "float64array", name: "float64array", embedded: false, exported: false, typ: arrayType$2, tag: ""}]);
  2452. Exp = function(x) {
  2453. var x;
  2454. return $parseFloat(math.exp(x));
  2455. };
  2456. $pkg.Exp = Exp;
  2457. Log = function(x) {
  2458. var x;
  2459. if (!((x === x))) {
  2460. return nan;
  2461. }
  2462. return $parseFloat(math.log(x));
  2463. };
  2464. $pkg.Log = Log;
  2465. init = function() {
  2466. var ab;
  2467. ab = new ($global.ArrayBuffer)(8);
  2468. buf.uint32array = new ($global.Uint32Array)(ab);
  2469. buf.float32array = new ($global.Float32Array)(ab);
  2470. buf.float64array = new ($global.Float64Array)(ab);
  2471. };
  2472. Float32bits = function(f) {
  2473. var f;
  2474. buf.float32array[0] = f;
  2475. return buf.uint32array[0];
  2476. };
  2477. $pkg.Float32bits = Float32bits;
  2478. Float32frombits = function(b) {
  2479. var b;
  2480. buf.uint32array[0] = b;
  2481. return buf.float32array[0];
  2482. };
  2483. $pkg.Float32frombits = Float32frombits;
  2484. Float64bits = function(f) {
  2485. var f, x, x$1;
  2486. buf.float64array[0] = f;
  2487. return (x = $shiftLeft64((new $Uint64(0, buf.uint32array[1])), 32), x$1 = (new $Uint64(0, buf.uint32array[0])), new $Uint64(x.$high + x$1.$high, x.$low + x$1.$low));
  2488. };
  2489. $pkg.Float64bits = Float64bits;
  2490. Float64frombits = function(b) {
  2491. var b;
  2492. buf.uint32array[0] = ((b.$low >>> 0));
  2493. buf.uint32array[1] = (($shiftRightUint64(b, 32).$low >>> 0));
  2494. return buf.float64array[0];
  2495. };
  2496. $pkg.Float64frombits = Float64frombits;
  2497. $init = function() {
  2498. $pkg.$init = function() {};
  2499. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  2500. $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  2501. $r = bits.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  2502. buf = new structType.ptr(arrayType.zero(), arrayType$1.zero(), arrayType$2.zero());
  2503. math = $global.Math;
  2504. zero = 0;
  2505. nan = 0 / zero;
  2506. init();
  2507. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  2508. };
  2509. $pkg.$init = $init;
  2510. return $pkg;
  2511. })();
  2512. $packages["unicode/utf8"] = (function() {
  2513. var $pkg = {}, $init, acceptRange, first, acceptRanges, DecodeRune, DecodeRuneInString, DecodeLastRune, DecodeLastRuneInString, RuneLen, EncodeRune, RuneCount, RuneCountInString, RuneStart, ValidString, ValidRune;
  2514. acceptRange = $pkg.acceptRange = $newType(0, $kindStruct, "utf8.acceptRange", true, "unicode/utf8", false, function(lo_, hi_) {
  2515. this.$val = this;
  2516. if (arguments.length === 0) {
  2517. this.lo = 0;
  2518. this.hi = 0;
  2519. return;
  2520. }
  2521. this.lo = lo_;
  2522. this.hi = hi_;
  2523. });
  2524. DecodeRune = function(p) {
  2525. var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, accept, b1, b2, b3, mask, n, p, p0, r, size, sz, x, x$1;
  2526. r = 0;
  2527. size = 0;
  2528. n = p.$length;
  2529. if (n < 1) {
  2530. _tmp = 65533;
  2531. _tmp$1 = 0;
  2532. r = _tmp;
  2533. size = _tmp$1;
  2534. return [r, size];
  2535. }
  2536. p0 = (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]);
  2537. x = ((p0 < 0 || p0 >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[p0]);
  2538. if (x >= 240) {
  2539. mask = (((x >> 0)) << 31 >> 0) >> 31 >> 0;
  2540. _tmp$2 = (((((0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]) >> 0)) & ~mask) >> 0) | (65533 & mask);
  2541. _tmp$3 = 1;
  2542. r = _tmp$2;
  2543. size = _tmp$3;
  2544. return [r, size];
  2545. }
  2546. sz = (x & 7) >>> 0;
  2547. accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange);
  2548. if (n < ((sz >> 0))) {
  2549. _tmp$4 = 65533;
  2550. _tmp$5 = 1;
  2551. r = _tmp$4;
  2552. size = _tmp$5;
  2553. return [r, size];
  2554. }
  2555. b1 = (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1]);
  2556. if (b1 < accept.lo || accept.hi < b1) {
  2557. _tmp$6 = 65533;
  2558. _tmp$7 = 1;
  2559. r = _tmp$6;
  2560. size = _tmp$7;
  2561. return [r, size];
  2562. }
  2563. if (sz === 2) {
  2564. _tmp$8 = (((((p0 & 31) >>> 0) >> 0)) << 6 >> 0) | ((((b1 & 63) >>> 0) >> 0));
  2565. _tmp$9 = 2;
  2566. r = _tmp$8;
  2567. size = _tmp$9;
  2568. return [r, size];
  2569. }
  2570. b2 = (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2]);
  2571. if (b2 < 128 || 191 < b2) {
  2572. _tmp$10 = 65533;
  2573. _tmp$11 = 1;
  2574. r = _tmp$10;
  2575. size = _tmp$11;
  2576. return [r, size];
  2577. }
  2578. if (sz === 3) {
  2579. _tmp$12 = ((((((p0 & 15) >>> 0) >> 0)) << 12 >> 0) | (((((b1 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((b2 & 63) >>> 0) >> 0));
  2580. _tmp$13 = 3;
  2581. r = _tmp$12;
  2582. size = _tmp$13;
  2583. return [r, size];
  2584. }
  2585. b3 = (3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3]);
  2586. if (b3 < 128 || 191 < b3) {
  2587. _tmp$14 = 65533;
  2588. _tmp$15 = 1;
  2589. r = _tmp$14;
  2590. size = _tmp$15;
  2591. return [r, size];
  2592. }
  2593. _tmp$16 = (((((((p0 & 7) >>> 0) >> 0)) << 18 >> 0) | (((((b1 & 63) >>> 0) >> 0)) << 12 >> 0)) | (((((b2 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((b3 & 63) >>> 0) >> 0));
  2594. _tmp$17 = 4;
  2595. r = _tmp$16;
  2596. size = _tmp$17;
  2597. return [r, size];
  2598. };
  2599. $pkg.DecodeRune = DecodeRune;
  2600. DecodeRuneInString = function(s) {
  2601. var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, accept, mask, n, r, s, s0, s1, s2, s3, size, sz, x, x$1;
  2602. r = 0;
  2603. size = 0;
  2604. n = s.length;
  2605. if (n < 1) {
  2606. _tmp = 65533;
  2607. _tmp$1 = 0;
  2608. r = _tmp;
  2609. size = _tmp$1;
  2610. return [r, size];
  2611. }
  2612. s0 = s.charCodeAt(0);
  2613. x = ((s0 < 0 || s0 >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[s0]);
  2614. if (x >= 240) {
  2615. mask = (((x >> 0)) << 31 >> 0) >> 31 >> 0;
  2616. _tmp$2 = ((((s.charCodeAt(0) >> 0)) & ~mask) >> 0) | (65533 & mask);
  2617. _tmp$3 = 1;
  2618. r = _tmp$2;
  2619. size = _tmp$3;
  2620. return [r, size];
  2621. }
  2622. sz = (x & 7) >>> 0;
  2623. accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange);
  2624. if (n < ((sz >> 0))) {
  2625. _tmp$4 = 65533;
  2626. _tmp$5 = 1;
  2627. r = _tmp$4;
  2628. size = _tmp$5;
  2629. return [r, size];
  2630. }
  2631. s1 = s.charCodeAt(1);
  2632. if (s1 < accept.lo || accept.hi < s1) {
  2633. _tmp$6 = 65533;
  2634. _tmp$7 = 1;
  2635. r = _tmp$6;
  2636. size = _tmp$7;
  2637. return [r, size];
  2638. }
  2639. if (sz === 2) {
  2640. _tmp$8 = (((((s0 & 31) >>> 0) >> 0)) << 6 >> 0) | ((((s1 & 63) >>> 0) >> 0));
  2641. _tmp$9 = 2;
  2642. r = _tmp$8;
  2643. size = _tmp$9;
  2644. return [r, size];
  2645. }
  2646. s2 = s.charCodeAt(2);
  2647. if (s2 < 128 || 191 < s2) {
  2648. _tmp$10 = 65533;
  2649. _tmp$11 = 1;
  2650. r = _tmp$10;
  2651. size = _tmp$11;
  2652. return [r, size];
  2653. }
  2654. if (sz === 3) {
  2655. _tmp$12 = ((((((s0 & 15) >>> 0) >> 0)) << 12 >> 0) | (((((s1 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((s2 & 63) >>> 0) >> 0));
  2656. _tmp$13 = 3;
  2657. r = _tmp$12;
  2658. size = _tmp$13;
  2659. return [r, size];
  2660. }
  2661. s3 = s.charCodeAt(3);
  2662. if (s3 < 128 || 191 < s3) {
  2663. _tmp$14 = 65533;
  2664. _tmp$15 = 1;
  2665. r = _tmp$14;
  2666. size = _tmp$15;
  2667. return [r, size];
  2668. }
  2669. _tmp$16 = (((((((s0 & 7) >>> 0) >> 0)) << 18 >> 0) | (((((s1 & 63) >>> 0) >> 0)) << 12 >> 0)) | (((((s2 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((s3 & 63) >>> 0) >> 0));
  2670. _tmp$17 = 4;
  2671. r = _tmp$16;
  2672. size = _tmp$17;
  2673. return [r, size];
  2674. };
  2675. $pkg.DecodeRuneInString = DecodeRuneInString;
  2676. DecodeLastRune = function(p) {
  2677. var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, end, lim, p, r, size, start;
  2678. r = 0;
  2679. size = 0;
  2680. end = p.$length;
  2681. if (end === 0) {
  2682. _tmp = 65533;
  2683. _tmp$1 = 0;
  2684. r = _tmp;
  2685. size = _tmp$1;
  2686. return [r, size];
  2687. }
  2688. start = end - 1 >> 0;
  2689. r = ((((start < 0 || start >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + start]) >> 0));
  2690. if (r < 128) {
  2691. _tmp$2 = r;
  2692. _tmp$3 = 1;
  2693. r = _tmp$2;
  2694. size = _tmp$3;
  2695. return [r, size];
  2696. }
  2697. lim = end - 4 >> 0;
  2698. if (lim < 0) {
  2699. lim = 0;
  2700. }
  2701. start = start - (1) >> 0;
  2702. while (true) {
  2703. if (!(start >= lim)) { break; }
  2704. if (RuneStart(((start < 0 || start >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + start]))) {
  2705. break;
  2706. }
  2707. start = start - (1) >> 0;
  2708. }
  2709. if (start < 0) {
  2710. start = 0;
  2711. }
  2712. _tuple = DecodeRune($subslice(p, start, end));
  2713. r = _tuple[0];
  2714. size = _tuple[1];
  2715. if (!(((start + size >> 0) === end))) {
  2716. _tmp$4 = 65533;
  2717. _tmp$5 = 1;
  2718. r = _tmp$4;
  2719. size = _tmp$5;
  2720. return [r, size];
  2721. }
  2722. _tmp$6 = r;
  2723. _tmp$7 = size;
  2724. r = _tmp$6;
  2725. size = _tmp$7;
  2726. return [r, size];
  2727. };
  2728. $pkg.DecodeLastRune = DecodeLastRune;
  2729. DecodeLastRuneInString = function(s) {
  2730. var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, end, lim, r, s, size, start;
  2731. r = 0;
  2732. size = 0;
  2733. end = s.length;
  2734. if (end === 0) {
  2735. _tmp = 65533;
  2736. _tmp$1 = 0;
  2737. r = _tmp;
  2738. size = _tmp$1;
  2739. return [r, size];
  2740. }
  2741. start = end - 1 >> 0;
  2742. r = ((s.charCodeAt(start) >> 0));
  2743. if (r < 128) {
  2744. _tmp$2 = r;
  2745. _tmp$3 = 1;
  2746. r = _tmp$2;
  2747. size = _tmp$3;
  2748. return [r, size];
  2749. }
  2750. lim = end - 4 >> 0;
  2751. if (lim < 0) {
  2752. lim = 0;
  2753. }
  2754. start = start - (1) >> 0;
  2755. while (true) {
  2756. if (!(start >= lim)) { break; }
  2757. if (RuneStart(s.charCodeAt(start))) {
  2758. break;
  2759. }
  2760. start = start - (1) >> 0;
  2761. }
  2762. if (start < 0) {
  2763. start = 0;
  2764. }
  2765. _tuple = DecodeRuneInString($substring(s, start, end));
  2766. r = _tuple[0];
  2767. size = _tuple[1];
  2768. if (!(((start + size >> 0) === end))) {
  2769. _tmp$4 = 65533;
  2770. _tmp$5 = 1;
  2771. r = _tmp$4;
  2772. size = _tmp$5;
  2773. return [r, size];
  2774. }
  2775. _tmp$6 = r;
  2776. _tmp$7 = size;
  2777. r = _tmp$6;
  2778. size = _tmp$7;
  2779. return [r, size];
  2780. };
  2781. $pkg.DecodeLastRuneInString = DecodeLastRuneInString;
  2782. RuneLen = function(r) {
  2783. var r;
  2784. if (r < 0) {
  2785. return -1;
  2786. } else if (r <= 127) {
  2787. return 1;
  2788. } else if (r <= 2047) {
  2789. return 2;
  2790. } else if (55296 <= r && r <= 57343) {
  2791. return -1;
  2792. } else if (r <= 65535) {
  2793. return 3;
  2794. } else if (r <= 1114111) {
  2795. return 4;
  2796. }
  2797. return -1;
  2798. };
  2799. $pkg.RuneLen = RuneLen;
  2800. EncodeRune = function(p, r) {
  2801. var i, p, r;
  2802. i = ((r >>> 0));
  2803. if (i <= 127) {
  2804. (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((r << 24 >>> 24)));
  2805. return 1;
  2806. } else if (i <= 2047) {
  2807. $unused((1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1]));
  2808. (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((192 | (((r >> 6 >> 0) << 24 >>> 24))) >>> 0));
  2809. (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0));
  2810. return 2;
  2811. } else if ((i > 1114111) || (55296 <= i && i <= 57343)) {
  2812. r = 65533;
  2813. $unused((2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2]));
  2814. (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((224 | (((r >> 12 >> 0) << 24 >>> 24))) >>> 0));
  2815. (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | (((((r >> 6 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0));
  2816. (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0));
  2817. return 3;
  2818. } else if (i <= 65535) {
  2819. $unused((2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2]));
  2820. (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((224 | (((r >> 12 >> 0) << 24 >>> 24))) >>> 0));
  2821. (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | (((((r >> 6 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0));
  2822. (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0));
  2823. return 3;
  2824. } else {
  2825. $unused((3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3]));
  2826. (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((240 | (((r >> 18 >> 0) << 24 >>> 24))) >>> 0));
  2827. (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | (((((r >> 12 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0));
  2828. (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = ((128 | (((((r >> 6 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0));
  2829. (3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0));
  2830. return 4;
  2831. }
  2832. };
  2833. $pkg.EncodeRune = EncodeRune;
  2834. RuneCount = function(p) {
  2835. var accept, c, c$1, c$2, c$3, i, n, np, p, size, x, x$1, x$2, x$3, x$4;
  2836. np = p.$length;
  2837. n = 0;
  2838. i = 0;
  2839. while (true) {
  2840. if (!(i < np)) { break; }
  2841. n = n + (1) >> 0;
  2842. c = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]);
  2843. if (c < 128) {
  2844. i = i + (1) >> 0;
  2845. continue;
  2846. }
  2847. x = ((c < 0 || c >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[c]);
  2848. if (x === 241) {
  2849. i = i + (1) >> 0;
  2850. continue;
  2851. }
  2852. size = ((((x & 7) >>> 0) >> 0));
  2853. if ((i + size >> 0) > np) {
  2854. i = i + (1) >> 0;
  2855. continue;
  2856. }
  2857. accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange);
  2858. c$1 = (x$2 = i + 1 >> 0, ((x$2 < 0 || x$2 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$2]));
  2859. if (c$1 < accept.lo || accept.hi < c$1) {
  2860. size = 1;
  2861. } else if (size === 2) {
  2862. } else {
  2863. c$2 = (x$3 = i + 2 >> 0, ((x$3 < 0 || x$3 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$3]));
  2864. if (c$2 < 128 || 191 < c$2) {
  2865. size = 1;
  2866. } else if (size === 3) {
  2867. } else {
  2868. c$3 = (x$4 = i + 3 >> 0, ((x$4 < 0 || x$4 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$4]));
  2869. if (c$3 < 128 || 191 < c$3) {
  2870. size = 1;
  2871. }
  2872. }
  2873. }
  2874. i = i + (size) >> 0;
  2875. }
  2876. return n;
  2877. };
  2878. $pkg.RuneCount = RuneCount;
  2879. RuneCountInString = function(s) {
  2880. var accept, c, c$1, c$2, c$3, i, n, ns, s, size, x, x$1;
  2881. n = 0;
  2882. ns = s.length;
  2883. i = 0;
  2884. while (true) {
  2885. if (!(i < ns)) { break; }
  2886. c = s.charCodeAt(i);
  2887. if (c < 128) {
  2888. i = i + (1) >> 0;
  2889. n = n + (1) >> 0;
  2890. continue;
  2891. }
  2892. x = ((c < 0 || c >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[c]);
  2893. if (x === 241) {
  2894. i = i + (1) >> 0;
  2895. n = n + (1) >> 0;
  2896. continue;
  2897. }
  2898. size = ((((x & 7) >>> 0) >> 0));
  2899. if ((i + size >> 0) > ns) {
  2900. i = i + (1) >> 0;
  2901. n = n + (1) >> 0;
  2902. continue;
  2903. }
  2904. accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange);
  2905. c$1 = s.charCodeAt((i + 1 >> 0));
  2906. if (c$1 < accept.lo || accept.hi < c$1) {
  2907. size = 1;
  2908. } else if (size === 2) {
  2909. } else {
  2910. c$2 = s.charCodeAt((i + 2 >> 0));
  2911. if (c$2 < 128 || 191 < c$2) {
  2912. size = 1;
  2913. } else if (size === 3) {
  2914. } else {
  2915. c$3 = s.charCodeAt((i + 3 >> 0));
  2916. if (c$3 < 128 || 191 < c$3) {
  2917. size = 1;
  2918. }
  2919. }
  2920. }
  2921. i = i + (size) >> 0;
  2922. n = n + (1) >> 0;
  2923. }
  2924. n = n;
  2925. return n;
  2926. };
  2927. $pkg.RuneCountInString = RuneCountInString;
  2928. RuneStart = function(b) {
  2929. var b;
  2930. return !((((b & 192) >>> 0) === 128));
  2931. };
  2932. $pkg.RuneStart = RuneStart;
  2933. ValidString = function(s) {
  2934. var accept, c, c$1, c$2, i, n, s, si, size, x, x$1;
  2935. n = s.length;
  2936. i = 0;
  2937. while (true) {
  2938. if (!(i < n)) { break; }
  2939. si = s.charCodeAt(i);
  2940. if (si < 128) {
  2941. i = i + (1) >> 0;
  2942. continue;
  2943. }
  2944. x = ((si < 0 || si >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[si]);
  2945. if (x === 241) {
  2946. return false;
  2947. }
  2948. size = ((((x & 7) >>> 0) >> 0));
  2949. if ((i + size >> 0) > n) {
  2950. return false;
  2951. }
  2952. accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange);
  2953. c = s.charCodeAt((i + 1 >> 0));
  2954. if (c < accept.lo || accept.hi < c) {
  2955. return false;
  2956. } else if (size === 2) {
  2957. } else {
  2958. c$1 = s.charCodeAt((i + 2 >> 0));
  2959. if (c$1 < 128 || 191 < c$1) {
  2960. return false;
  2961. } else if (size === 3) {
  2962. } else {
  2963. c$2 = s.charCodeAt((i + 3 >> 0));
  2964. if (c$2 < 128 || 191 < c$2) {
  2965. return false;
  2966. }
  2967. }
  2968. }
  2969. i = i + (size) >> 0;
  2970. }
  2971. return true;
  2972. };
  2973. $pkg.ValidString = ValidString;
  2974. ValidRune = function(r) {
  2975. var r;
  2976. if (0 <= r && r < 55296) {
  2977. return true;
  2978. } else if (57343 < r && r <= 1114111) {
  2979. return true;
  2980. }
  2981. return false;
  2982. };
  2983. $pkg.ValidRune = ValidRune;
  2984. acceptRange.init("unicode/utf8", [{prop: "lo", name: "lo", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "hi", name: "hi", embedded: false, exported: false, typ: $Uint8, tag: ""}]);
  2985. $init = function() {
  2986. $pkg.$init = function() {};
  2987. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  2988. first = $toNativeArray($kindUint8, [240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 19, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 35, 3, 3, 52, 4, 4, 4, 68, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241]);
  2989. acceptRanges = $toNativeArray($kindStruct, [new acceptRange.ptr(128, 191), new acceptRange.ptr(160, 191), new acceptRange.ptr(128, 159), new acceptRange.ptr(144, 191), new acceptRange.ptr(128, 143)]);
  2990. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  2991. };
  2992. $pkg.$init = $init;
  2993. return $pkg;
  2994. })();
  2995. $packages["strconv"] = (function() {
  2996. var $pkg = {}, $init, errors, bytealg, math, bits, utf8, NumError, decimal, leftCheat, extFloat, floatInfo, decimalSlice, sliceType$3, sliceType$4, sliceType$5, arrayType, sliceType$6, ptrType, arrayType$1, arrayType$2, ptrType$1, arrayType$3, arrayType$4, ptrType$2, ptrType$3, ptrType$4, optimize, leftcheats, smallPowersOfTen, powersOfTen, uint64pow10, float32info, float32info$24ptr, float64info, float64info$24ptr, isPrint16, isNotPrint16, isPrint32, isNotPrint32, isGraphic, syntaxError, rangeError, baseError, bitSizeError, ParseUint, ParseInt, Atoi, digitZero, trim, rightShift, prefixIsLessThan, leftShift, shouldRoundUp, frexp10Many, adjustLastDigitFixed, adjustLastDigit, AppendFloat, genericFtoa, bigFtoa, formatDigits, roundShortest, fmtE, fmtF, fmtB, min, max, FormatUint, FormatInt, Itoa, small, formatBits, isPowerOfTwo, quoteWith, appendQuotedWith, appendQuotedRuneWith, appendEscapedRune, Quote, AppendQuote, QuoteToASCII, AppendQuoteToASCII, AppendQuoteRune, AppendQuoteRuneToASCII, CanBackquote, unhex, UnquoteChar, Unquote, contains, bsearch16, bsearch32, IsPrint, isInGraphicList;
  2997. errors = $packages["errors"];
  2998. bytealg = $packages["internal/bytealg"];
  2999. math = $packages["math"];
  3000. bits = $packages["math/bits"];
  3001. utf8 = $packages["unicode/utf8"];
  3002. NumError = $pkg.NumError = $newType(0, $kindStruct, "strconv.NumError", true, "strconv", true, function(Func_, Num_, Err_) {
  3003. this.$val = this;
  3004. if (arguments.length === 0) {
  3005. this.Func = "";
  3006. this.Num = "";
  3007. this.Err = $ifaceNil;
  3008. return;
  3009. }
  3010. this.Func = Func_;
  3011. this.Num = Num_;
  3012. this.Err = Err_;
  3013. });
  3014. decimal = $pkg.decimal = $newType(0, $kindStruct, "strconv.decimal", true, "strconv", false, function(d_, nd_, dp_, neg_, trunc_) {
  3015. this.$val = this;
  3016. if (arguments.length === 0) {
  3017. this.d = arrayType.zero();
  3018. this.nd = 0;
  3019. this.dp = 0;
  3020. this.neg = false;
  3021. this.trunc = false;
  3022. return;
  3023. }
  3024. this.d = d_;
  3025. this.nd = nd_;
  3026. this.dp = dp_;
  3027. this.neg = neg_;
  3028. this.trunc = trunc_;
  3029. });
  3030. leftCheat = $pkg.leftCheat = $newType(0, $kindStruct, "strconv.leftCheat", true, "strconv", false, function(delta_, cutoff_) {
  3031. this.$val = this;
  3032. if (arguments.length === 0) {
  3033. this.delta = 0;
  3034. this.cutoff = "";
  3035. return;
  3036. }
  3037. this.delta = delta_;
  3038. this.cutoff = cutoff_;
  3039. });
  3040. extFloat = $pkg.extFloat = $newType(0, $kindStruct, "strconv.extFloat", true, "strconv", false, function(mant_, exp_, neg_) {
  3041. this.$val = this;
  3042. if (arguments.length === 0) {
  3043. this.mant = new $Uint64(0, 0);
  3044. this.exp = 0;
  3045. this.neg = false;
  3046. return;
  3047. }
  3048. this.mant = mant_;
  3049. this.exp = exp_;
  3050. this.neg = neg_;
  3051. });
  3052. floatInfo = $pkg.floatInfo = $newType(0, $kindStruct, "strconv.floatInfo", true, "strconv", false, function(mantbits_, expbits_, bias_) {
  3053. this.$val = this;
  3054. if (arguments.length === 0) {
  3055. this.mantbits = 0;
  3056. this.expbits = 0;
  3057. this.bias = 0;
  3058. return;
  3059. }
  3060. this.mantbits = mantbits_;
  3061. this.expbits = expbits_;
  3062. this.bias = bias_;
  3063. });
  3064. decimalSlice = $pkg.decimalSlice = $newType(0, $kindStruct, "strconv.decimalSlice", true, "strconv", false, function(d_, nd_, dp_, neg_) {
  3065. this.$val = this;
  3066. if (arguments.length === 0) {
  3067. this.d = sliceType$6.nil;
  3068. this.nd = 0;
  3069. this.dp = 0;
  3070. this.neg = false;
  3071. return;
  3072. }
  3073. this.d = d_;
  3074. this.nd = nd_;
  3075. this.dp = dp_;
  3076. this.neg = neg_;
  3077. });
  3078. sliceType$3 = $sliceType(leftCheat);
  3079. sliceType$4 = $sliceType($Uint16);
  3080. sliceType$5 = $sliceType($Uint32);
  3081. arrayType = $arrayType($Uint8, 800);
  3082. sliceType$6 = $sliceType($Uint8);
  3083. ptrType = $ptrType(NumError);
  3084. arrayType$1 = $arrayType($Uint8, 24);
  3085. arrayType$2 = $arrayType($Uint8, 32);
  3086. ptrType$1 = $ptrType(floatInfo);
  3087. arrayType$3 = $arrayType($Uint8, 65);
  3088. arrayType$4 = $arrayType($Uint8, 4);
  3089. ptrType$2 = $ptrType(decimal);
  3090. ptrType$3 = $ptrType(decimalSlice);
  3091. ptrType$4 = $ptrType(extFloat);
  3092. NumError.ptr.prototype.Error = function() {
  3093. var _r, e, $s, $r;
  3094. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  3095. e = this;
  3096. _r = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  3097. $s = -1; return "strconv." + e.Func + ": " + "parsing " + Quote(e.Num) + ": " + _r;
  3098. /* */ } return; } if ($f === undefined) { $f = { $blk: NumError.ptr.prototype.Error }; } $f._r = _r; $f.e = e; $f.$s = $s; $f.$r = $r; return $f;
  3099. };
  3100. NumError.prototype.Error = function() { return this.$val.Error(); };
  3101. syntaxError = function(fn, str) {
  3102. var fn, str;
  3103. return new NumError.ptr(fn, str, $pkg.ErrSyntax);
  3104. };
  3105. rangeError = function(fn, str) {
  3106. var fn, str;
  3107. return new NumError.ptr(fn, str, $pkg.ErrRange);
  3108. };
  3109. baseError = function(fn, str, base) {
  3110. var base, fn, str;
  3111. return new NumError.ptr(fn, str, errors.New("invalid base " + Itoa(base)));
  3112. };
  3113. bitSizeError = function(fn, str, bitSize) {
  3114. var bitSize, fn, str;
  3115. return new NumError.ptr(fn, str, errors.New("invalid bit size " + Itoa(bitSize)));
  3116. };
  3117. ParseUint = function(s, base, bitSize) {
  3118. var _1, _i, _ref, base, bitSize, c, cutoff, d, maxVal, n, n1, s, s0, x, x$1, x$2;
  3119. if (s.length === 0) {
  3120. return [new $Uint64(0, 0), syntaxError("ParseUint", s)];
  3121. }
  3122. s0 = s;
  3123. if (2 <= base && base <= 36) {
  3124. } else if ((base === 0)) {
  3125. if ((s.charCodeAt(0) === 48) && s.length > 1 && ((s.charCodeAt(1) === 120) || (s.charCodeAt(1) === 88))) {
  3126. if (s.length < 3) {
  3127. return [new $Uint64(0, 0), syntaxError("ParseUint", s0)];
  3128. }
  3129. base = 16;
  3130. s = $substring(s, 2);
  3131. } else if ((s.charCodeAt(0) === 48)) {
  3132. base = 8;
  3133. s = $substring(s, 1);
  3134. } else {
  3135. base = 10;
  3136. }
  3137. } else {
  3138. return [new $Uint64(0, 0), baseError("ParseUint", s0, base)];
  3139. }
  3140. if (bitSize === 0) {
  3141. bitSize = 32;
  3142. } else if (bitSize < 0 || bitSize > 64) {
  3143. return [new $Uint64(0, 0), bitSizeError("ParseUint", s0, bitSize)];
  3144. }
  3145. cutoff = new $Uint64(0, 0);
  3146. _1 = base;
  3147. if (_1 === (10)) {
  3148. cutoff = new $Uint64(429496729, 2576980378);
  3149. } else if (_1 === (16)) {
  3150. cutoff = new $Uint64(268435456, 0);
  3151. } else {
  3152. cutoff = (x = $div64(new $Uint64(4294967295, 4294967295), (new $Uint64(0, base)), false), new $Uint64(x.$high + 0, x.$low + 1));
  3153. }
  3154. maxVal = (x$1 = $shiftLeft64(new $Uint64(0, 1), ((bitSize >>> 0))), new $Uint64(x$1.$high - 0, x$1.$low - 1));
  3155. n = new $Uint64(0, 0);
  3156. _ref = (new sliceType$6($stringToBytes(s)));
  3157. _i = 0;
  3158. while (true) {
  3159. if (!(_i < _ref.$length)) { break; }
  3160. c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  3161. d = 0;
  3162. if (48 <= c && c <= 57) {
  3163. d = c - 48 << 24 >>> 24;
  3164. } else if (97 <= c && c <= 122) {
  3165. d = (c - 97 << 24 >>> 24) + 10 << 24 >>> 24;
  3166. } else if (65 <= c && c <= 90) {
  3167. d = (c - 65 << 24 >>> 24) + 10 << 24 >>> 24;
  3168. } else {
  3169. return [new $Uint64(0, 0), syntaxError("ParseUint", s0)];
  3170. }
  3171. if (d >= ((base << 24 >>> 24))) {
  3172. return [new $Uint64(0, 0), syntaxError("ParseUint", s0)];
  3173. }
  3174. if ((n.$high > cutoff.$high || (n.$high === cutoff.$high && n.$low >= cutoff.$low))) {
  3175. return [maxVal, rangeError("ParseUint", s0)];
  3176. }
  3177. n = $mul64(n, ((new $Uint64(0, base))));
  3178. n1 = (x$2 = (new $Uint64(0, d)), new $Uint64(n.$high + x$2.$high, n.$low + x$2.$low));
  3179. if ((n1.$high < n.$high || (n1.$high === n.$high && n1.$low < n.$low)) || (n1.$high > maxVal.$high || (n1.$high === maxVal.$high && n1.$low > maxVal.$low))) {
  3180. return [maxVal, rangeError("ParseUint", s0)];
  3181. }
  3182. n = n1;
  3183. _i++;
  3184. }
  3185. return [n, $ifaceNil];
  3186. };
  3187. $pkg.ParseUint = ParseUint;
  3188. ParseInt = function(s, base, bitSize) {
  3189. var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, base, bitSize, cutoff, err, i, n, neg, s, s0, un, x, x$1;
  3190. i = new $Int64(0, 0);
  3191. err = $ifaceNil;
  3192. if (s.length === 0) {
  3193. _tmp = new $Int64(0, 0);
  3194. _tmp$1 = syntaxError("ParseInt", s);
  3195. i = _tmp;
  3196. err = _tmp$1;
  3197. return [i, err];
  3198. }
  3199. s0 = s;
  3200. neg = false;
  3201. if (s.charCodeAt(0) === 43) {
  3202. s = $substring(s, 1);
  3203. } else if (s.charCodeAt(0) === 45) {
  3204. neg = true;
  3205. s = $substring(s, 1);
  3206. }
  3207. un = new $Uint64(0, 0);
  3208. _tuple = ParseUint(s, base, bitSize);
  3209. un = _tuple[0];
  3210. err = _tuple[1];
  3211. if (!($interfaceIsEqual(err, $ifaceNil)) && !($interfaceIsEqual($assertType(err, ptrType).Err, $pkg.ErrRange))) {
  3212. $assertType(err, ptrType).Func = "ParseInt";
  3213. $assertType(err, ptrType).Num = s0;
  3214. _tmp$2 = new $Int64(0, 0);
  3215. _tmp$3 = err;
  3216. i = _tmp$2;
  3217. err = _tmp$3;
  3218. return [i, err];
  3219. }
  3220. if (bitSize === 0) {
  3221. bitSize = 32;
  3222. }
  3223. cutoff = ($shiftLeft64(new $Uint64(0, 1), (((bitSize - 1 >> 0) >>> 0))));
  3224. if (!neg && (un.$high > cutoff.$high || (un.$high === cutoff.$high && un.$low >= cutoff.$low))) {
  3225. _tmp$4 = ((x = new $Uint64(cutoff.$high - 0, cutoff.$low - 1), new $Int64(x.$high, x.$low)));
  3226. _tmp$5 = rangeError("ParseInt", s0);
  3227. i = _tmp$4;
  3228. err = _tmp$5;
  3229. return [i, err];
  3230. }
  3231. if (neg && (un.$high > cutoff.$high || (un.$high === cutoff.$high && un.$low > cutoff.$low))) {
  3232. _tmp$6 = (x$1 = (new $Int64(cutoff.$high, cutoff.$low)), new $Int64(-x$1.$high, -x$1.$low));
  3233. _tmp$7 = rangeError("ParseInt", s0);
  3234. i = _tmp$6;
  3235. err = _tmp$7;
  3236. return [i, err];
  3237. }
  3238. n = (new $Int64(un.$high, un.$low));
  3239. if (neg) {
  3240. n = new $Int64(-n.$high, -n.$low);
  3241. }
  3242. _tmp$8 = n;
  3243. _tmp$9 = $ifaceNil;
  3244. i = _tmp$8;
  3245. err = _tmp$9;
  3246. return [i, err];
  3247. };
  3248. $pkg.ParseInt = ParseInt;
  3249. Atoi = function(s) {
  3250. var _i, _ref, _tuple, _tuple$1, ch, err, i64, n, nerr, ok, s, s0, sLen;
  3251. sLen = s.length;
  3252. if (true && (0 < sLen && sLen < 10) || false && (0 < sLen && sLen < 19)) {
  3253. s0 = s;
  3254. if ((s.charCodeAt(0) === 45) || (s.charCodeAt(0) === 43)) {
  3255. s = $substring(s, 1);
  3256. if (s.length < 1) {
  3257. return [0, new NumError.ptr("Atoi", s0, $pkg.ErrSyntax)];
  3258. }
  3259. }
  3260. n = 0;
  3261. _ref = (new sliceType$6($stringToBytes(s)));
  3262. _i = 0;
  3263. while (true) {
  3264. if (!(_i < _ref.$length)) { break; }
  3265. ch = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  3266. ch = ch - (48) << 24 >>> 24;
  3267. if (ch > 9) {
  3268. return [0, new NumError.ptr("Atoi", s0, $pkg.ErrSyntax)];
  3269. }
  3270. n = ($imul(n, 10)) + ((ch >> 0)) >> 0;
  3271. _i++;
  3272. }
  3273. if (s0.charCodeAt(0) === 45) {
  3274. n = -n;
  3275. }
  3276. return [n, $ifaceNil];
  3277. }
  3278. _tuple = ParseInt(s, 10, 0);
  3279. i64 = _tuple[0];
  3280. err = _tuple[1];
  3281. _tuple$1 = $assertType(err, ptrType, true);
  3282. nerr = _tuple$1[0];
  3283. ok = _tuple$1[1];
  3284. if (ok) {
  3285. nerr.Func = "Atoi";
  3286. }
  3287. return [(((i64.$low + ((i64.$high >> 31) * 4294967296)) >> 0)), err];
  3288. };
  3289. $pkg.Atoi = Atoi;
  3290. decimal.ptr.prototype.String = function() {
  3291. var a, buf, n, w;
  3292. a = this;
  3293. n = 10 + a.nd >> 0;
  3294. if (a.dp > 0) {
  3295. n = n + (a.dp) >> 0;
  3296. }
  3297. if (a.dp < 0) {
  3298. n = n + (-a.dp) >> 0;
  3299. }
  3300. buf = $makeSlice(sliceType$6, n);
  3301. w = 0;
  3302. if ((a.nd === 0)) {
  3303. return "0";
  3304. } else if (a.dp <= 0) {
  3305. ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 48);
  3306. w = w + (1) >> 0;
  3307. ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 46);
  3308. w = w + (1) >> 0;
  3309. w = w + (digitZero($subslice(buf, w, (w + -a.dp >> 0)))) >> 0;
  3310. w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), 0, a.nd))) >> 0;
  3311. } else if (a.dp < a.nd) {
  3312. w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), 0, a.dp))) >> 0;
  3313. ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 46);
  3314. w = w + (1) >> 0;
  3315. w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), a.dp, a.nd))) >> 0;
  3316. } else {
  3317. w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), 0, a.nd))) >> 0;
  3318. w = w + (digitZero($subslice(buf, w, ((w + a.dp >> 0) - a.nd >> 0)))) >> 0;
  3319. }
  3320. return ($bytesToString($subslice(buf, 0, w)));
  3321. };
  3322. decimal.prototype.String = function() { return this.$val.String(); };
  3323. digitZero = function(dst) {
  3324. var _i, _ref, dst, i;
  3325. _ref = dst;
  3326. _i = 0;
  3327. while (true) {
  3328. if (!(_i < _ref.$length)) { break; }
  3329. i = _i;
  3330. ((i < 0 || i >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + i] = 48);
  3331. _i++;
  3332. }
  3333. return dst.$length;
  3334. };
  3335. trim = function(a) {
  3336. var a, x, x$1;
  3337. while (true) {
  3338. if (!(a.nd > 0 && ((x = a.d, x$1 = a.nd - 1 >> 0, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) === 48))) { break; }
  3339. a.nd = a.nd - (1) >> 0;
  3340. }
  3341. if (a.nd === 0) {
  3342. a.dp = 0;
  3343. }
  3344. };
  3345. decimal.ptr.prototype.Assign = function(v) {
  3346. var a, buf, n, v, v1, x, x$1, x$2;
  3347. a = this;
  3348. buf = arrayType$1.zero();
  3349. n = 0;
  3350. while (true) {
  3351. if (!((v.$high > 0 || (v.$high === 0 && v.$low > 0)))) { break; }
  3352. v1 = $div64(v, new $Uint64(0, 10), false);
  3353. v = (x = $mul64(new $Uint64(0, 10), v1), new $Uint64(v.$high - x.$high, v.$low - x.$low));
  3354. ((n < 0 || n >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[n] = ((new $Uint64(v.$high + 0, v.$low + 48).$low << 24 >>> 24)));
  3355. n = n + (1) >> 0;
  3356. v = v1;
  3357. }
  3358. a.nd = 0;
  3359. n = n - (1) >> 0;
  3360. while (true) {
  3361. if (!(n >= 0)) { break; }
  3362. (x$1 = a.d, x$2 = a.nd, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2] = ((n < 0 || n >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[n])));
  3363. a.nd = a.nd + (1) >> 0;
  3364. n = n - (1) >> 0;
  3365. }
  3366. a.dp = a.nd;
  3367. trim(a);
  3368. };
  3369. decimal.prototype.Assign = function(v) { return this.$val.Assign(v); };
  3370. rightShift = function(a, k) {
  3371. var a, c, c$1, dig, dig$1, k, mask, n, r, w, x, x$1, x$2, x$3, y, y$1, y$2, y$3, y$4;
  3372. r = 0;
  3373. w = 0;
  3374. n = 0;
  3375. while (true) {
  3376. if (!(((y = k, y < 32 ? (n >>> y) : 0) >>> 0) === 0)) { break; }
  3377. if (r >= a.nd) {
  3378. if (n === 0) {
  3379. a.nd = 0;
  3380. return;
  3381. }
  3382. while (true) {
  3383. if (!(((y$1 = k, y$1 < 32 ? (n >>> y$1) : 0) >>> 0) === 0)) { break; }
  3384. n = n * 10 >>> 0;
  3385. r = r + (1) >> 0;
  3386. }
  3387. break;
  3388. }
  3389. c = (((x = a.d, ((r < 0 || r >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[r])) >>> 0));
  3390. n = ((n * 10 >>> 0) + c >>> 0) - 48 >>> 0;
  3391. r = r + (1) >> 0;
  3392. }
  3393. a.dp = a.dp - ((r - 1 >> 0)) >> 0;
  3394. mask = (((y$2 = k, y$2 < 32 ? (1 << y$2) : 0) >>> 0)) - 1 >>> 0;
  3395. while (true) {
  3396. if (!(r < a.nd)) { break; }
  3397. c$1 = (((x$1 = a.d, ((r < 0 || r >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[r])) >>> 0));
  3398. dig = (y$3 = k, y$3 < 32 ? (n >>> y$3) : 0) >>> 0;
  3399. n = (n & (mask)) >>> 0;
  3400. (x$2 = a.d, ((w < 0 || w >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[w] = (((dig + 48 >>> 0) << 24 >>> 24))));
  3401. w = w + (1) >> 0;
  3402. n = ((n * 10 >>> 0) + c$1 >>> 0) - 48 >>> 0;
  3403. r = r + (1) >> 0;
  3404. }
  3405. while (true) {
  3406. if (!(n > 0)) { break; }
  3407. dig$1 = (y$4 = k, y$4 < 32 ? (n >>> y$4) : 0) >>> 0;
  3408. n = (n & (mask)) >>> 0;
  3409. if (w < 800) {
  3410. (x$3 = a.d, ((w < 0 || w >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[w] = (((dig$1 + 48 >>> 0) << 24 >>> 24))));
  3411. w = w + (1) >> 0;
  3412. } else if (dig$1 > 0) {
  3413. a.trunc = true;
  3414. }
  3415. n = n * 10 >>> 0;
  3416. }
  3417. a.nd = w;
  3418. trim(a);
  3419. };
  3420. prefixIsLessThan = function(b, s) {
  3421. var b, i, s;
  3422. i = 0;
  3423. while (true) {
  3424. if (!(i < s.length)) { break; }
  3425. if (i >= b.$length) {
  3426. return true;
  3427. }
  3428. if (!((((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) === s.charCodeAt(i)))) {
  3429. return ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) < s.charCodeAt(i);
  3430. }
  3431. i = i + (1) >> 0;
  3432. }
  3433. return false;
  3434. };
  3435. leftShift = function(a, k) {
  3436. var _q, _q$1, a, delta, k, n, quo, quo$1, r, rem, rem$1, w, x, x$1, x$2, y;
  3437. delta = ((k < 0 || k >= leftcheats.$length) ? ($throwRuntimeError("index out of range"), undefined) : leftcheats.$array[leftcheats.$offset + k]).delta;
  3438. if (prefixIsLessThan($subslice(new sliceType$6(a.d), 0, a.nd), ((k < 0 || k >= leftcheats.$length) ? ($throwRuntimeError("index out of range"), undefined) : leftcheats.$array[leftcheats.$offset + k]).cutoff)) {
  3439. delta = delta - (1) >> 0;
  3440. }
  3441. r = a.nd;
  3442. w = a.nd + delta >> 0;
  3443. n = 0;
  3444. r = r - (1) >> 0;
  3445. while (true) {
  3446. if (!(r >= 0)) { break; }
  3447. n = n + (((y = k, y < 32 ? ((((((x = a.d, ((r < 0 || r >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[r])) >>> 0)) - 48 >>> 0)) << y) : 0) >>> 0)) >>> 0;
  3448. quo = (_q = n / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"));
  3449. rem = n - (10 * quo >>> 0) >>> 0;
  3450. w = w - (1) >> 0;
  3451. if (w < 800) {
  3452. (x$1 = a.d, ((w < 0 || w >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[w] = (((rem + 48 >>> 0) << 24 >>> 24))));
  3453. } else if (!((rem === 0))) {
  3454. a.trunc = true;
  3455. }
  3456. n = quo;
  3457. r = r - (1) >> 0;
  3458. }
  3459. while (true) {
  3460. if (!(n > 0)) { break; }
  3461. quo$1 = (_q$1 = n / 10, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero"));
  3462. rem$1 = n - (10 * quo$1 >>> 0) >>> 0;
  3463. w = w - (1) >> 0;
  3464. if (w < 800) {
  3465. (x$2 = a.d, ((w < 0 || w >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[w] = (((rem$1 + 48 >>> 0) << 24 >>> 24))));
  3466. } else if (!((rem$1 === 0))) {
  3467. a.trunc = true;
  3468. }
  3469. n = quo$1;
  3470. }
  3471. a.nd = a.nd + (delta) >> 0;
  3472. if (a.nd >= 800) {
  3473. a.nd = 800;
  3474. }
  3475. a.dp = a.dp + (delta) >> 0;
  3476. trim(a);
  3477. };
  3478. decimal.ptr.prototype.Shift = function(k) {
  3479. var a, k;
  3480. a = this;
  3481. if ((a.nd === 0)) {
  3482. } else if (k > 0) {
  3483. while (true) {
  3484. if (!(k > 28)) { break; }
  3485. leftShift(a, 28);
  3486. k = k - (28) >> 0;
  3487. }
  3488. leftShift(a, ((k >>> 0)));
  3489. } else if (k < 0) {
  3490. while (true) {
  3491. if (!(k < -28)) { break; }
  3492. rightShift(a, 28);
  3493. k = k + (28) >> 0;
  3494. }
  3495. rightShift(a, ((-k >>> 0)));
  3496. }
  3497. };
  3498. decimal.prototype.Shift = function(k) { return this.$val.Shift(k); };
  3499. shouldRoundUp = function(a, nd) {
  3500. var _r, a, nd, x, x$1, x$2, x$3;
  3501. if (nd < 0 || nd >= a.nd) {
  3502. return false;
  3503. }
  3504. if (((x = a.d, ((nd < 0 || nd >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[nd])) === 53) && ((nd + 1 >> 0) === a.nd)) {
  3505. if (a.trunc) {
  3506. return true;
  3507. }
  3508. return nd > 0 && !(((_r = (((x$1 = a.d, x$2 = nd - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2])) - 48 << 24 >>> 24)) % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0));
  3509. }
  3510. return (x$3 = a.d, ((nd < 0 || nd >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[nd])) >= 53;
  3511. };
  3512. decimal.ptr.prototype.Round = function(nd) {
  3513. var a, nd;
  3514. a = this;
  3515. if (nd < 0 || nd >= a.nd) {
  3516. return;
  3517. }
  3518. if (shouldRoundUp(a, nd)) {
  3519. a.RoundUp(nd);
  3520. } else {
  3521. a.RoundDown(nd);
  3522. }
  3523. };
  3524. decimal.prototype.Round = function(nd) { return this.$val.Round(nd); };
  3525. decimal.ptr.prototype.RoundDown = function(nd) {
  3526. var a, nd;
  3527. a = this;
  3528. if (nd < 0 || nd >= a.nd) {
  3529. return;
  3530. }
  3531. a.nd = nd;
  3532. trim(a);
  3533. };
  3534. decimal.prototype.RoundDown = function(nd) { return this.$val.RoundDown(nd); };
  3535. decimal.ptr.prototype.RoundUp = function(nd) {
  3536. var a, c, i, nd, x, x$1, x$2;
  3537. a = this;
  3538. if (nd < 0 || nd >= a.nd) {
  3539. return;
  3540. }
  3541. i = nd - 1 >> 0;
  3542. while (true) {
  3543. if (!(i >= 0)) { break; }
  3544. c = (x = a.d, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i]));
  3545. if (c < 57) {
  3546. (x$2 = a.d, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i] = ((x$1 = a.d, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i])) + (1) << 24 >>> 24)));
  3547. a.nd = i + 1 >> 0;
  3548. return;
  3549. }
  3550. i = i - (1) >> 0;
  3551. }
  3552. a.d[0] = 49;
  3553. a.nd = 1;
  3554. a.dp = a.dp + (1) >> 0;
  3555. };
  3556. decimal.prototype.RoundUp = function(nd) { return this.$val.RoundUp(nd); };
  3557. decimal.ptr.prototype.RoundedInteger = function() {
  3558. var a, i, n, x, x$1, x$2, x$3;
  3559. a = this;
  3560. if (a.dp > 20) {
  3561. return new $Uint64(4294967295, 4294967295);
  3562. }
  3563. i = 0;
  3564. n = new $Uint64(0, 0);
  3565. i = 0;
  3566. while (true) {
  3567. if (!(i < a.dp && i < a.nd)) { break; }
  3568. n = (x = $mul64(n, new $Uint64(0, 10)), x$1 = (new $Uint64(0, ((x$2 = a.d, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i])) - 48 << 24 >>> 24))), new $Uint64(x.$high + x$1.$high, x.$low + x$1.$low));
  3569. i = i + (1) >> 0;
  3570. }
  3571. while (true) {
  3572. if (!(i < a.dp)) { break; }
  3573. n = $mul64(n, (new $Uint64(0, 10)));
  3574. i = i + (1) >> 0;
  3575. }
  3576. if (shouldRoundUp(a, a.dp)) {
  3577. n = (x$3 = new $Uint64(0, 1), new $Uint64(n.$high + x$3.$high, n.$low + x$3.$low));
  3578. }
  3579. return n;
  3580. };
  3581. decimal.prototype.RoundedInteger = function() { return this.$val.RoundedInteger(); };
  3582. extFloat.ptr.prototype.AssignComputeBounds = function(mant, exp, neg, flt) {
  3583. var _tmp, _tmp$1, exp, expBiased, f, flt, lower, mant, neg, upper, x, x$1, x$2, x$3, x$4;
  3584. lower = new extFloat.ptr(new $Uint64(0, 0), 0, false);
  3585. upper = new extFloat.ptr(new $Uint64(0, 0), 0, false);
  3586. f = this;
  3587. f.mant = mant;
  3588. f.exp = exp - ((flt.mantbits >> 0)) >> 0;
  3589. f.neg = neg;
  3590. if (f.exp <= 0 && (x = $shiftLeft64(($shiftRightUint64(mant, ((-f.exp >>> 0)))), ((-f.exp >>> 0))), (mant.$high === x.$high && mant.$low === x.$low))) {
  3591. f.mant = $shiftRightUint64(f.mant, (((-f.exp >>> 0))));
  3592. f.exp = 0;
  3593. _tmp = $clone(f, extFloat);
  3594. _tmp$1 = $clone(f, extFloat);
  3595. extFloat.copy(lower, _tmp);
  3596. extFloat.copy(upper, _tmp$1);
  3597. return [lower, upper];
  3598. }
  3599. expBiased = exp - flt.bias >> 0;
  3600. extFloat.copy(upper, new extFloat.ptr((x$1 = $mul64(new $Uint64(0, 2), f.mant), new $Uint64(x$1.$high + 0, x$1.$low + 1)), f.exp - 1 >> 0, f.neg));
  3601. if (!((x$2 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), (mant.$high === x$2.$high && mant.$low === x$2.$low))) || (expBiased === 1)) {
  3602. extFloat.copy(lower, new extFloat.ptr((x$3 = $mul64(new $Uint64(0, 2), f.mant), new $Uint64(x$3.$high - 0, x$3.$low - 1)), f.exp - 1 >> 0, f.neg));
  3603. } else {
  3604. extFloat.copy(lower, new extFloat.ptr((x$4 = $mul64(new $Uint64(0, 4), f.mant), new $Uint64(x$4.$high - 0, x$4.$low - 1)), f.exp - 2 >> 0, f.neg));
  3605. }
  3606. return [lower, upper];
  3607. };
  3608. extFloat.prototype.AssignComputeBounds = function(mant, exp, neg, flt) { return this.$val.AssignComputeBounds(mant, exp, neg, flt); };
  3609. extFloat.ptr.prototype.Normalize = function() {
  3610. var f, shift, x;
  3611. f = this;
  3612. if ((x = f.mant, (x.$high === 0 && x.$low === 0))) {
  3613. return 0;
  3614. }
  3615. shift = bits.LeadingZeros64(f.mant);
  3616. f.mant = $shiftLeft64(f.mant, (((shift >>> 0))));
  3617. f.exp = f.exp - (shift) >> 0;
  3618. return ((shift >>> 0));
  3619. };
  3620. extFloat.prototype.Normalize = function() { return this.$val.Normalize(); };
  3621. extFloat.ptr.prototype.Multiply = function(g) {
  3622. var _tmp, _tmp$1, _tmp$2, _tmp$3, cross1, cross2, f, fhi, flo, g, ghi, glo, rem, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
  3623. f = this;
  3624. _tmp = $shiftRightUint64(f.mant, 32);
  3625. _tmp$1 = (new $Uint64(0, ((f.mant.$low >>> 0))));
  3626. fhi = _tmp;
  3627. flo = _tmp$1;
  3628. _tmp$2 = $shiftRightUint64(g.mant, 32);
  3629. _tmp$3 = (new $Uint64(0, ((g.mant.$low >>> 0))));
  3630. ghi = _tmp$2;
  3631. glo = _tmp$3;
  3632. cross1 = $mul64(fhi, glo);
  3633. cross2 = $mul64(flo, ghi);
  3634. f.mant = (x = (x$1 = $mul64(fhi, ghi), x$2 = $shiftRightUint64(cross1, 32), new $Uint64(x$1.$high + x$2.$high, x$1.$low + x$2.$low)), x$3 = $shiftRightUint64(cross2, 32), new $Uint64(x.$high + x$3.$high, x.$low + x$3.$low));
  3635. rem = (x$4 = (x$5 = (new $Uint64(0, ((cross1.$low >>> 0)))), x$6 = (new $Uint64(0, ((cross2.$low >>> 0)))), new $Uint64(x$5.$high + x$6.$high, x$5.$low + x$6.$low)), x$7 = $shiftRightUint64(($mul64(flo, glo)), 32), new $Uint64(x$4.$high + x$7.$high, x$4.$low + x$7.$low));
  3636. rem = (x$8 = new $Uint64(0, 2147483648), new $Uint64(rem.$high + x$8.$high, rem.$low + x$8.$low));
  3637. f.mant = (x$9 = f.mant, x$10 = ($shiftRightUint64(rem, 32)), new $Uint64(x$9.$high + x$10.$high, x$9.$low + x$10.$low));
  3638. f.exp = (f.exp + g.exp >> 0) + 64 >> 0;
  3639. };
  3640. extFloat.prototype.Multiply = function(g) { return this.$val.Multiply(g); };
  3641. extFloat.ptr.prototype.AssignDecimal = function(mantissa, exp10, neg, trunc, flt) {
  3642. var _q, _r, adjExp, denormalExp, errors$1, exp10, extrabits, f, flt, halfway, i, mant_extra, mantissa, neg, ok, shift, trunc, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y;
  3643. ok = false;
  3644. f = this;
  3645. errors$1 = 0;
  3646. if (trunc) {
  3647. errors$1 = errors$1 + (4) >> 0;
  3648. }
  3649. f.mant = mantissa;
  3650. f.exp = 0;
  3651. f.neg = neg;
  3652. i = (_q = ((exp10 - -348 >> 0)) / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
  3653. if (exp10 < -348 || i >= 87) {
  3654. ok = false;
  3655. return ok;
  3656. }
  3657. adjExp = (_r = ((exp10 - -348 >> 0)) % 8, _r === _r ? _r : $throwRuntimeError("integer divide by zero"));
  3658. if (adjExp < 19 && (x = (x$1 = 19 - adjExp >> 0, ((x$1 < 0 || x$1 >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[x$1])), (mantissa.$high < x.$high || (mantissa.$high === x.$high && mantissa.$low < x.$low)))) {
  3659. f.mant = $mul64(f.mant, (((adjExp < 0 || adjExp >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[adjExp])));
  3660. f.Normalize();
  3661. } else {
  3662. f.Normalize();
  3663. f.Multiply($clone(((adjExp < 0 || adjExp >= smallPowersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : smallPowersOfTen[adjExp]), extFloat));
  3664. errors$1 = errors$1 + (4) >> 0;
  3665. }
  3666. f.Multiply($clone(((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]), extFloat));
  3667. if (errors$1 > 0) {
  3668. errors$1 = errors$1 + (1) >> 0;
  3669. }
  3670. errors$1 = errors$1 + (4) >> 0;
  3671. shift = f.Normalize();
  3672. errors$1 = (y = (shift), y < 32 ? (errors$1 << y) : 0) >> 0;
  3673. denormalExp = flt.bias - 63 >> 0;
  3674. extrabits = 0;
  3675. if (f.exp <= denormalExp) {
  3676. extrabits = ((63 - flt.mantbits >>> 0) + 1 >>> 0) + (((denormalExp - f.exp >> 0) >>> 0)) >>> 0;
  3677. } else {
  3678. extrabits = 63 - flt.mantbits >>> 0;
  3679. }
  3680. halfway = $shiftLeft64(new $Uint64(0, 1), ((extrabits - 1 >>> 0)));
  3681. mant_extra = (x$2 = f.mant, x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), extrabits), new $Uint64(x$4.$high - 0, x$4.$low - 1)), new $Uint64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0));
  3682. if ((x$5 = (x$6 = (new $Int64(halfway.$high, halfway.$low)), x$7 = (new $Int64(0, errors$1)), new $Int64(x$6.$high - x$7.$high, x$6.$low - x$7.$low)), x$8 = (new $Int64(mant_extra.$high, mant_extra.$low)), (x$5.$high < x$8.$high || (x$5.$high === x$8.$high && x$5.$low < x$8.$low))) && (x$9 = (new $Int64(mant_extra.$high, mant_extra.$low)), x$10 = (x$11 = (new $Int64(halfway.$high, halfway.$low)), x$12 = (new $Int64(0, errors$1)), new $Int64(x$11.$high + x$12.$high, x$11.$low + x$12.$low)), (x$9.$high < x$10.$high || (x$9.$high === x$10.$high && x$9.$low < x$10.$low)))) {
  3683. ok = false;
  3684. return ok;
  3685. }
  3686. ok = true;
  3687. return ok;
  3688. };
  3689. extFloat.prototype.AssignDecimal = function(mantissa, exp10, neg, trunc, flt) { return this.$val.AssignDecimal(mantissa, exp10, neg, trunc, flt); };
  3690. extFloat.ptr.prototype.frexp10 = function() {
  3691. var _q, _q$1, _tmp, _tmp$1, approxExp10, exp, exp10, f, i, index;
  3692. exp10 = 0;
  3693. index = 0;
  3694. f = this;
  3695. approxExp10 = (_q = ($imul(((-46 - f.exp >> 0)), 28)) / 93, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
  3696. i = (_q$1 = ((approxExp10 - -348 >> 0)) / 8, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"));
  3697. Loop:
  3698. while (true) {
  3699. exp = (f.exp + ((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]).exp >> 0) + 64 >> 0;
  3700. if (exp < -60) {
  3701. i = i + (1) >> 0;
  3702. } else if (exp > -32) {
  3703. i = i - (1) >> 0;
  3704. } else {
  3705. break Loop;
  3706. }
  3707. }
  3708. f.Multiply($clone(((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]), extFloat));
  3709. _tmp = -((-348 + ($imul(i, 8)) >> 0));
  3710. _tmp$1 = i;
  3711. exp10 = _tmp;
  3712. index = _tmp$1;
  3713. return [exp10, index];
  3714. };
  3715. extFloat.prototype.frexp10 = function() { return this.$val.frexp10(); };
  3716. frexp10Many = function(a, b, c) {
  3717. var _tuple, a, b, c, exp10, i;
  3718. exp10 = 0;
  3719. _tuple = c.frexp10();
  3720. exp10 = _tuple[0];
  3721. i = _tuple[1];
  3722. a.Multiply($clone(((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]), extFloat));
  3723. b.Multiply($clone(((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]), extFloat));
  3724. return exp10;
  3725. };
  3726. extFloat.ptr.prototype.FixedDecimal = function(d, n) {
  3727. var $CE$B5, _q, _q$1, _tmp, _tmp$1, _tuple, buf, d, digit, exp10, f, fraction, i, i$1, i$2, integer, integerDigits, n, nd, needed, ok, pos, pow, pow10, rest, shift, v, v1, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
  3728. f = this;
  3729. if ((x = f.mant, (x.$high === 0 && x.$low === 0))) {
  3730. d.nd = 0;
  3731. d.dp = 0;
  3732. d.neg = f.neg;
  3733. return true;
  3734. }
  3735. if (n === 0) {
  3736. $panic(new $String("strconv: internal error: extFloat.FixedDecimal called with n == 0"));
  3737. }
  3738. f.Normalize();
  3739. _tuple = f.frexp10();
  3740. exp10 = _tuple[0];
  3741. shift = ((-f.exp >>> 0));
  3742. integer = (($shiftRightUint64(f.mant, shift).$low >>> 0));
  3743. fraction = (x$1 = f.mant, x$2 = $shiftLeft64((new $Uint64(0, integer)), shift), new $Uint64(x$1.$high - x$2.$high, x$1.$low - x$2.$low));
  3744. $CE$B5 = new $Uint64(0, 1);
  3745. needed = n;
  3746. integerDigits = 0;
  3747. pow10 = new $Uint64(0, 1);
  3748. _tmp = 0;
  3749. _tmp$1 = new $Uint64(0, 1);
  3750. i = _tmp;
  3751. pow = _tmp$1;
  3752. while (true) {
  3753. if (!(i < 20)) { break; }
  3754. if ((x$3 = (new $Uint64(0, integer)), (pow.$high > x$3.$high || (pow.$high === x$3.$high && pow.$low > x$3.$low)))) {
  3755. integerDigits = i;
  3756. break;
  3757. }
  3758. pow = $mul64(pow, (new $Uint64(0, 10)));
  3759. i = i + (1) >> 0;
  3760. }
  3761. rest = integer;
  3762. if (integerDigits > needed) {
  3763. pow10 = (x$4 = integerDigits - needed >> 0, ((x$4 < 0 || x$4 >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[x$4]));
  3764. integer = (_q = integer / (((pow10.$low >>> 0))), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"));
  3765. rest = rest - (($imul(integer, ((pow10.$low >>> 0))) >>> 0)) >>> 0;
  3766. } else {
  3767. rest = 0;
  3768. }
  3769. buf = arrayType$2.zero();
  3770. pos = 32;
  3771. v = integer;
  3772. while (true) {
  3773. if (!(v > 0)) { break; }
  3774. v1 = (_q$1 = v / 10, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero"));
  3775. v = v - (($imul(10, v1) >>> 0)) >>> 0;
  3776. pos = pos - (1) >> 0;
  3777. ((pos < 0 || pos >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[pos] = (((v + 48 >>> 0) << 24 >>> 24)));
  3778. v = v1;
  3779. }
  3780. i$1 = pos;
  3781. while (true) {
  3782. if (!(i$1 < 32)) { break; }
  3783. (x$5 = d.d, x$6 = i$1 - pos >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6] = ((i$1 < 0 || i$1 >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i$1])));
  3784. i$1 = i$1 + (1) >> 0;
  3785. }
  3786. nd = 32 - pos >> 0;
  3787. d.nd = nd;
  3788. d.dp = integerDigits + exp10 >> 0;
  3789. needed = needed - (nd) >> 0;
  3790. if (needed > 0) {
  3791. if (!((rest === 0)) || !((pow10.$high === 0 && pow10.$low === 1))) {
  3792. $panic(new $String("strconv: internal error, rest != 0 but needed > 0"));
  3793. }
  3794. while (true) {
  3795. if (!(needed > 0)) { break; }
  3796. fraction = $mul64(fraction, (new $Uint64(0, 10)));
  3797. $CE$B5 = $mul64($CE$B5, (new $Uint64(0, 10)));
  3798. if ((x$7 = $mul64(new $Uint64(0, 2), $CE$B5), x$8 = $shiftLeft64(new $Uint64(0, 1), shift), (x$7.$high > x$8.$high || (x$7.$high === x$8.$high && x$7.$low > x$8.$low)))) {
  3799. return false;
  3800. }
  3801. digit = $shiftRightUint64(fraction, shift);
  3802. (x$9 = d.d, ((nd < 0 || nd >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + nd] = ((new $Uint64(digit.$high + 0, digit.$low + 48).$low << 24 >>> 24))));
  3803. fraction = (x$10 = $shiftLeft64(digit, shift), new $Uint64(fraction.$high - x$10.$high, fraction.$low - x$10.$low));
  3804. nd = nd + (1) >> 0;
  3805. needed = needed - (1) >> 0;
  3806. }
  3807. d.nd = nd;
  3808. }
  3809. ok = adjustLastDigitFixed(d, (x$11 = $shiftLeft64((new $Uint64(0, rest)), shift), new $Uint64(x$11.$high | fraction.$high, (x$11.$low | fraction.$low) >>> 0)), pow10, shift, $CE$B5);
  3810. if (!ok) {
  3811. return false;
  3812. }
  3813. i$2 = d.nd - 1 >> 0;
  3814. while (true) {
  3815. if (!(i$2 >= 0)) { break; }
  3816. if (!(((x$12 = d.d, ((i$2 < 0 || i$2 >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + i$2])) === 48))) {
  3817. d.nd = i$2 + 1 >> 0;
  3818. break;
  3819. }
  3820. i$2 = i$2 - (1) >> 0;
  3821. }
  3822. return true;
  3823. };
  3824. extFloat.prototype.FixedDecimal = function(d, n) { return this.$val.FixedDecimal(d, n); };
  3825. adjustLastDigitFixed = function(d, num, den, shift, $CE$B5) {
  3826. var $CE$B5, d, den, i, num, shift, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
  3827. if ((x = $shiftLeft64(den, shift), (num.$high > x.$high || (num.$high === x.$high && num.$low > x.$low)))) {
  3828. $panic(new $String("strconv: num > den<<shift in adjustLastDigitFixed"));
  3829. }
  3830. if ((x$1 = $mul64(new $Uint64(0, 2), $CE$B5), x$2 = $shiftLeft64(den, shift), (x$1.$high > x$2.$high || (x$1.$high === x$2.$high && x$1.$low > x$2.$low)))) {
  3831. $panic(new $String("strconv: \xCE\xB5 > (den<<shift)/2"));
  3832. }
  3833. if ((x$3 = $mul64(new $Uint64(0, 2), (new $Uint64(num.$high + $CE$B5.$high, num.$low + $CE$B5.$low))), x$4 = $shiftLeft64(den, shift), (x$3.$high < x$4.$high || (x$3.$high === x$4.$high && x$3.$low < x$4.$low)))) {
  3834. return true;
  3835. }
  3836. if ((x$5 = $mul64(new $Uint64(0, 2), (new $Uint64(num.$high - $CE$B5.$high, num.$low - $CE$B5.$low))), x$6 = $shiftLeft64(den, shift), (x$5.$high > x$6.$high || (x$5.$high === x$6.$high && x$5.$low > x$6.$low)))) {
  3837. i = d.nd - 1 >> 0;
  3838. while (true) {
  3839. if (!(i >= 0)) { break; }
  3840. if ((x$7 = d.d, ((i < 0 || i >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + i])) === 57) {
  3841. d.nd = d.nd - (1) >> 0;
  3842. } else {
  3843. break;
  3844. }
  3845. i = i - (1) >> 0;
  3846. }
  3847. if (i < 0) {
  3848. (x$8 = d.d, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0] = 49));
  3849. d.nd = 1;
  3850. d.dp = d.dp + (1) >> 0;
  3851. } else {
  3852. (x$10 = d.d, ((i < 0 || i >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + i] = ((x$9 = d.d, ((i < 0 || i >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + i])) + (1) << 24 >>> 24)));
  3853. }
  3854. return true;
  3855. }
  3856. return false;
  3857. };
  3858. extFloat.ptr.prototype.ShortestDecimal = function(d, lower, upper) {
  3859. var _q, _tmp, _tmp$1, _tmp$2, _tmp$3, allowance, buf, currentDiff, d, digit, digit$1, exp10, f, fraction, i, i$1, i$2, integer, integerDigits, lower, multiplier, n, nd, pow, pow$1, shift, targetDiff, upper, v, v1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
  3860. f = this;
  3861. if ((x = f.mant, (x.$high === 0 && x.$low === 0))) {
  3862. d.nd = 0;
  3863. d.dp = 0;
  3864. d.neg = f.neg;
  3865. return true;
  3866. }
  3867. if ((f.exp === 0) && $equal(lower, f, extFloat) && $equal(lower, upper, extFloat)) {
  3868. buf = arrayType$1.zero();
  3869. n = 23;
  3870. v = f.mant;
  3871. while (true) {
  3872. if (!((v.$high > 0 || (v.$high === 0 && v.$low > 0)))) { break; }
  3873. v1 = $div64(v, new $Uint64(0, 10), false);
  3874. v = (x$1 = $mul64(new $Uint64(0, 10), v1), new $Uint64(v.$high - x$1.$high, v.$low - x$1.$low));
  3875. ((n < 0 || n >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[n] = ((new $Uint64(v.$high + 0, v.$low + 48).$low << 24 >>> 24)));
  3876. n = n - (1) >> 0;
  3877. v = v1;
  3878. }
  3879. nd = (24 - n >> 0) - 1 >> 0;
  3880. i = 0;
  3881. while (true) {
  3882. if (!(i < nd)) { break; }
  3883. (x$3 = d.d, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i] = (x$2 = (n + 1 >> 0) + i >> 0, ((x$2 < 0 || x$2 >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[x$2]))));
  3884. i = i + (1) >> 0;
  3885. }
  3886. _tmp = nd;
  3887. _tmp$1 = nd;
  3888. d.nd = _tmp;
  3889. d.dp = _tmp$1;
  3890. while (true) {
  3891. if (!(d.nd > 0 && ((x$4 = d.d, x$5 = d.nd - 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])) === 48))) { break; }
  3892. d.nd = d.nd - (1) >> 0;
  3893. }
  3894. if (d.nd === 0) {
  3895. d.dp = 0;
  3896. }
  3897. d.neg = f.neg;
  3898. return true;
  3899. }
  3900. upper.Normalize();
  3901. if (f.exp > upper.exp) {
  3902. f.mant = $shiftLeft64(f.mant, ((((f.exp - upper.exp >> 0) >>> 0))));
  3903. f.exp = upper.exp;
  3904. }
  3905. if (lower.exp > upper.exp) {
  3906. lower.mant = $shiftLeft64(lower.mant, ((((lower.exp - upper.exp >> 0) >>> 0))));
  3907. lower.exp = upper.exp;
  3908. }
  3909. exp10 = frexp10Many(lower, f, upper);
  3910. upper.mant = (x$6 = upper.mant, x$7 = new $Uint64(0, 1), new $Uint64(x$6.$high + x$7.$high, x$6.$low + x$7.$low));
  3911. lower.mant = (x$8 = lower.mant, x$9 = new $Uint64(0, 1), new $Uint64(x$8.$high - x$9.$high, x$8.$low - x$9.$low));
  3912. shift = ((-upper.exp >>> 0));
  3913. integer = (($shiftRightUint64(upper.mant, shift).$low >>> 0));
  3914. fraction = (x$10 = upper.mant, x$11 = $shiftLeft64((new $Uint64(0, integer)), shift), new $Uint64(x$10.$high - x$11.$high, x$10.$low - x$11.$low));
  3915. allowance = (x$12 = upper.mant, x$13 = lower.mant, new $Uint64(x$12.$high - x$13.$high, x$12.$low - x$13.$low));
  3916. targetDiff = (x$14 = upper.mant, x$15 = f.mant, new $Uint64(x$14.$high - x$15.$high, x$14.$low - x$15.$low));
  3917. integerDigits = 0;
  3918. _tmp$2 = 0;
  3919. _tmp$3 = new $Uint64(0, 1);
  3920. i$1 = _tmp$2;
  3921. pow = _tmp$3;
  3922. while (true) {
  3923. if (!(i$1 < 20)) { break; }
  3924. if ((x$16 = (new $Uint64(0, integer)), (pow.$high > x$16.$high || (pow.$high === x$16.$high && pow.$low > x$16.$low)))) {
  3925. integerDigits = i$1;
  3926. break;
  3927. }
  3928. pow = $mul64(pow, (new $Uint64(0, 10)));
  3929. i$1 = i$1 + (1) >> 0;
  3930. }
  3931. i$2 = 0;
  3932. while (true) {
  3933. if (!(i$2 < integerDigits)) { break; }
  3934. pow$1 = (x$17 = (integerDigits - i$2 >> 0) - 1 >> 0, ((x$17 < 0 || x$17 >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[x$17]));
  3935. digit = (_q = integer / ((pow$1.$low >>> 0)), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"));
  3936. (x$18 = d.d, ((i$2 < 0 || i$2 >= x$18.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$18.$array[x$18.$offset + i$2] = (((digit + 48 >>> 0) << 24 >>> 24))));
  3937. integer = integer - (($imul(digit, ((pow$1.$low >>> 0))) >>> 0)) >>> 0;
  3938. currentDiff = (x$19 = $shiftLeft64((new $Uint64(0, integer)), shift), new $Uint64(x$19.$high + fraction.$high, x$19.$low + fraction.$low));
  3939. if ((currentDiff.$high < allowance.$high || (currentDiff.$high === allowance.$high && currentDiff.$low < allowance.$low))) {
  3940. d.nd = i$2 + 1 >> 0;
  3941. d.dp = integerDigits + exp10 >> 0;
  3942. d.neg = f.neg;
  3943. return adjustLastDigit(d, currentDiff, targetDiff, allowance, $shiftLeft64(pow$1, shift), new $Uint64(0, 2));
  3944. }
  3945. i$2 = i$2 + (1) >> 0;
  3946. }
  3947. d.nd = integerDigits;
  3948. d.dp = d.nd + exp10 >> 0;
  3949. d.neg = f.neg;
  3950. digit$1 = 0;
  3951. multiplier = new $Uint64(0, 1);
  3952. while (true) {
  3953. fraction = $mul64(fraction, (new $Uint64(0, 10)));
  3954. multiplier = $mul64(multiplier, (new $Uint64(0, 10)));
  3955. digit$1 = (($shiftRightUint64(fraction, shift).$low >> 0));
  3956. (x$20 = d.d, x$21 = d.nd, ((x$21 < 0 || x$21 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + x$21] = (((digit$1 + 48 >> 0) << 24 >>> 24))));
  3957. d.nd = d.nd + (1) >> 0;
  3958. fraction = (x$22 = $shiftLeft64((new $Uint64(0, digit$1)), shift), new $Uint64(fraction.$high - x$22.$high, fraction.$low - x$22.$low));
  3959. if ((x$23 = $mul64(allowance, multiplier), (fraction.$high < x$23.$high || (fraction.$high === x$23.$high && fraction.$low < x$23.$low)))) {
  3960. return adjustLastDigit(d, fraction, $mul64(targetDiff, multiplier), $mul64(allowance, multiplier), $shiftLeft64(new $Uint64(0, 1), shift), $mul64(multiplier, new $Uint64(0, 2)));
  3961. }
  3962. }
  3963. };
  3964. extFloat.prototype.ShortestDecimal = function(d, lower, upper) { return this.$val.ShortestDecimal(d, lower, upper); };
  3965. adjustLastDigit = function(d, currentDiff, targetDiff, maxDiff, ulpDecimal, ulpBinary) {
  3966. var _index, currentDiff, d, maxDiff, targetDiff, ulpBinary, ulpDecimal, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
  3967. if ((x = $mul64(new $Uint64(0, 2), ulpBinary), (ulpDecimal.$high < x.$high || (ulpDecimal.$high === x.$high && ulpDecimal.$low < x.$low)))) {
  3968. return false;
  3969. }
  3970. while (true) {
  3971. if (!((x$1 = (x$2 = (x$3 = $div64(ulpDecimal, new $Uint64(0, 2), false), new $Uint64(currentDiff.$high + x$3.$high, currentDiff.$low + x$3.$low)), new $Uint64(x$2.$high + ulpBinary.$high, x$2.$low + ulpBinary.$low)), (x$1.$high < targetDiff.$high || (x$1.$high === targetDiff.$high && x$1.$low < targetDiff.$low))))) { break; }
  3972. _index = d.nd - 1 >> 0;
  3973. (x$5 = d.d, ((_index < 0 || _index >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + _index] = ((x$4 = d.d, ((_index < 0 || _index >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + _index])) - (1) << 24 >>> 24)));
  3974. currentDiff = (x$6 = ulpDecimal, new $Uint64(currentDiff.$high + x$6.$high, currentDiff.$low + x$6.$low));
  3975. }
  3976. if ((x$7 = new $Uint64(currentDiff.$high + ulpDecimal.$high, currentDiff.$low + ulpDecimal.$low), x$8 = (x$9 = (x$10 = $div64(ulpDecimal, new $Uint64(0, 2), false), new $Uint64(targetDiff.$high + x$10.$high, targetDiff.$low + x$10.$low)), new $Uint64(x$9.$high + ulpBinary.$high, x$9.$low + ulpBinary.$low)), (x$7.$high < x$8.$high || (x$7.$high === x$8.$high && x$7.$low <= x$8.$low)))) {
  3977. return false;
  3978. }
  3979. if ((currentDiff.$high < ulpBinary.$high || (currentDiff.$high === ulpBinary.$high && currentDiff.$low < ulpBinary.$low)) || (x$11 = new $Uint64(maxDiff.$high - ulpBinary.$high, maxDiff.$low - ulpBinary.$low), (currentDiff.$high > x$11.$high || (currentDiff.$high === x$11.$high && currentDiff.$low > x$11.$low)))) {
  3980. return false;
  3981. }
  3982. if ((d.nd === 1) && ((x$12 = d.d, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0])) === 48)) {
  3983. d.nd = 0;
  3984. d.dp = 0;
  3985. }
  3986. return true;
  3987. };
  3988. AppendFloat = function(dst, f, fmt, prec, bitSize) {
  3989. var bitSize, dst, f, fmt, prec;
  3990. return genericFtoa(dst, f, fmt, prec, bitSize);
  3991. };
  3992. $pkg.AppendFloat = AppendFloat;
  3993. genericFtoa = function(dst, val, fmt, prec, bitSize) {
  3994. var _1, _2, _3, _4, _tuple, bitSize, bits$1, buf, buf$1, digits, digs, dst, exp, f, f$1, flt, fmt, lower, mant, neg, ok, prec, s, shortest, upper, val, x, x$1, x$2, x$3, y, y$1;
  3995. bits$1 = new $Uint64(0, 0);
  3996. flt = ptrType$1.nil;
  3997. _1 = bitSize;
  3998. if (_1 === (32)) {
  3999. bits$1 = (new $Uint64(0, math.Float32bits(($fround(val)))));
  4000. flt = float32info;
  4001. } else if (_1 === (64)) {
  4002. bits$1 = math.Float64bits(val);
  4003. flt = float64info;
  4004. } else {
  4005. $panic(new $String("strconv: illegal AppendFloat/FormatFloat bitSize"));
  4006. }
  4007. neg = !((x = $shiftRightUint64(bits$1, ((flt.expbits + flt.mantbits >>> 0))), (x.$high === 0 && x.$low === 0)));
  4008. exp = (($shiftRightUint64(bits$1, flt.mantbits).$low >> 0)) & ((((y = flt.expbits, y < 32 ? (1 << y) : 0) >> 0) - 1 >> 0));
  4009. mant = (x$1 = (x$2 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(x$2.$high - 0, x$2.$low - 1)), new $Uint64(bits$1.$high & x$1.$high, (bits$1.$low & x$1.$low) >>> 0));
  4010. _2 = exp;
  4011. if (_2 === ((((y$1 = flt.expbits, y$1 < 32 ? (1 << y$1) : 0) >> 0) - 1 >> 0))) {
  4012. s = "";
  4013. if (!((mant.$high === 0 && mant.$low === 0))) {
  4014. s = "NaN";
  4015. } else if (neg) {
  4016. s = "-Inf";
  4017. } else {
  4018. s = "+Inf";
  4019. }
  4020. return $appendSlice(dst, s);
  4021. } else if (_2 === (0)) {
  4022. exp = exp + (1) >> 0;
  4023. } else {
  4024. mant = (x$3 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(mant.$high | x$3.$high, (mant.$low | x$3.$low) >>> 0));
  4025. }
  4026. exp = exp + (flt.bias) >> 0;
  4027. if (fmt === 98) {
  4028. return fmtB(dst, neg, mant, exp, flt);
  4029. }
  4030. if (!optimize) {
  4031. return bigFtoa(dst, prec, fmt, neg, mant, exp, flt);
  4032. }
  4033. digs = new decimalSlice.ptr(sliceType$6.nil, 0, 0, false);
  4034. ok = false;
  4035. shortest = prec < 0;
  4036. if (shortest) {
  4037. f = new extFloat.ptr(new $Uint64(0, 0), 0, false);
  4038. _tuple = f.AssignComputeBounds(mant, exp, neg, flt);
  4039. lower = $clone(_tuple[0], extFloat);
  4040. upper = $clone(_tuple[1], extFloat);
  4041. buf = arrayType$2.zero();
  4042. digs.d = new sliceType$6(buf);
  4043. ok = f.ShortestDecimal(digs, lower, upper);
  4044. if (!ok) {
  4045. return bigFtoa(dst, prec, fmt, neg, mant, exp, flt);
  4046. }
  4047. _3 = fmt;
  4048. if ((_3 === (101)) || (_3 === (69))) {
  4049. prec = max(digs.nd - 1 >> 0, 0);
  4050. } else if (_3 === (102)) {
  4051. prec = max(digs.nd - digs.dp >> 0, 0);
  4052. } else if ((_3 === (103)) || (_3 === (71))) {
  4053. prec = digs.nd;
  4054. }
  4055. } else if (!((fmt === 102))) {
  4056. digits = prec;
  4057. _4 = fmt;
  4058. if ((_4 === (101)) || (_4 === (69))) {
  4059. digits = digits + (1) >> 0;
  4060. } else if ((_4 === (103)) || (_4 === (71))) {
  4061. if (prec === 0) {
  4062. prec = 1;
  4063. }
  4064. digits = prec;
  4065. }
  4066. if (digits <= 15) {
  4067. buf$1 = arrayType$1.zero();
  4068. digs.d = new sliceType$6(buf$1);
  4069. f$1 = new extFloat.ptr(mant, exp - ((flt.mantbits >> 0)) >> 0, neg);
  4070. ok = f$1.FixedDecimal(digs, digits);
  4071. }
  4072. }
  4073. if (!ok) {
  4074. return bigFtoa(dst, prec, fmt, neg, mant, exp, flt);
  4075. }
  4076. return formatDigits(dst, shortest, neg, $clone(digs, decimalSlice), prec, fmt);
  4077. };
  4078. bigFtoa = function(dst, prec, fmt, neg, mant, exp, flt) {
  4079. var _1, _2, d, digs, dst, exp, flt, fmt, mant, neg, prec, shortest;
  4080. d = new decimal.ptr(arrayType.zero(), 0, 0, false, false);
  4081. d.Assign(mant);
  4082. d.Shift(exp - ((flt.mantbits >> 0)) >> 0);
  4083. digs = new decimalSlice.ptr(sliceType$6.nil, 0, 0, false);
  4084. shortest = prec < 0;
  4085. if (shortest) {
  4086. roundShortest(d, mant, exp, flt);
  4087. decimalSlice.copy(digs, new decimalSlice.ptr(new sliceType$6(d.d), d.nd, d.dp, false));
  4088. _1 = fmt;
  4089. if ((_1 === (101)) || (_1 === (69))) {
  4090. prec = digs.nd - 1 >> 0;
  4091. } else if (_1 === (102)) {
  4092. prec = max(digs.nd - digs.dp >> 0, 0);
  4093. } else if ((_1 === (103)) || (_1 === (71))) {
  4094. prec = digs.nd;
  4095. }
  4096. } else {
  4097. _2 = fmt;
  4098. if ((_2 === (101)) || (_2 === (69))) {
  4099. d.Round(prec + 1 >> 0);
  4100. } else if (_2 === (102)) {
  4101. d.Round(d.dp + prec >> 0);
  4102. } else if ((_2 === (103)) || (_2 === (71))) {
  4103. if (prec === 0) {
  4104. prec = 1;
  4105. }
  4106. d.Round(prec);
  4107. }
  4108. decimalSlice.copy(digs, new decimalSlice.ptr(new sliceType$6(d.d), d.nd, d.dp, false));
  4109. }
  4110. return formatDigits(dst, shortest, neg, $clone(digs, decimalSlice), prec, fmt);
  4111. };
  4112. formatDigits = function(dst, shortest, neg, digs, prec, fmt) {
  4113. var _1, digs, dst, eprec, exp, fmt, neg, prec, shortest;
  4114. _1 = fmt;
  4115. if ((_1 === (101)) || (_1 === (69))) {
  4116. return fmtE(dst, neg, $clone(digs, decimalSlice), prec, fmt);
  4117. } else if (_1 === (102)) {
  4118. return fmtF(dst, neg, $clone(digs, decimalSlice), prec);
  4119. } else if ((_1 === (103)) || (_1 === (71))) {
  4120. eprec = prec;
  4121. if (eprec > digs.nd && digs.nd >= digs.dp) {
  4122. eprec = digs.nd;
  4123. }
  4124. if (shortest) {
  4125. eprec = 6;
  4126. }
  4127. exp = digs.dp - 1 >> 0;
  4128. if (exp < -4 || exp >= eprec) {
  4129. if (prec > digs.nd) {
  4130. prec = digs.nd;
  4131. }
  4132. return fmtE(dst, neg, $clone(digs, decimalSlice), prec - 1 >> 0, (fmt + 101 << 24 >>> 24) - 103 << 24 >>> 24);
  4133. }
  4134. if (prec > digs.dp) {
  4135. prec = digs.nd;
  4136. }
  4137. return fmtF(dst, neg, $clone(digs, decimalSlice), max(prec - digs.dp >> 0, 0));
  4138. }
  4139. return $append(dst, 37, fmt);
  4140. };
  4141. roundShortest = function(d, mant, exp, flt) {
  4142. var d, exp, explo, flt, i, inclusive, l, lower, m, mant, mantlo, minexp, okdown, okup, u, upper, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7;
  4143. if ((mant.$high === 0 && mant.$low === 0)) {
  4144. d.nd = 0;
  4145. return;
  4146. }
  4147. minexp = flt.bias + 1 >> 0;
  4148. if (exp > minexp && ($imul(332, ((d.dp - d.nd >> 0)))) >= ($imul(100, ((exp - ((flt.mantbits >> 0)) >> 0))))) {
  4149. return;
  4150. }
  4151. upper = new decimal.ptr(arrayType.zero(), 0, 0, false, false);
  4152. upper.Assign((x = $mul64(mant, new $Uint64(0, 2)), new $Uint64(x.$high + 0, x.$low + 1)));
  4153. upper.Shift((exp - ((flt.mantbits >> 0)) >> 0) - 1 >> 0);
  4154. mantlo = new $Uint64(0, 0);
  4155. explo = 0;
  4156. if ((x$1 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), (mant.$high > x$1.$high || (mant.$high === x$1.$high && mant.$low > x$1.$low))) || (exp === minexp)) {
  4157. mantlo = new $Uint64(mant.$high - 0, mant.$low - 1);
  4158. explo = exp;
  4159. } else {
  4160. mantlo = (x$2 = $mul64(mant, new $Uint64(0, 2)), new $Uint64(x$2.$high - 0, x$2.$low - 1));
  4161. explo = exp - 1 >> 0;
  4162. }
  4163. lower = new decimal.ptr(arrayType.zero(), 0, 0, false, false);
  4164. lower.Assign((x$3 = $mul64(mantlo, new $Uint64(0, 2)), new $Uint64(x$3.$high + 0, x$3.$low + 1)));
  4165. lower.Shift((explo - ((flt.mantbits >> 0)) >> 0) - 1 >> 0);
  4166. inclusive = (x$4 = $div64(mant, new $Uint64(0, 2), true), (x$4.$high === 0 && x$4.$low === 0));
  4167. i = 0;
  4168. while (true) {
  4169. if (!(i < d.nd)) { break; }
  4170. l = 48;
  4171. if (i < lower.nd) {
  4172. l = (x$5 = lower.d, ((i < 0 || i >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[i]));
  4173. }
  4174. m = (x$6 = d.d, ((i < 0 || i >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[i]));
  4175. u = 48;
  4176. if (i < upper.nd) {
  4177. u = (x$7 = upper.d, ((i < 0 || i >= x$7.length) ? ($throwRuntimeError("index out of range"), undefined) : x$7[i]));
  4178. }
  4179. okdown = !((l === m)) || inclusive && ((i + 1 >> 0) === lower.nd);
  4180. okup = !((m === u)) && (inclusive || (m + 1 << 24 >>> 24) < u || (i + 1 >> 0) < upper.nd);
  4181. if (okdown && okup) {
  4182. d.Round(i + 1 >> 0);
  4183. return;
  4184. } else if (okdown) {
  4185. d.RoundDown(i + 1 >> 0);
  4186. return;
  4187. } else if (okup) {
  4188. d.RoundUp(i + 1 >> 0);
  4189. return;
  4190. }
  4191. i = i + (1) >> 0;
  4192. }
  4193. };
  4194. fmtE = function(dst, neg, d, prec, fmt) {
  4195. var _q, _q$1, _q$2, _r, _r$1, _r$2, ch, d, dst, exp, fmt, i, m, neg, prec, x;
  4196. if (neg) {
  4197. dst = $append(dst, 45);
  4198. }
  4199. ch = 48;
  4200. if (!((d.nd === 0))) {
  4201. ch = (x = d.d, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]));
  4202. }
  4203. dst = $append(dst, ch);
  4204. if (prec > 0) {
  4205. dst = $append(dst, 46);
  4206. i = 1;
  4207. m = min(d.nd, prec + 1 >> 0);
  4208. if (i < m) {
  4209. dst = $appendSlice(dst, $subslice(d.d, i, m));
  4210. i = m;
  4211. }
  4212. while (true) {
  4213. if (!(i <= prec)) { break; }
  4214. dst = $append(dst, 48);
  4215. i = i + (1) >> 0;
  4216. }
  4217. }
  4218. dst = $append(dst, fmt);
  4219. exp = d.dp - 1 >> 0;
  4220. if (d.nd === 0) {
  4221. exp = 0;
  4222. }
  4223. if (exp < 0) {
  4224. ch = 45;
  4225. exp = -exp;
  4226. } else {
  4227. ch = 43;
  4228. }
  4229. dst = $append(dst, ch);
  4230. if (exp < 10) {
  4231. dst = $append(dst, 48, ((exp << 24 >>> 24)) + 48 << 24 >>> 24);
  4232. } else if (exp < 100) {
  4233. dst = $append(dst, (((_q = exp / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (((_r = exp % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24);
  4234. } else {
  4235. dst = $append(dst, (((_q$1 = exp / 100, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (_r$1 = (((_q$2 = exp / 10, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) % 10, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) + 48 << 24 >>> 24, (((_r$2 = exp % 10, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24);
  4236. }
  4237. return dst;
  4238. };
  4239. fmtF = function(dst, neg, d, prec) {
  4240. var ch, d, dst, i, j, m, neg, prec, x;
  4241. if (neg) {
  4242. dst = $append(dst, 45);
  4243. }
  4244. if (d.dp > 0) {
  4245. m = min(d.nd, d.dp);
  4246. dst = $appendSlice(dst, $subslice(d.d, 0, m));
  4247. while (true) {
  4248. if (!(m < d.dp)) { break; }
  4249. dst = $append(dst, 48);
  4250. m = m + (1) >> 0;
  4251. }
  4252. } else {
  4253. dst = $append(dst, 48);
  4254. }
  4255. if (prec > 0) {
  4256. dst = $append(dst, 46);
  4257. i = 0;
  4258. while (true) {
  4259. if (!(i < prec)) { break; }
  4260. ch = 48;
  4261. j = d.dp + i >> 0;
  4262. if (0 <= j && j < d.nd) {
  4263. ch = (x = d.d, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j]));
  4264. }
  4265. dst = $append(dst, ch);
  4266. i = i + (1) >> 0;
  4267. }
  4268. }
  4269. return dst;
  4270. };
  4271. fmtB = function(dst, neg, mant, exp, flt) {
  4272. var _tuple, _tuple$1, dst, exp, flt, mant, neg;
  4273. if (neg) {
  4274. dst = $append(dst, 45);
  4275. }
  4276. _tuple = formatBits(dst, mant, 10, false, true);
  4277. dst = _tuple[0];
  4278. dst = $append(dst, 112);
  4279. exp = exp - (((flt.mantbits >> 0))) >> 0;
  4280. if (exp >= 0) {
  4281. dst = $append(dst, 43);
  4282. }
  4283. _tuple$1 = formatBits(dst, (new $Uint64(0, exp)), 10, exp < 0, true);
  4284. dst = _tuple$1[0];
  4285. return dst;
  4286. };
  4287. min = function(a, b) {
  4288. var a, b;
  4289. if (a < b) {
  4290. return a;
  4291. }
  4292. return b;
  4293. };
  4294. max = function(a, b) {
  4295. var a, b;
  4296. if (a > b) {
  4297. return a;
  4298. }
  4299. return b;
  4300. };
  4301. FormatUint = function(i, base) {
  4302. var _tuple, base, i, s;
  4303. if (true && (i.$high < 0 || (i.$high === 0 && i.$low < 100)) && (base === 10)) {
  4304. return small(((i.$low >> 0)));
  4305. }
  4306. _tuple = formatBits(sliceType$6.nil, i, base, false, false);
  4307. s = _tuple[1];
  4308. return s;
  4309. };
  4310. $pkg.FormatUint = FormatUint;
  4311. FormatInt = function(i, base) {
  4312. var _tuple, base, i, s;
  4313. if (true && (0 < i.$high || (0 === i.$high && 0 <= i.$low)) && (i.$high < 0 || (i.$high === 0 && i.$low < 100)) && (base === 10)) {
  4314. return small((((i.$low + ((i.$high >> 31) * 4294967296)) >> 0)));
  4315. }
  4316. _tuple = formatBits(sliceType$6.nil, (new $Uint64(i.$high, i.$low)), base, (i.$high < 0 || (i.$high === 0 && i.$low < 0)), false);
  4317. s = _tuple[1];
  4318. return s;
  4319. };
  4320. $pkg.FormatInt = FormatInt;
  4321. Itoa = function(i) {
  4322. var i;
  4323. return FormatInt((new $Int64(0, i)), 10);
  4324. };
  4325. $pkg.Itoa = Itoa;
  4326. small = function(i) {
  4327. var i;
  4328. if (i < 10) {
  4329. return $substring("0123456789abcdefghijklmnopqrstuvwxyz", i, (i + 1 >> 0));
  4330. }
  4331. return $substring("00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899", ($imul(i, 2)), (($imul(i, 2)) + 2 >> 0));
  4332. };
  4333. formatBits = function(dst, u, base, neg, append_) {
  4334. var _q, _q$1, _r, _r$1, a, append_, b, b$1, base, d, dst, i, is, is$1, is$2, j, m, neg, q, q$1, s, shift, u, us, us$1, x, x$1, x$2, x$3, x$4, x$5;
  4335. d = sliceType$6.nil;
  4336. s = "";
  4337. if (base < 2 || base > 36) {
  4338. $panic(new $String("strconv: illegal AppendInt/FormatInt base"));
  4339. }
  4340. a = arrayType$3.zero();
  4341. i = 65;
  4342. if (neg) {
  4343. u = new $Uint64(-u.$high, -u.$low);
  4344. }
  4345. if (base === 10) {
  4346. if (true) {
  4347. while (true) {
  4348. if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 1000000000)))) { break; }
  4349. q = $div64(u, new $Uint64(0, 1000000000), false);
  4350. us = (((x = $mul64(q, new $Uint64(0, 1000000000)), new $Uint64(u.$high - x.$high, u.$low - x.$low)).$low >>> 0));
  4351. j = 4;
  4352. while (true) {
  4353. if (!(j > 0)) { break; }
  4354. is = (_r = us % 100, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) * 2 >>> 0;
  4355. us = (_q = us / (100), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"));
  4356. i = i - (2) >> 0;
  4357. (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$1] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is + 1 >>> 0))));
  4358. (x$2 = i + 0 >> 0, ((x$2 < 0 || x$2 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$2] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is + 0 >>> 0))));
  4359. j = j - (1) >> 0;
  4360. }
  4361. i = i - (1) >> 0;
  4362. ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt(((us * 2 >>> 0) + 1 >>> 0)));
  4363. u = q;
  4364. }
  4365. }
  4366. us$1 = ((u.$low >>> 0));
  4367. while (true) {
  4368. if (!(us$1 >= 100)) { break; }
  4369. is$1 = (_r$1 = us$1 % 100, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) * 2 >>> 0;
  4370. us$1 = (_q$1 = us$1 / (100), (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero"));
  4371. i = i - (2) >> 0;
  4372. (x$3 = i + 1 >> 0, ((x$3 < 0 || x$3 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$3] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is$1 + 1 >>> 0))));
  4373. (x$4 = i + 0 >> 0, ((x$4 < 0 || x$4 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$4] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is$1 + 0 >>> 0))));
  4374. }
  4375. is$2 = us$1 * 2 >>> 0;
  4376. i = i - (1) >> 0;
  4377. ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is$2 + 1 >>> 0)));
  4378. if (us$1 >= 10) {
  4379. i = i - (1) >> 0;
  4380. ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt(is$2));
  4381. }
  4382. } else if (isPowerOfTwo(base)) {
  4383. shift = (((bits.TrailingZeros(((base >>> 0))) >>> 0)) & 7) >>> 0;
  4384. b = (new $Uint64(0, base));
  4385. m = ((base >>> 0)) - 1 >>> 0;
  4386. while (true) {
  4387. if (!((u.$high > b.$high || (u.$high === b.$high && u.$low >= b.$low)))) { break; }
  4388. i = i - (1) >> 0;
  4389. ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((((u.$low >>> 0)) & m) >>> 0)));
  4390. u = $shiftRightUint64(u, (shift));
  4391. }
  4392. i = i - (1) >> 0;
  4393. ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((u.$low >>> 0))));
  4394. } else {
  4395. b$1 = (new $Uint64(0, base));
  4396. while (true) {
  4397. if (!((u.$high > b$1.$high || (u.$high === b$1.$high && u.$low >= b$1.$low)))) { break; }
  4398. i = i - (1) >> 0;
  4399. q$1 = $div64(u, b$1, false);
  4400. ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt((((x$5 = $mul64(q$1, b$1), new $Uint64(u.$high - x$5.$high, u.$low - x$5.$low)).$low >>> 0))));
  4401. u = q$1;
  4402. }
  4403. i = i - (1) >> 0;
  4404. ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((u.$low >>> 0))));
  4405. }
  4406. if (neg) {
  4407. i = i - (1) >> 0;
  4408. ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = 45);
  4409. }
  4410. if (append_) {
  4411. d = $appendSlice(dst, $subslice(new sliceType$6(a), i));
  4412. return [d, s];
  4413. }
  4414. s = ($bytesToString($subslice(new sliceType$6(a), i)));
  4415. return [d, s];
  4416. };
  4417. isPowerOfTwo = function(x) {
  4418. var x;
  4419. return (x & ((x - 1 >> 0))) === 0;
  4420. };
  4421. quoteWith = function(s, quote, ASCIIonly, graphicOnly) {
  4422. var ASCIIonly, _q, graphicOnly, quote, s;
  4423. return ($bytesToString(appendQuotedWith($makeSlice(sliceType$6, 0, (_q = ($imul(3, s.length)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))), s, quote, ASCIIonly, graphicOnly)));
  4424. };
  4425. appendQuotedWith = function(buf, s, quote, ASCIIonly, graphicOnly) {
  4426. var ASCIIonly, _tuple, buf, graphicOnly, quote, r, s, width;
  4427. buf = $append(buf, quote);
  4428. width = 0;
  4429. while (true) {
  4430. if (!(s.length > 0)) { break; }
  4431. r = ((s.charCodeAt(0) >> 0));
  4432. width = 1;
  4433. if (r >= 128) {
  4434. _tuple = utf8.DecodeRuneInString(s);
  4435. r = _tuple[0];
  4436. width = _tuple[1];
  4437. }
  4438. if ((width === 1) && (r === 65533)) {
  4439. buf = $appendSlice(buf, "\\x");
  4440. buf = $append(buf, "0123456789abcdef".charCodeAt((s.charCodeAt(0) >>> 4 << 24 >>> 24)));
  4441. buf = $append(buf, "0123456789abcdef".charCodeAt(((s.charCodeAt(0) & 15) >>> 0)));
  4442. s = $substring(s, width);
  4443. continue;
  4444. }
  4445. buf = appendEscapedRune(buf, r, quote, ASCIIonly, graphicOnly);
  4446. s = $substring(s, width);
  4447. }
  4448. buf = $append(buf, quote);
  4449. return buf;
  4450. };
  4451. appendQuotedRuneWith = function(buf, r, quote, ASCIIonly, graphicOnly) {
  4452. var ASCIIonly, buf, graphicOnly, quote, r;
  4453. buf = $append(buf, quote);
  4454. if (!utf8.ValidRune(r)) {
  4455. r = 65533;
  4456. }
  4457. buf = appendEscapedRune(buf, r, quote, ASCIIonly, graphicOnly);
  4458. buf = $append(buf, quote);
  4459. return buf;
  4460. };
  4461. appendEscapedRune = function(buf, r, quote, ASCIIonly, graphicOnly) {
  4462. var ASCIIonly, _1, buf, graphicOnly, n, quote, r, runeTmp, s, s$1;
  4463. runeTmp = arrayType$4.zero();
  4464. if ((r === ((quote >> 0))) || (r === 92)) {
  4465. buf = $append(buf, 92);
  4466. buf = $append(buf, ((r << 24 >>> 24)));
  4467. return buf;
  4468. }
  4469. if (ASCIIonly) {
  4470. if (r < 128 && IsPrint(r)) {
  4471. buf = $append(buf, ((r << 24 >>> 24)));
  4472. return buf;
  4473. }
  4474. } else if (IsPrint(r) || graphicOnly && isInGraphicList(r)) {
  4475. n = utf8.EncodeRune(new sliceType$6(runeTmp), r);
  4476. buf = $appendSlice(buf, $subslice(new sliceType$6(runeTmp), 0, n));
  4477. return buf;
  4478. }
  4479. _1 = r;
  4480. if (_1 === (7)) {
  4481. buf = $appendSlice(buf, "\\a");
  4482. } else if (_1 === (8)) {
  4483. buf = $appendSlice(buf, "\\b");
  4484. } else if (_1 === (12)) {
  4485. buf = $appendSlice(buf, "\\f");
  4486. } else if (_1 === (10)) {
  4487. buf = $appendSlice(buf, "\\n");
  4488. } else if (_1 === (13)) {
  4489. buf = $appendSlice(buf, "\\r");
  4490. } else if (_1 === (9)) {
  4491. buf = $appendSlice(buf, "\\t");
  4492. } else if (_1 === (11)) {
  4493. buf = $appendSlice(buf, "\\v");
  4494. } else {
  4495. if (r < 32) {
  4496. buf = $appendSlice(buf, "\\x");
  4497. buf = $append(buf, "0123456789abcdef".charCodeAt((((r << 24 >>> 24)) >>> 4 << 24 >>> 24)));
  4498. buf = $append(buf, "0123456789abcdef".charCodeAt(((((r << 24 >>> 24)) & 15) >>> 0)));
  4499. } else if (r > 1114111) {
  4500. r = 65533;
  4501. buf = $appendSlice(buf, "\\u");
  4502. s = 12;
  4503. while (true) {
  4504. if (!(s >= 0)) { break; }
  4505. buf = $append(buf, "0123456789abcdef".charCodeAt((((r >> $min(((s >>> 0)), 31)) >> 0) & 15)));
  4506. s = s - (4) >> 0;
  4507. }
  4508. } else if (r < 65536) {
  4509. buf = $appendSlice(buf, "\\u");
  4510. s = 12;
  4511. while (true) {
  4512. if (!(s >= 0)) { break; }
  4513. buf = $append(buf, "0123456789abcdef".charCodeAt((((r >> $min(((s >>> 0)), 31)) >> 0) & 15)));
  4514. s = s - (4) >> 0;
  4515. }
  4516. } else {
  4517. buf = $appendSlice(buf, "\\U");
  4518. s$1 = 28;
  4519. while (true) {
  4520. if (!(s$1 >= 0)) { break; }
  4521. buf = $append(buf, "0123456789abcdef".charCodeAt((((r >> $min(((s$1 >>> 0)), 31)) >> 0) & 15)));
  4522. s$1 = s$1 - (4) >> 0;
  4523. }
  4524. }
  4525. }
  4526. return buf;
  4527. };
  4528. Quote = function(s) {
  4529. var s;
  4530. return quoteWith(s, 34, false, false);
  4531. };
  4532. $pkg.Quote = Quote;
  4533. AppendQuote = function(dst, s) {
  4534. var dst, s;
  4535. return appendQuotedWith(dst, s, 34, false, false);
  4536. };
  4537. $pkg.AppendQuote = AppendQuote;
  4538. QuoteToASCII = function(s) {
  4539. var s;
  4540. return quoteWith(s, 34, true, false);
  4541. };
  4542. $pkg.QuoteToASCII = QuoteToASCII;
  4543. AppendQuoteToASCII = function(dst, s) {
  4544. var dst, s;
  4545. return appendQuotedWith(dst, s, 34, true, false);
  4546. };
  4547. $pkg.AppendQuoteToASCII = AppendQuoteToASCII;
  4548. AppendQuoteRune = function(dst, r) {
  4549. var dst, r;
  4550. return appendQuotedRuneWith(dst, r, 39, false, false);
  4551. };
  4552. $pkg.AppendQuoteRune = AppendQuoteRune;
  4553. AppendQuoteRuneToASCII = function(dst, r) {
  4554. var dst, r;
  4555. return appendQuotedRuneWith(dst, r, 39, true, false);
  4556. };
  4557. $pkg.AppendQuoteRuneToASCII = AppendQuoteRuneToASCII;
  4558. CanBackquote = function(s) {
  4559. var _tuple, r, s, wid;
  4560. while (true) {
  4561. if (!(s.length > 0)) { break; }
  4562. _tuple = utf8.DecodeRuneInString(s);
  4563. r = _tuple[0];
  4564. wid = _tuple[1];
  4565. s = $substring(s, wid);
  4566. if (wid > 1) {
  4567. if (r === 65279) {
  4568. return false;
  4569. }
  4570. continue;
  4571. }
  4572. if (r === 65533) {
  4573. return false;
  4574. }
  4575. if ((r < 32 && !((r === 9))) || (r === 96) || (r === 127)) {
  4576. return false;
  4577. }
  4578. }
  4579. return true;
  4580. };
  4581. $pkg.CanBackquote = CanBackquote;
  4582. unhex = function(b) {
  4583. var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, c, ok, v;
  4584. v = 0;
  4585. ok = false;
  4586. c = ((b >> 0));
  4587. if (48 <= c && c <= 57) {
  4588. _tmp = c - 48 >> 0;
  4589. _tmp$1 = true;
  4590. v = _tmp;
  4591. ok = _tmp$1;
  4592. return [v, ok];
  4593. } else if (97 <= c && c <= 102) {
  4594. _tmp$2 = (c - 97 >> 0) + 10 >> 0;
  4595. _tmp$3 = true;
  4596. v = _tmp$2;
  4597. ok = _tmp$3;
  4598. return [v, ok];
  4599. } else if (65 <= c && c <= 70) {
  4600. _tmp$4 = (c - 65 >> 0) + 10 >> 0;
  4601. _tmp$5 = true;
  4602. v = _tmp$4;
  4603. ok = _tmp$5;
  4604. return [v, ok];
  4605. }
  4606. return [v, ok];
  4607. };
  4608. UnquoteChar = function(s, quote) {
  4609. var _1, _2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, c, c$1, err, j, j$1, multibyte, n, ok, quote, r, s, size, tail, v, v$1, value, x, x$1;
  4610. value = 0;
  4611. multibyte = false;
  4612. tail = "";
  4613. err = $ifaceNil;
  4614. if (s.length === 0) {
  4615. err = $pkg.ErrSyntax;
  4616. return [value, multibyte, tail, err];
  4617. }
  4618. c = s.charCodeAt(0);
  4619. if ((c === quote) && ((quote === 39) || (quote === 34))) {
  4620. err = $pkg.ErrSyntax;
  4621. return [value, multibyte, tail, err];
  4622. } else if (c >= 128) {
  4623. _tuple = utf8.DecodeRuneInString(s);
  4624. r = _tuple[0];
  4625. size = _tuple[1];
  4626. _tmp = r;
  4627. _tmp$1 = true;
  4628. _tmp$2 = $substring(s, size);
  4629. _tmp$3 = $ifaceNil;
  4630. value = _tmp;
  4631. multibyte = _tmp$1;
  4632. tail = _tmp$2;
  4633. err = _tmp$3;
  4634. return [value, multibyte, tail, err];
  4635. } else if (!((c === 92))) {
  4636. _tmp$4 = ((s.charCodeAt(0) >> 0));
  4637. _tmp$5 = false;
  4638. _tmp$6 = $substring(s, 1);
  4639. _tmp$7 = $ifaceNil;
  4640. value = _tmp$4;
  4641. multibyte = _tmp$5;
  4642. tail = _tmp$6;
  4643. err = _tmp$7;
  4644. return [value, multibyte, tail, err];
  4645. }
  4646. if (s.length <= 1) {
  4647. err = $pkg.ErrSyntax;
  4648. return [value, multibyte, tail, err];
  4649. }
  4650. c$1 = s.charCodeAt(1);
  4651. s = $substring(s, 2);
  4652. switch (0) { default:
  4653. _1 = c$1;
  4654. if (_1 === (97)) {
  4655. value = 7;
  4656. } else if (_1 === (98)) {
  4657. value = 8;
  4658. } else if (_1 === (102)) {
  4659. value = 12;
  4660. } else if (_1 === (110)) {
  4661. value = 10;
  4662. } else if (_1 === (114)) {
  4663. value = 13;
  4664. } else if (_1 === (116)) {
  4665. value = 9;
  4666. } else if (_1 === (118)) {
  4667. value = 11;
  4668. } else if ((_1 === (120)) || (_1 === (117)) || (_1 === (85))) {
  4669. n = 0;
  4670. _2 = c$1;
  4671. if (_2 === (120)) {
  4672. n = 2;
  4673. } else if (_2 === (117)) {
  4674. n = 4;
  4675. } else if (_2 === (85)) {
  4676. n = 8;
  4677. }
  4678. v = 0;
  4679. if (s.length < n) {
  4680. err = $pkg.ErrSyntax;
  4681. return [value, multibyte, tail, err];
  4682. }
  4683. j = 0;
  4684. while (true) {
  4685. if (!(j < n)) { break; }
  4686. _tuple$1 = unhex(s.charCodeAt(j));
  4687. x = _tuple$1[0];
  4688. ok = _tuple$1[1];
  4689. if (!ok) {
  4690. err = $pkg.ErrSyntax;
  4691. return [value, multibyte, tail, err];
  4692. }
  4693. v = (v << 4 >> 0) | x;
  4694. j = j + (1) >> 0;
  4695. }
  4696. s = $substring(s, n);
  4697. if (c$1 === 120) {
  4698. value = v;
  4699. break;
  4700. }
  4701. if (v > 1114111) {
  4702. err = $pkg.ErrSyntax;
  4703. return [value, multibyte, tail, err];
  4704. }
  4705. value = v;
  4706. multibyte = true;
  4707. } else if ((_1 === (48)) || (_1 === (49)) || (_1 === (50)) || (_1 === (51)) || (_1 === (52)) || (_1 === (53)) || (_1 === (54)) || (_1 === (55))) {
  4708. v$1 = ((c$1 >> 0)) - 48 >> 0;
  4709. if (s.length < 2) {
  4710. err = $pkg.ErrSyntax;
  4711. return [value, multibyte, tail, err];
  4712. }
  4713. j$1 = 0;
  4714. while (true) {
  4715. if (!(j$1 < 2)) { break; }
  4716. x$1 = ((s.charCodeAt(j$1) >> 0)) - 48 >> 0;
  4717. if (x$1 < 0 || x$1 > 7) {
  4718. err = $pkg.ErrSyntax;
  4719. return [value, multibyte, tail, err];
  4720. }
  4721. v$1 = ((v$1 << 3 >> 0)) | x$1;
  4722. j$1 = j$1 + (1) >> 0;
  4723. }
  4724. s = $substring(s, 2);
  4725. if (v$1 > 255) {
  4726. err = $pkg.ErrSyntax;
  4727. return [value, multibyte, tail, err];
  4728. }
  4729. value = v$1;
  4730. } else if (_1 === (92)) {
  4731. value = 92;
  4732. } else if ((_1 === (39)) || (_1 === (34))) {
  4733. if (!((c$1 === quote))) {
  4734. err = $pkg.ErrSyntax;
  4735. return [value, multibyte, tail, err];
  4736. }
  4737. value = ((c$1 >> 0));
  4738. } else {
  4739. err = $pkg.ErrSyntax;
  4740. return [value, multibyte, tail, err];
  4741. }
  4742. }
  4743. tail = s;
  4744. return [value, multibyte, tail, err];
  4745. };
  4746. $pkg.UnquoteChar = UnquoteChar;
  4747. Unquote = function(s) {
  4748. var _1, _q, _tuple, _tuple$1, buf, buf$1, c, err, i, multibyte, n, n$1, quote, r, runeTmp, s, size, ss;
  4749. n = s.length;
  4750. if (n < 2) {
  4751. return ["", $pkg.ErrSyntax];
  4752. }
  4753. quote = s.charCodeAt(0);
  4754. if (!((quote === s.charCodeAt((n - 1 >> 0))))) {
  4755. return ["", $pkg.ErrSyntax];
  4756. }
  4757. s = $substring(s, 1, (n - 1 >> 0));
  4758. if (quote === 96) {
  4759. if (contains(s, 96)) {
  4760. return ["", $pkg.ErrSyntax];
  4761. }
  4762. if (contains(s, 13)) {
  4763. buf = $makeSlice(sliceType$6, 0, (s.length - 1 >> 0));
  4764. i = 0;
  4765. while (true) {
  4766. if (!(i < s.length)) { break; }
  4767. if (!((s.charCodeAt(i) === 13))) {
  4768. buf = $append(buf, s.charCodeAt(i));
  4769. }
  4770. i = i + (1) >> 0;
  4771. }
  4772. return [($bytesToString(buf)), $ifaceNil];
  4773. }
  4774. return [s, $ifaceNil];
  4775. }
  4776. if (!((quote === 34)) && !((quote === 39))) {
  4777. return ["", $pkg.ErrSyntax];
  4778. }
  4779. if (contains(s, 10)) {
  4780. return ["", $pkg.ErrSyntax];
  4781. }
  4782. if (!contains(s, 92) && !contains(s, quote)) {
  4783. _1 = quote;
  4784. if (_1 === (34)) {
  4785. if (utf8.ValidString(s)) {
  4786. return [s, $ifaceNil];
  4787. }
  4788. } else if (_1 === (39)) {
  4789. _tuple = utf8.DecodeRuneInString(s);
  4790. r = _tuple[0];
  4791. size = _tuple[1];
  4792. if ((size === s.length) && (!((r === 65533)) || !((size === 1)))) {
  4793. return [s, $ifaceNil];
  4794. }
  4795. }
  4796. }
  4797. runeTmp = arrayType$4.zero();
  4798. buf$1 = $makeSlice(sliceType$6, 0, (_q = ($imul(3, s.length)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")));
  4799. while (true) {
  4800. if (!(s.length > 0)) { break; }
  4801. _tuple$1 = UnquoteChar(s, quote);
  4802. c = _tuple$1[0];
  4803. multibyte = _tuple$1[1];
  4804. ss = _tuple$1[2];
  4805. err = _tuple$1[3];
  4806. if (!($interfaceIsEqual(err, $ifaceNil))) {
  4807. return ["", err];
  4808. }
  4809. s = ss;
  4810. if (c < 128 || !multibyte) {
  4811. buf$1 = $append(buf$1, ((c << 24 >>> 24)));
  4812. } else {
  4813. n$1 = utf8.EncodeRune(new sliceType$6(runeTmp), c);
  4814. buf$1 = $appendSlice(buf$1, $subslice(new sliceType$6(runeTmp), 0, n$1));
  4815. }
  4816. if ((quote === 39) && !((s.length === 0))) {
  4817. return ["", $pkg.ErrSyntax];
  4818. }
  4819. }
  4820. return [($bytesToString(buf$1)), $ifaceNil];
  4821. };
  4822. $pkg.Unquote = Unquote;
  4823. contains = function(s, c) {
  4824. var c, s;
  4825. return !((bytealg.IndexByteString(s, c) === -1));
  4826. };
  4827. bsearch16 = function(a, x) {
  4828. var _q, _tmp, _tmp$1, a, h, i, j, x;
  4829. _tmp = 0;
  4830. _tmp$1 = a.$length;
  4831. i = _tmp;
  4832. j = _tmp$1;
  4833. while (true) {
  4834. if (!(i < j)) { break; }
  4835. h = i + (_q = ((j - i >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0;
  4836. if (((h < 0 || h >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + h]) < x) {
  4837. i = h + 1 >> 0;
  4838. } else {
  4839. j = h;
  4840. }
  4841. }
  4842. return i;
  4843. };
  4844. bsearch32 = function(a, x) {
  4845. var _q, _tmp, _tmp$1, a, h, i, j, x;
  4846. _tmp = 0;
  4847. _tmp$1 = a.$length;
  4848. i = _tmp;
  4849. j = _tmp$1;
  4850. while (true) {
  4851. if (!(i < j)) { break; }
  4852. h = i + (_q = ((j - i >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0;
  4853. if (((h < 0 || h >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + h]) < x) {
  4854. i = h + 1 >> 0;
  4855. } else {
  4856. j = h;
  4857. }
  4858. }
  4859. return i;
  4860. };
  4861. IsPrint = function(r) {
  4862. var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, i, i$1, isNotPrint, isNotPrint$1, isPrint, isPrint$1, j, j$1, r, rr, rr$1, x, x$1, x$2, x$3;
  4863. if (r <= 255) {
  4864. if (32 <= r && r <= 126) {
  4865. return true;
  4866. }
  4867. if (161 <= r && r <= 255) {
  4868. return !((r === 173));
  4869. }
  4870. return false;
  4871. }
  4872. if (0 <= r && r < 65536) {
  4873. _tmp = ((r << 16 >>> 16));
  4874. _tmp$1 = isPrint16;
  4875. _tmp$2 = isNotPrint16;
  4876. rr = _tmp;
  4877. isPrint = _tmp$1;
  4878. isNotPrint = _tmp$2;
  4879. i = bsearch16(isPrint, rr);
  4880. if (i >= isPrint.$length || rr < (x = (i & ~1) >> 0, ((x < 0 || x >= isPrint.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint.$array[isPrint.$offset + x])) || (x$1 = i | 1, ((x$1 < 0 || x$1 >= isPrint.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint.$array[isPrint.$offset + x$1])) < rr) {
  4881. return false;
  4882. }
  4883. j = bsearch16(isNotPrint, rr);
  4884. return j >= isNotPrint.$length || !((((j < 0 || j >= isNotPrint.$length) ? ($throwRuntimeError("index out of range"), undefined) : isNotPrint.$array[isNotPrint.$offset + j]) === rr));
  4885. }
  4886. _tmp$3 = ((r >>> 0));
  4887. _tmp$4 = isPrint32;
  4888. _tmp$5 = isNotPrint32;
  4889. rr$1 = _tmp$3;
  4890. isPrint$1 = _tmp$4;
  4891. isNotPrint$1 = _tmp$5;
  4892. i$1 = bsearch32(isPrint$1, rr$1);
  4893. if (i$1 >= isPrint$1.$length || rr$1 < (x$2 = (i$1 & ~1) >> 0, ((x$2 < 0 || x$2 >= isPrint$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint$1.$array[isPrint$1.$offset + x$2])) || (x$3 = i$1 | 1, ((x$3 < 0 || x$3 >= isPrint$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint$1.$array[isPrint$1.$offset + x$3])) < rr$1) {
  4894. return false;
  4895. }
  4896. if (r >= 131072) {
  4897. return true;
  4898. }
  4899. r = r - (65536) >> 0;
  4900. j$1 = bsearch16(isNotPrint$1, ((r << 16 >>> 16)));
  4901. return j$1 >= isNotPrint$1.$length || !((((j$1 < 0 || j$1 >= isNotPrint$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : isNotPrint$1.$array[isNotPrint$1.$offset + j$1]) === ((r << 16 >>> 16))));
  4902. };
  4903. $pkg.IsPrint = IsPrint;
  4904. isInGraphicList = function(r) {
  4905. var i, r, rr;
  4906. if (r > 65535) {
  4907. return false;
  4908. }
  4909. rr = ((r << 16 >>> 16));
  4910. i = bsearch16(isGraphic, rr);
  4911. return i < isGraphic.$length && (rr === ((i < 0 || i >= isGraphic.$length) ? ($throwRuntimeError("index out of range"), undefined) : isGraphic.$array[isGraphic.$offset + i]));
  4912. };
  4913. ptrType.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
  4914. ptrType$2.methods = [{prop: "set", name: "set", pkg: "strconv", typ: $funcType([$String], [$Bool], false)}, {prop: "floatBits", name: "floatBits", pkg: "strconv", typ: $funcType([ptrType$1], [$Uint64, $Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Assign", name: "Assign", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "Shift", name: "Shift", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundDown", name: "RoundDown", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundUp", name: "RoundUp", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundedInteger", name: "RoundedInteger", pkg: "", typ: $funcType([], [$Uint64], false)}];
  4915. ptrType$4.methods = [{prop: "floatBits", name: "floatBits", pkg: "strconv", typ: $funcType([ptrType$1], [$Uint64, $Bool], false)}, {prop: "AssignComputeBounds", name: "AssignComputeBounds", pkg: "", typ: $funcType([$Uint64, $Int, $Bool, ptrType$1], [extFloat, extFloat], false)}, {prop: "Normalize", name: "Normalize", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "Multiply", name: "Multiply", pkg: "", typ: $funcType([extFloat], [], false)}, {prop: "AssignDecimal", name: "AssignDecimal", pkg: "", typ: $funcType([$Uint64, $Int, $Bool, $Bool, ptrType$1], [$Bool], false)}, {prop: "frexp10", name: "frexp10", pkg: "strconv", typ: $funcType([], [$Int, $Int], false)}, {prop: "FixedDecimal", name: "FixedDecimal", pkg: "", typ: $funcType([ptrType$3, $Int], [$Bool], false)}, {prop: "ShortestDecimal", name: "ShortestDecimal", pkg: "", typ: $funcType([ptrType$3, ptrType$4, ptrType$4], [$Bool], false)}];
  4916. NumError.init("", [{prop: "Func", name: "Func", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Num", name: "Num", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]);
  4917. decimal.init("strconv", [{prop: "d", name: "d", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "nd", name: "nd", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "dp", name: "dp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "neg", name: "neg", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "trunc", name: "trunc", embedded: false, exported: false, typ: $Bool, tag: ""}]);
  4918. leftCheat.init("strconv", [{prop: "delta", name: "delta", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "cutoff", name: "cutoff", embedded: false, exported: false, typ: $String, tag: ""}]);
  4919. extFloat.init("strconv", [{prop: "mant", name: "mant", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "exp", name: "exp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "neg", name: "neg", embedded: false, exported: false, typ: $Bool, tag: ""}]);
  4920. floatInfo.init("strconv", [{prop: "mantbits", name: "mantbits", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "expbits", name: "expbits", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "bias", name: "bias", embedded: false, exported: false, typ: $Int, tag: ""}]);
  4921. decimalSlice.init("strconv", [{prop: "d", name: "d", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "nd", name: "nd", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "dp", name: "dp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "neg", name: "neg", embedded: false, exported: false, typ: $Bool, tag: ""}]);
  4922. $init = function() {
  4923. $pkg.$init = function() {};
  4924. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  4925. $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  4926. $r = bytealg.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  4927. $r = math.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  4928. $r = bits.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  4929. $r = utf8.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  4930. optimize = true;
  4931. $pkg.ErrRange = errors.New("value out of range");
  4932. $pkg.ErrSyntax = errors.New("invalid syntax");
  4933. leftcheats = new sliceType$3([new leftCheat.ptr(0, ""), new leftCheat.ptr(1, "5"), new leftCheat.ptr(1, "25"), new leftCheat.ptr(1, "125"), new leftCheat.ptr(2, "625"), new leftCheat.ptr(2, "3125"), new leftCheat.ptr(2, "15625"), new leftCheat.ptr(3, "78125"), new leftCheat.ptr(3, "390625"), new leftCheat.ptr(3, "1953125"), new leftCheat.ptr(4, "9765625"), new leftCheat.ptr(4, "48828125"), new leftCheat.ptr(4, "244140625"), new leftCheat.ptr(4, "1220703125"), new leftCheat.ptr(5, "6103515625"), new leftCheat.ptr(5, "30517578125"), new leftCheat.ptr(5, "152587890625"), new leftCheat.ptr(6, "762939453125"), new leftCheat.ptr(6, "3814697265625"), new leftCheat.ptr(6, "19073486328125"), new leftCheat.ptr(7, "95367431640625"), new leftCheat.ptr(7, "476837158203125"), new leftCheat.ptr(7, "2384185791015625"), new leftCheat.ptr(7, "11920928955078125"), new leftCheat.ptr(8, "59604644775390625"), new leftCheat.ptr(8, "298023223876953125"), new leftCheat.ptr(8, "1490116119384765625"), new leftCheat.ptr(9, "7450580596923828125"), new leftCheat.ptr(9, "37252902984619140625"), new leftCheat.ptr(9, "186264514923095703125"), new leftCheat.ptr(10, "931322574615478515625"), new leftCheat.ptr(10, "4656612873077392578125"), new leftCheat.ptr(10, "23283064365386962890625"), new leftCheat.ptr(10, "116415321826934814453125"), new leftCheat.ptr(11, "582076609134674072265625"), new leftCheat.ptr(11, "2910383045673370361328125"), new leftCheat.ptr(11, "14551915228366851806640625"), new leftCheat.ptr(12, "72759576141834259033203125"), new leftCheat.ptr(12, "363797880709171295166015625"), new leftCheat.ptr(12, "1818989403545856475830078125"), new leftCheat.ptr(13, "9094947017729282379150390625"), new leftCheat.ptr(13, "45474735088646411895751953125"), new leftCheat.ptr(13, "227373675443232059478759765625"), new leftCheat.ptr(13, "1136868377216160297393798828125"), new leftCheat.ptr(14, "5684341886080801486968994140625"), new leftCheat.ptr(14, "28421709430404007434844970703125"), new leftCheat.ptr(14, "142108547152020037174224853515625"), new leftCheat.ptr(15, "710542735760100185871124267578125"), new leftCheat.ptr(15, "3552713678800500929355621337890625"), new leftCheat.ptr(15, "17763568394002504646778106689453125"), new leftCheat.ptr(16, "88817841970012523233890533447265625"), new leftCheat.ptr(16, "444089209850062616169452667236328125"), new leftCheat.ptr(16, "2220446049250313080847263336181640625"), new leftCheat.ptr(16, "11102230246251565404236316680908203125"), new leftCheat.ptr(17, "55511151231257827021181583404541015625"), new leftCheat.ptr(17, "277555756156289135105907917022705078125"), new leftCheat.ptr(17, "1387778780781445675529539585113525390625"), new leftCheat.ptr(18, "6938893903907228377647697925567626953125"), new leftCheat.ptr(18, "34694469519536141888238489627838134765625"), new leftCheat.ptr(18, "173472347597680709441192448139190673828125"), new leftCheat.ptr(19, "867361737988403547205962240695953369140625")]);
  4934. smallPowersOfTen = $toNativeArray($kindStruct, [new extFloat.ptr(new $Uint64(2147483648, 0), -63, false), new extFloat.ptr(new $Uint64(2684354560, 0), -60, false), new extFloat.ptr(new $Uint64(3355443200, 0), -57, false), new extFloat.ptr(new $Uint64(4194304000, 0), -54, false), new extFloat.ptr(new $Uint64(2621440000, 0), -50, false), new extFloat.ptr(new $Uint64(3276800000, 0), -47, false), new extFloat.ptr(new $Uint64(4096000000, 0), -44, false), new extFloat.ptr(new $Uint64(2560000000, 0), -40, false)]);
  4935. powersOfTen = $toNativeArray($kindStruct, [new extFloat.ptr(new $Uint64(4203730336, 136053384), -1220, false), new extFloat.ptr(new $Uint64(3132023167, 2722021238), -1193, false), new extFloat.ptr(new $Uint64(2333539104, 810921078), -1166, false), new extFloat.ptr(new $Uint64(3477244234, 1573795306), -1140, false), new extFloat.ptr(new $Uint64(2590748842, 1432697645), -1113, false), new extFloat.ptr(new $Uint64(3860516611, 1025131999), -1087, false), new extFloat.ptr(new $Uint64(2876309015, 3348809418), -1060, false), new extFloat.ptr(new $Uint64(4286034428, 3200048207), -1034, false), new extFloat.ptr(new $Uint64(3193344495, 1097586188), -1007, false), new extFloat.ptr(new $Uint64(2379227053, 2424306748), -980, false), new extFloat.ptr(new $Uint64(3545324584, 827693699), -954, false), new extFloat.ptr(new $Uint64(2641472655, 2913388981), -927, false), new extFloat.ptr(new $Uint64(3936100983, 602835915), -901, false), new extFloat.ptr(new $Uint64(2932623761, 1081627501), -874, false), new extFloat.ptr(new $Uint64(2184974969, 1572261463), -847, false), new extFloat.ptr(new $Uint64(3255866422, 1308317239), -821, false), new extFloat.ptr(new $Uint64(2425809519, 944281679), -794, false), new extFloat.ptr(new $Uint64(3614737867, 629291719), -768, false), new extFloat.ptr(new $Uint64(2693189581, 2545915892), -741, false), new extFloat.ptr(new $Uint64(4013165208, 388672741), -715, false), new extFloat.ptr(new $Uint64(2990041083, 708162190), -688, false), new extFloat.ptr(new $Uint64(2227754207, 3536207675), -661, false), new extFloat.ptr(new $Uint64(3319612455, 450088378), -635, false), new extFloat.ptr(new $Uint64(2473304014, 3139815830), -608, false), new extFloat.ptr(new $Uint64(3685510180, 2103616900), -582, false), new extFloat.ptr(new $Uint64(2745919064, 224385782), -555, false), new extFloat.ptr(new $Uint64(4091738259, 3737383206), -529, false), new extFloat.ptr(new $Uint64(3048582568, 2868871352), -502, false), new extFloat.ptr(new $Uint64(2271371013, 1820084875), -475, false), new extFloat.ptr(new $Uint64(3384606560, 885076051), -449, false), new extFloat.ptr(new $Uint64(2521728396, 2444895829), -422, false), new extFloat.ptr(new $Uint64(3757668132, 1881767613), -396, false), new extFloat.ptr(new $Uint64(2799680927, 3102062735), -369, false), new extFloat.ptr(new $Uint64(4171849679, 2289335700), -343, false), new extFloat.ptr(new $Uint64(3108270227, 2410191823), -316, false), new extFloat.ptr(new $Uint64(2315841784, 3205436779), -289, false), new extFloat.ptr(new $Uint64(3450873173, 1697722806), -263, false), new extFloat.ptr(new $Uint64(2571100870, 3497754540), -236, false), new extFloat.ptr(new $Uint64(3831238852, 707476230), -210, false), new extFloat.ptr(new $Uint64(2854495385, 1769181907), -183, false), new extFloat.ptr(new $Uint64(4253529586, 2197867022), -157, false), new extFloat.ptr(new $Uint64(3169126500, 2450594539), -130, false), new extFloat.ptr(new $Uint64(2361183241, 1867548876), -103, false), new extFloat.ptr(new $Uint64(3518437208, 3793315116), -77, false), new extFloat.ptr(new $Uint64(2621440000, 0), -50, false), new extFloat.ptr(new $Uint64(3906250000, 0), -24, false), new extFloat.ptr(new $Uint64(2910383045, 2892103680), 3, false), new extFloat.ptr(new $Uint64(2168404344, 4170451332), 30, false), new extFloat.ptr(new $Uint64(3231174267, 3372684723), 56, false), new extFloat.ptr(new $Uint64(2407412430, 2078956656), 83, false), new extFloat.ptr(new $Uint64(3587324068, 2884206696), 109, false), new extFloat.ptr(new $Uint64(2672764710, 395977285), 136, false), new extFloat.ptr(new $Uint64(3982729777, 3569679143), 162, false), new extFloat.ptr(new $Uint64(2967364920, 2361961896), 189, false), new extFloat.ptr(new $Uint64(2210859150, 447440347), 216, false), new extFloat.ptr(new $Uint64(3294436857, 1114709402), 242, false), new extFloat.ptr(new $Uint64(2454546732, 2786846552), 269, false), new extFloat.ptr(new $Uint64(3657559652, 443583978), 295, false), new extFloat.ptr(new $Uint64(2725094297, 2599384906), 322, false), new extFloat.ptr(new $Uint64(4060706939, 3028118405), 348, false), new extFloat.ptr(new $Uint64(3025462433, 2044532855), 375, false), new extFloat.ptr(new $Uint64(2254145170, 1536935362), 402, false), new extFloat.ptr(new $Uint64(3358938053, 3365297469), 428, false), new extFloat.ptr(new $Uint64(2502603868, 4204241075), 455, false), new extFloat.ptr(new $Uint64(3729170365, 2577424355), 481, false), new extFloat.ptr(new $Uint64(2778448436, 3677981733), 508, false), new extFloat.ptr(new $Uint64(4140210802, 2744688476), 534, false), new extFloat.ptr(new $Uint64(3084697427, 1424604878), 561, false), new extFloat.ptr(new $Uint64(2298278679, 4062331362), 588, false), new extFloat.ptr(new $Uint64(3424702107, 3546052773), 614, false), new extFloat.ptr(new $Uint64(2551601907, 2065781727), 641, false), new extFloat.ptr(new $Uint64(3802183132, 2535403578), 667, false), new extFloat.ptr(new $Uint64(2832847187, 1558426518), 694, false), new extFloat.ptr(new $Uint64(4221271257, 2762425404), 720, false), new extFloat.ptr(new $Uint64(3145092172, 2812560400), 747, false), new extFloat.ptr(new $Uint64(2343276271, 3057687578), 774, false), new extFloat.ptr(new $Uint64(3491753744, 2790753324), 800, false), new extFloat.ptr(new $Uint64(2601559269, 3918606633), 827, false), new extFloat.ptr(new $Uint64(3876625403, 2711358621), 853, false), new extFloat.ptr(new $Uint64(2888311001, 1648096297), 880, false), new extFloat.ptr(new $Uint64(2151959390, 2057817989), 907, false), new extFloat.ptr(new $Uint64(3206669376, 61660461), 933, false), new extFloat.ptr(new $Uint64(2389154863, 1581580175), 960, false), new extFloat.ptr(new $Uint64(3560118173, 2626467905), 986, false), new extFloat.ptr(new $Uint64(2652494738, 3034782633), 1013, false), new extFloat.ptr(new $Uint64(3952525166, 3135207385), 1039, false), new extFloat.ptr(new $Uint64(2944860731, 2616258155), 1066, false)]);
  4936. uint64pow10 = $toNativeArray($kindUint64, [new $Uint64(0, 1), new $Uint64(0, 10), new $Uint64(0, 100), new $Uint64(0, 1000), new $Uint64(0, 10000), new $Uint64(0, 100000), new $Uint64(0, 1000000), new $Uint64(0, 10000000), new $Uint64(0, 100000000), new $Uint64(0, 1000000000), new $Uint64(2, 1410065408), new $Uint64(23, 1215752192), new $Uint64(232, 3567587328), new $Uint64(2328, 1316134912), new $Uint64(23283, 276447232), new $Uint64(232830, 2764472320), new $Uint64(2328306, 1874919424), new $Uint64(23283064, 1569325056), new $Uint64(232830643, 2808348672), new $Uint64(2328306436, 2313682944)]);
  4937. float32info = new floatInfo.ptr(23, 8, -127);
  4938. float64info = new floatInfo.ptr(52, 11, -1023);
  4939. isPrint16 = new sliceType$4([32, 126, 161, 887, 890, 895, 900, 1366, 1369, 1418, 1421, 1479, 1488, 1514, 1520, 1524, 1542, 1563, 1566, 1805, 1808, 1866, 1869, 1969, 1984, 2042, 2048, 2093, 2096, 2139, 2142, 2154, 2208, 2237, 2260, 2444, 2447, 2448, 2451, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2531, 2534, 2557, 2561, 2570, 2575, 2576, 2579, 2617, 2620, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2654, 2662, 2677, 2689, 2745, 2748, 2765, 2768, 2768, 2784, 2787, 2790, 2801, 2809, 2828, 2831, 2832, 2835, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2915, 2918, 2935, 2946, 2954, 2958, 2965, 2969, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3021, 3024, 3024, 3031, 3031, 3046, 3066, 3072, 3129, 3133, 3149, 3157, 3162, 3168, 3171, 3174, 3183, 3192, 3257, 3260, 3277, 3285, 3286, 3294, 3299, 3302, 3314, 3328, 3407, 3412, 3427, 3430, 3455, 3458, 3478, 3482, 3517, 3520, 3526, 3530, 3530, 3535, 3551, 3558, 3567, 3570, 3572, 3585, 3642, 3647, 3675, 3713, 3716, 3719, 3722, 3725, 3725, 3732, 3751, 3754, 3773, 3776, 3789, 3792, 3801, 3804, 3807, 3840, 3948, 3953, 4058, 4096, 4295, 4301, 4301, 4304, 4685, 4688, 4701, 4704, 4749, 4752, 4789, 4792, 4805, 4808, 4885, 4888, 4954, 4957, 4988, 4992, 5017, 5024, 5109, 5112, 5117, 5120, 5788, 5792, 5880, 5888, 5908, 5920, 5942, 5952, 5971, 5984, 6003, 6016, 6109, 6112, 6121, 6128, 6137, 6144, 6157, 6160, 6169, 6176, 6263, 6272, 6314, 6320, 6389, 6400, 6443, 6448, 6459, 6464, 6464, 6468, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6618, 6622, 6683, 6686, 6780, 6783, 6793, 6800, 6809, 6816, 6829, 6832, 6846, 6912, 6987, 6992, 7036, 7040, 7155, 7164, 7223, 7227, 7241, 7245, 7304, 7360, 7367, 7376, 7417, 7424, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8061, 8064, 8147, 8150, 8175, 8178, 8190, 8208, 8231, 8240, 8286, 8304, 8305, 8308, 8348, 8352, 8383, 8400, 8432, 8448, 8587, 8592, 9254, 9280, 9290, 9312, 11123, 11126, 11157, 11160, 11193, 11197, 11218, 11244, 11247, 11264, 11507, 11513, 11559, 11565, 11565, 11568, 11623, 11631, 11632, 11647, 11670, 11680, 11849, 11904, 12019, 12032, 12245, 12272, 12283, 12289, 12438, 12441, 12543, 12549, 12590, 12593, 12730, 12736, 12771, 12784, 19893, 19904, 40938, 40960, 42124, 42128, 42182, 42192, 42539, 42560, 42743, 42752, 42935, 42999, 43051, 43056, 43065, 43072, 43127, 43136, 43205, 43214, 43225, 43232, 43261, 43264, 43347, 43359, 43388, 43392, 43481, 43486, 43574, 43584, 43597, 43600, 43609, 43612, 43714, 43739, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43877, 43888, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64449, 64467, 64831, 64848, 64911, 64914, 64967, 65008, 65021, 65024, 65049, 65056, 65131, 65136, 65276, 65281, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65504, 65518, 65532, 65533]);
  4940. isNotPrint16 = new sliceType$4([173, 907, 909, 930, 1328, 1376, 1416, 1424, 1757, 2111, 2143, 2229, 2274, 2436, 2473, 2481, 2526, 2564, 2601, 2609, 2612, 2615, 2621, 2653, 2692, 2702, 2706, 2729, 2737, 2740, 2758, 2762, 2816, 2820, 2857, 2865, 2868, 2910, 2948, 2961, 2971, 2973, 3017, 3076, 3085, 3089, 3113, 3141, 3145, 3159, 3204, 3213, 3217, 3241, 3252, 3269, 3273, 3295, 3312, 3332, 3341, 3345, 3397, 3401, 3460, 3506, 3516, 3541, 3543, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3770, 3781, 3783, 3912, 3992, 4029, 4045, 4294, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, 4881, 5760, 5901, 5997, 6001, 6431, 6751, 7674, 8024, 8026, 8028, 8030, 8117, 8133, 8156, 8181, 8335, 11209, 11311, 11359, 11558, 11687, 11695, 11703, 11711, 11719, 11727, 11735, 11743, 11930, 12352, 12687, 12831, 13055, 42927, 43470, 43519, 43815, 43823, 64311, 64317, 64319, 64322, 64325, 65107, 65127, 65141, 65511]);
  4941. isPrint32 = new sliceType$5([65536, 65613, 65616, 65629, 65664, 65786, 65792, 65794, 65799, 65843, 65847, 65947, 65952, 65952, 66000, 66045, 66176, 66204, 66208, 66256, 66272, 66299, 66304, 66339, 66349, 66378, 66384, 66426, 66432, 66499, 66504, 66517, 66560, 66717, 66720, 66729, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 66927, 66927, 67072, 67382, 67392, 67413, 67424, 67431, 67584, 67589, 67592, 67640, 67644, 67644, 67647, 67742, 67751, 67759, 67808, 67829, 67835, 67867, 67871, 67897, 67903, 67903, 67968, 68023, 68028, 68047, 68050, 68102, 68108, 68147, 68152, 68154, 68159, 68167, 68176, 68184, 68192, 68255, 68288, 68326, 68331, 68342, 68352, 68405, 68409, 68437, 68440, 68466, 68472, 68497, 68505, 68508, 68521, 68527, 68608, 68680, 68736, 68786, 68800, 68850, 68858, 68863, 69216, 69246, 69632, 69709, 69714, 69743, 69759, 69825, 69840, 69864, 69872, 69881, 69888, 69955, 69968, 70006, 70016, 70093, 70096, 70132, 70144, 70206, 70272, 70313, 70320, 70378, 70384, 70393, 70400, 70412, 70415, 70416, 70419, 70457, 70460, 70468, 70471, 70472, 70475, 70477, 70480, 70480, 70487, 70487, 70493, 70499, 70502, 70508, 70512, 70516, 70656, 70749, 70784, 70855, 70864, 70873, 71040, 71093, 71096, 71133, 71168, 71236, 71248, 71257, 71264, 71276, 71296, 71351, 71360, 71369, 71424, 71449, 71453, 71467, 71472, 71487, 71840, 71922, 71935, 71935, 72192, 72263, 72272, 72323, 72326, 72354, 72384, 72440, 72704, 72773, 72784, 72812, 72816, 72847, 72850, 72886, 72960, 73014, 73018, 73031, 73040, 73049, 73728, 74649, 74752, 74868, 74880, 75075, 77824, 78894, 82944, 83526, 92160, 92728, 92736, 92777, 92782, 92783, 92880, 92909, 92912, 92917, 92928, 92997, 93008, 93047, 93053, 93071, 93952, 94020, 94032, 94078, 94095, 94111, 94176, 94177, 94208, 100332, 100352, 101106, 110592, 110878, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 113820, 113823, 118784, 119029, 119040, 119078, 119081, 119154, 119163, 119272, 119296, 119365, 119552, 119638, 119648, 119665, 119808, 119967, 119970, 119970, 119973, 119974, 119977, 120074, 120077, 120134, 120138, 120485, 120488, 120779, 120782, 121483, 121499, 121519, 122880, 122904, 122907, 122922, 124928, 125124, 125127, 125142, 125184, 125258, 125264, 125273, 125278, 125279, 126464, 126500, 126503, 126523, 126530, 126530, 126535, 126548, 126551, 126564, 126567, 126619, 126625, 126651, 126704, 126705, 126976, 127019, 127024, 127123, 127136, 127150, 127153, 127221, 127232, 127244, 127248, 127339, 127344, 127404, 127462, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 128724, 128736, 128748, 128752, 128760, 128768, 128883, 128896, 128980, 129024, 129035, 129040, 129095, 129104, 129113, 129120, 129159, 129168, 129197, 129280, 129291, 129296, 129356, 129360, 129387, 129408, 129431, 129472, 129472, 129488, 129510, 131072, 173782, 173824, 177972, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101, 917760, 917999]);
  4942. isNotPrint32 = new sliceType$4([12, 39, 59, 62, 399, 926, 2057, 2102, 2134, 2291, 2564, 2580, 2584, 4285, 4405, 4576, 4626, 4743, 4745, 4750, 4766, 4868, 4905, 4913, 4916, 5210, 5212, 6813, 7177, 7223, 7336, 7431, 7434, 7483, 7486, 9327, 27231, 27482, 27490, 54357, 54429, 54445, 54458, 54460, 54468, 54534, 54549, 54557, 54586, 54591, 54597, 54609, 55968, 57351, 57378, 57381, 60932, 60960, 60963, 60968, 60979, 60984, 60986, 61000, 61002, 61004, 61008, 61011, 61016, 61018, 61020, 61022, 61024, 61027, 61035, 61043, 61048, 61053, 61055, 61066, 61092, 61098, 61632, 61648, 61743, 63807]);
  4943. isGraphic = new sliceType$4([160, 5760, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8239, 8287, 12288]);
  4944. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  4945. };
  4946. $pkg.$init = $init;
  4947. return $pkg;
  4948. })();
  4949. $packages["internal/race"] = (function() {
  4950. var $pkg = {}, $init, Acquire, Release, ReleaseMerge, Disable, Enable, ReadRange, WriteRange;
  4951. Acquire = function(addr) {
  4952. var addr;
  4953. };
  4954. $pkg.Acquire = Acquire;
  4955. Release = function(addr) {
  4956. var addr;
  4957. };
  4958. $pkg.Release = Release;
  4959. ReleaseMerge = function(addr) {
  4960. var addr;
  4961. };
  4962. $pkg.ReleaseMerge = ReleaseMerge;
  4963. Disable = function() {
  4964. };
  4965. $pkg.Disable = Disable;
  4966. Enable = function() {
  4967. };
  4968. $pkg.Enable = Enable;
  4969. ReadRange = function(addr, len) {
  4970. var addr, len;
  4971. };
  4972. $pkg.ReadRange = ReadRange;
  4973. WriteRange = function(addr, len) {
  4974. var addr, len;
  4975. };
  4976. $pkg.WriteRange = WriteRange;
  4977. $init = function() {
  4978. $pkg.$init = function() {};
  4979. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  4980. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  4981. };
  4982. $pkg.$init = $init;
  4983. return $pkg;
  4984. })();
  4985. $packages["sync/atomic"] = (function() {
  4986. var $pkg = {}, $init, js, Value, ptrType, CompareAndSwapInt32, CompareAndSwapUint64, AddInt32, AddUint32, LoadInt32, LoadUint32, LoadUint64, StoreInt32, StoreUint32;
  4987. js = $packages["github.com/gopherjs/gopherjs/js"];
  4988. Value = $pkg.Value = $newType(0, $kindStruct, "atomic.Value", true, "sync/atomic", true, function(v_) {
  4989. this.$val = this;
  4990. if (arguments.length === 0) {
  4991. this.v = $ifaceNil;
  4992. return;
  4993. }
  4994. this.v = v_;
  4995. });
  4996. ptrType = $ptrType(Value);
  4997. CompareAndSwapInt32 = function(addr, old, new$1) {
  4998. var addr, new$1, old;
  4999. if (addr.$get() === old) {
  5000. addr.$set(new$1);
  5001. return true;
  5002. }
  5003. return false;
  5004. };
  5005. $pkg.CompareAndSwapInt32 = CompareAndSwapInt32;
  5006. CompareAndSwapUint64 = function(addr, old, new$1) {
  5007. var addr, new$1, old, x;
  5008. if ((x = addr.$get(), (x.$high === old.$high && x.$low === old.$low))) {
  5009. addr.$set(new$1);
  5010. return true;
  5011. }
  5012. return false;
  5013. };
  5014. $pkg.CompareAndSwapUint64 = CompareAndSwapUint64;
  5015. AddInt32 = function(addr, delta) {
  5016. var addr, delta, new$1;
  5017. new$1 = addr.$get() + delta >> 0;
  5018. addr.$set(new$1);
  5019. return new$1;
  5020. };
  5021. $pkg.AddInt32 = AddInt32;
  5022. AddUint32 = function(addr, delta) {
  5023. var addr, delta, new$1;
  5024. new$1 = addr.$get() + delta >>> 0;
  5025. addr.$set(new$1);
  5026. return new$1;
  5027. };
  5028. $pkg.AddUint32 = AddUint32;
  5029. LoadInt32 = function(addr) {
  5030. var addr;
  5031. return addr.$get();
  5032. };
  5033. $pkg.LoadInt32 = LoadInt32;
  5034. LoadUint32 = function(addr) {
  5035. var addr;
  5036. return addr.$get();
  5037. };
  5038. $pkg.LoadUint32 = LoadUint32;
  5039. LoadUint64 = function(addr) {
  5040. var addr;
  5041. return addr.$get();
  5042. };
  5043. $pkg.LoadUint64 = LoadUint64;
  5044. StoreInt32 = function(addr, val) {
  5045. var addr, val;
  5046. addr.$set(val);
  5047. };
  5048. $pkg.StoreInt32 = StoreInt32;
  5049. StoreUint32 = function(addr, val) {
  5050. var addr, val;
  5051. addr.$set(val);
  5052. };
  5053. $pkg.StoreUint32 = StoreUint32;
  5054. Value.ptr.prototype.Load = function() {
  5055. var v, x;
  5056. x = $ifaceNil;
  5057. v = this;
  5058. x = v.v;
  5059. return x;
  5060. };
  5061. Value.prototype.Load = function() { return this.$val.Load(); };
  5062. Value.ptr.prototype.Store = function(x) {
  5063. var v, x;
  5064. v = this;
  5065. if ($interfaceIsEqual(x, $ifaceNil)) {
  5066. $panic(new $String("sync/atomic: store of nil value into Value"));
  5067. }
  5068. if (!($interfaceIsEqual(v.v, $ifaceNil)) && !(x.constructor === v.v.constructor)) {
  5069. $panic(new $String("sync/atomic: store of inconsistently typed value into Value"));
  5070. }
  5071. v.v = x;
  5072. };
  5073. Value.prototype.Store = function(x) { return this.$val.Store(x); };
  5074. ptrType.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$emptyInterface], [], false)}];
  5075. Value.init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: $emptyInterface, tag: ""}]);
  5076. $init = function() {
  5077. $pkg.$init = function() {};
  5078. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  5079. $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  5080. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  5081. };
  5082. $pkg.$init = $init;
  5083. return $pkg;
  5084. })();
  5085. $packages["sync"] = (function() {
  5086. var $pkg = {}, $init, js, race, runtime, atomic, Pool, Mutex, Locker, Once, poolLocalInternal, poolLocal, notifyList, RWMutex, rlocker, ptrType, sliceType, ptrType$1, chanType, sliceType$1, ptrType$6, ptrType$7, sliceType$4, ptrType$8, ptrType$9, funcType, ptrType$16, funcType$2, ptrType$17, arrayType$2, semWaiters, semAwoken, expunged, allPools, runtime_registerPoolCleanup, runtime_SemacquireMutex, runtime_Semrelease, runtime_notifyListCheck, runtime_canSpin, runtime_nanotime, throw$1, poolCleanup, init, indexLocal, init$1, runtime_doSpin;
  5087. js = $packages["github.com/gopherjs/gopherjs/js"];
  5088. race = $packages["internal/race"];
  5089. runtime = $packages["runtime"];
  5090. atomic = $packages["sync/atomic"];
  5091. Pool = $pkg.Pool = $newType(0, $kindStruct, "sync.Pool", true, "sync", true, function(local_, localSize_, store_, New_) {
  5092. this.$val = this;
  5093. if (arguments.length === 0) {
  5094. this.local = 0;
  5095. this.localSize = 0;
  5096. this.store = sliceType$4.nil;
  5097. this.New = $throwNilPointerError;
  5098. return;
  5099. }
  5100. this.local = local_;
  5101. this.localSize = localSize_;
  5102. this.store = store_;
  5103. this.New = New_;
  5104. });
  5105. Mutex = $pkg.Mutex = $newType(0, $kindStruct, "sync.Mutex", true, "sync", true, function(state_, sema_) {
  5106. this.$val = this;
  5107. if (arguments.length === 0) {
  5108. this.state = 0;
  5109. this.sema = 0;
  5110. return;
  5111. }
  5112. this.state = state_;
  5113. this.sema = sema_;
  5114. });
  5115. Locker = $pkg.Locker = $newType(8, $kindInterface, "sync.Locker", true, "sync", true, null);
  5116. Once = $pkg.Once = $newType(0, $kindStruct, "sync.Once", true, "sync", true, function(m_, done_) {
  5117. this.$val = this;
  5118. if (arguments.length === 0) {
  5119. this.m = new Mutex.ptr(0, 0);
  5120. this.done = 0;
  5121. return;
  5122. }
  5123. this.m = m_;
  5124. this.done = done_;
  5125. });
  5126. poolLocalInternal = $pkg.poolLocalInternal = $newType(0, $kindStruct, "sync.poolLocalInternal", true, "sync", false, function(private$0_, shared_, Mutex_) {
  5127. this.$val = this;
  5128. if (arguments.length === 0) {
  5129. this.private$0 = $ifaceNil;
  5130. this.shared = sliceType$4.nil;
  5131. this.Mutex = new Mutex.ptr(0, 0);
  5132. return;
  5133. }
  5134. this.private$0 = private$0_;
  5135. this.shared = shared_;
  5136. this.Mutex = Mutex_;
  5137. });
  5138. poolLocal = $pkg.poolLocal = $newType(0, $kindStruct, "sync.poolLocal", true, "sync", false, function(poolLocalInternal_, pad_) {
  5139. this.$val = this;
  5140. if (arguments.length === 0) {
  5141. this.poolLocalInternal = new poolLocalInternal.ptr($ifaceNil, sliceType$4.nil, new Mutex.ptr(0, 0));
  5142. this.pad = arrayType$2.zero();
  5143. return;
  5144. }
  5145. this.poolLocalInternal = poolLocalInternal_;
  5146. this.pad = pad_;
  5147. });
  5148. notifyList = $pkg.notifyList = $newType(0, $kindStruct, "sync.notifyList", true, "sync", false, function(wait_, notify_, lock_, head_, tail_) {
  5149. this.$val = this;
  5150. if (arguments.length === 0) {
  5151. this.wait = 0;
  5152. this.notify = 0;
  5153. this.lock = 0;
  5154. this.head = 0;
  5155. this.tail = 0;
  5156. return;
  5157. }
  5158. this.wait = wait_;
  5159. this.notify = notify_;
  5160. this.lock = lock_;
  5161. this.head = head_;
  5162. this.tail = tail_;
  5163. });
  5164. RWMutex = $pkg.RWMutex = $newType(0, $kindStruct, "sync.RWMutex", true, "sync", true, function(w_, writerSem_, readerSem_, readerCount_, readerWait_) {
  5165. this.$val = this;
  5166. if (arguments.length === 0) {
  5167. this.w = new Mutex.ptr(0, 0);
  5168. this.writerSem = 0;
  5169. this.readerSem = 0;
  5170. this.readerCount = 0;
  5171. this.readerWait = 0;
  5172. return;
  5173. }
  5174. this.w = w_;
  5175. this.writerSem = writerSem_;
  5176. this.readerSem = readerSem_;
  5177. this.readerCount = readerCount_;
  5178. this.readerWait = readerWait_;
  5179. });
  5180. rlocker = $pkg.rlocker = $newType(0, $kindStruct, "sync.rlocker", true, "sync", false, function(w_, writerSem_, readerSem_, readerCount_, readerWait_) {
  5181. this.$val = this;
  5182. if (arguments.length === 0) {
  5183. this.w = new Mutex.ptr(0, 0);
  5184. this.writerSem = 0;
  5185. this.readerSem = 0;
  5186. this.readerCount = 0;
  5187. this.readerWait = 0;
  5188. return;
  5189. }
  5190. this.w = w_;
  5191. this.writerSem = writerSem_;
  5192. this.readerSem = readerSem_;
  5193. this.readerCount = readerCount_;
  5194. this.readerWait = readerWait_;
  5195. });
  5196. ptrType = $ptrType(Pool);
  5197. sliceType = $sliceType(ptrType);
  5198. ptrType$1 = $ptrType($Uint32);
  5199. chanType = $chanType($Bool, false, false);
  5200. sliceType$1 = $sliceType(chanType);
  5201. ptrType$6 = $ptrType($Int32);
  5202. ptrType$7 = $ptrType(poolLocal);
  5203. sliceType$4 = $sliceType($emptyInterface);
  5204. ptrType$8 = $ptrType(rlocker);
  5205. ptrType$9 = $ptrType(RWMutex);
  5206. funcType = $funcType([], [$emptyInterface], false);
  5207. ptrType$16 = $ptrType(Mutex);
  5208. funcType$2 = $funcType([], [], false);
  5209. ptrType$17 = $ptrType(Once);
  5210. arrayType$2 = $arrayType($Uint8, 100);
  5211. Pool.ptr.prototype.Get = function() {
  5212. var _r, p, x, x$1, x$2, $s, $r;
  5213. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; p = $f.p; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  5214. p = this;
  5215. /* */ if (p.store.$length === 0) { $s = 1; continue; }
  5216. /* */ $s = 2; continue;
  5217. /* if (p.store.$length === 0) { */ case 1:
  5218. /* */ if (!(p.New === $throwNilPointerError)) { $s = 3; continue; }
  5219. /* */ $s = 4; continue;
  5220. /* if (!(p.New === $throwNilPointerError)) { */ case 3:
  5221. _r = p.New(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  5222. $s = -1; return _r;
  5223. /* } */ case 4:
  5224. $s = -1; return $ifaceNil;
  5225. /* } */ case 2:
  5226. x$2 = (x = p.store, x$1 = p.store.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]));
  5227. p.store = $subslice(p.store, 0, (p.store.$length - 1 >> 0));
  5228. $s = -1; return x$2;
  5229. /* */ } return; } if ($f === undefined) { $f = { $blk: Pool.ptr.prototype.Get }; } $f._r = _r; $f.p = p; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f;
  5230. };
  5231. Pool.prototype.Get = function() { return this.$val.Get(); };
  5232. Pool.ptr.prototype.Put = function(x) {
  5233. var p, x;
  5234. p = this;
  5235. if ($interfaceIsEqual(x, $ifaceNil)) {
  5236. return;
  5237. }
  5238. p.store = $append(p.store, x);
  5239. };
  5240. Pool.prototype.Put = function(x) { return this.$val.Put(x); };
  5241. runtime_registerPoolCleanup = function(cleanup) {
  5242. var cleanup;
  5243. };
  5244. runtime_SemacquireMutex = function(s, lifo) {
  5245. var _entry, _entry$1, _entry$2, _entry$3, _entry$4, _key, _key$1, _key$2, _r, ch, lifo, s, $s, $r;
  5246. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _entry$3 = $f._entry$3; _entry$4 = $f._entry$4; _key = $f._key; _key$1 = $f._key$1; _key$2 = $f._key$2; _r = $f._r; ch = $f.ch; lifo = $f.lifo; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  5247. /* */ if (((s.$get() - (_entry = semAwoken[ptrType$1.keyFor(s)], _entry !== undefined ? _entry.v : 0) >>> 0)) === 0) { $s = 1; continue; }
  5248. /* */ $s = 2; continue;
  5249. /* if (((s.$get() - (_entry = semAwoken[ptrType$1.keyFor(s)], _entry !== undefined ? _entry.v : 0) >>> 0)) === 0) { */ case 1:
  5250. ch = new $Chan($Bool, 0);
  5251. if (lifo) {
  5252. _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key)] = { k: _key, v: $appendSlice(new sliceType$1([ch]), (_entry$1 = semWaiters[ptrType$1.keyFor(s)], _entry$1 !== undefined ? _entry$1.v : sliceType$1.nil)) };
  5253. } else {
  5254. _key$1 = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key$1)] = { k: _key$1, v: $append((_entry$2 = semWaiters[ptrType$1.keyFor(s)], _entry$2 !== undefined ? _entry$2.v : sliceType$1.nil), ch) };
  5255. }
  5256. _r = $recv(ch); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  5257. _r[0];
  5258. _key$2 = s; (semAwoken || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key$2)] = { k: _key$2, v: (_entry$3 = semAwoken[ptrType$1.keyFor(s)], _entry$3 !== undefined ? _entry$3.v : 0) - (1) >>> 0 };
  5259. if ((_entry$4 = semAwoken[ptrType$1.keyFor(s)], _entry$4 !== undefined ? _entry$4.v : 0) === 0) {
  5260. delete semAwoken[ptrType$1.keyFor(s)];
  5261. }
  5262. /* } */ case 2:
  5263. s.$set(s.$get() - (1) >>> 0);
  5264. $s = -1; return;
  5265. /* */ } return; } if ($f === undefined) { $f = { $blk: runtime_SemacquireMutex }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._entry$3 = _entry$3; $f._entry$4 = _entry$4; $f._key = _key; $f._key$1 = _key$1; $f._key$2 = _key$2; $f._r = _r; $f.ch = ch; $f.lifo = lifo; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  5266. };
  5267. runtime_Semrelease = function(s, handoff) {
  5268. var _entry, _entry$1, _key, _key$1, ch, handoff, s, w, $s, $r;
  5269. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _key = $f._key; _key$1 = $f._key$1; ch = $f.ch; handoff = $f.handoff; s = $f.s; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  5270. s.$set(s.$get() + (1) >>> 0);
  5271. w = (_entry = semWaiters[ptrType$1.keyFor(s)], _entry !== undefined ? _entry.v : sliceType$1.nil);
  5272. if (w.$length === 0) {
  5273. $s = -1; return;
  5274. }
  5275. ch = (0 >= w.$length ? ($throwRuntimeError("index out of range"), undefined) : w.$array[w.$offset + 0]);
  5276. w = $subslice(w, 1);
  5277. _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key)] = { k: _key, v: w };
  5278. if (w.$length === 0) {
  5279. delete semWaiters[ptrType$1.keyFor(s)];
  5280. }
  5281. _key$1 = s; (semAwoken || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key$1)] = { k: _key$1, v: (_entry$1 = semAwoken[ptrType$1.keyFor(s)], _entry$1 !== undefined ? _entry$1.v : 0) + (1) >>> 0 };
  5282. $r = $send(ch, true); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  5283. $s = -1; return;
  5284. /* */ } return; } if ($f === undefined) { $f = { $blk: runtime_Semrelease }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._key = _key; $f._key$1 = _key$1; $f.ch = ch; $f.handoff = handoff; $f.s = s; $f.w = w; $f.$s = $s; $f.$r = $r; return $f;
  5285. };
  5286. runtime_notifyListCheck = function(size) {
  5287. var size;
  5288. };
  5289. runtime_canSpin = function(i) {
  5290. var i;
  5291. return false;
  5292. };
  5293. runtime_nanotime = function() {
  5294. return $mul64($internalize(new ($global.Date)().getTime(), $Int64), new $Int64(0, 1000000));
  5295. };
  5296. throw$1 = function(s) {
  5297. var s;
  5298. $throwRuntimeError($externalize(s, $String));
  5299. };
  5300. Mutex.ptr.prototype.Lock = function() {
  5301. var awoke, delta, iter, m, new$1, old, queueLifo, starving, waitStartTime, x, x$1, $s, $r;
  5302. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; awoke = $f.awoke; delta = $f.delta; iter = $f.iter; m = $f.m; new$1 = $f.new$1; old = $f.old; queueLifo = $f.queueLifo; starving = $f.starving; waitStartTime = $f.waitStartTime; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  5303. m = this;
  5304. if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), 0, 1)) {
  5305. if (false) {
  5306. race.Acquire((m));
  5307. }
  5308. $s = -1; return;
  5309. }
  5310. waitStartTime = new $Int64(0, 0);
  5311. starving = false;
  5312. awoke = false;
  5313. iter = 0;
  5314. old = m.state;
  5315. /* while (true) { */ case 1:
  5316. /* */ if (((old & 5) === 1) && runtime_canSpin(iter)) { $s = 3; continue; }
  5317. /* */ $s = 4; continue;
  5318. /* if (((old & 5) === 1) && runtime_canSpin(iter)) { */ case 3:
  5319. if (!awoke && ((old & 2) === 0) && !(((old >> 3 >> 0) === 0)) && atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, old | 2)) {
  5320. awoke = true;
  5321. }
  5322. runtime_doSpin();
  5323. iter = iter + (1) >> 0;
  5324. old = m.state;
  5325. /* continue; */ $s = 1; continue;
  5326. /* } */ case 4:
  5327. new$1 = old;
  5328. if ((old & 4) === 0) {
  5329. new$1 = new$1 | (1);
  5330. }
  5331. if (!(((old & 5) === 0))) {
  5332. new$1 = new$1 + (8) >> 0;
  5333. }
  5334. if (starving && !(((old & 1) === 0))) {
  5335. new$1 = new$1 | (4);
  5336. }
  5337. if (awoke) {
  5338. if ((new$1 & 2) === 0) {
  5339. throw$1("sync: inconsistent mutex state");
  5340. }
  5341. new$1 = (new$1 & ~(2)) >> 0;
  5342. }
  5343. /* */ if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { $s = 5; continue; }
  5344. /* */ $s = 6; continue;
  5345. /* if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { */ case 5:
  5346. if ((old & 5) === 0) {
  5347. /* break; */ $s = 2; continue;
  5348. }
  5349. queueLifo = !((waitStartTime.$high === 0 && waitStartTime.$low === 0));
  5350. if ((waitStartTime.$high === 0 && waitStartTime.$low === 0)) {
  5351. waitStartTime = runtime_nanotime();
  5352. }
  5353. $r = runtime_SemacquireMutex((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), queueLifo); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  5354. starving = starving || (x = (x$1 = runtime_nanotime(), new $Int64(x$1.$high - waitStartTime.$high, x$1.$low - waitStartTime.$low)), (x.$high > 0 || (x.$high === 0 && x.$low > 1000000)));
  5355. old = m.state;
  5356. if (!(((old & 4) === 0))) {
  5357. if (!(((old & 3) === 0)) || ((old >> 3 >> 0) === 0)) {
  5358. throw$1("sync: inconsistent mutex state");
  5359. }
  5360. delta = -7;
  5361. if (!starving || ((old >> 3 >> 0) === 1)) {
  5362. delta = delta - (4) >> 0;
  5363. }
  5364. atomic.AddInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), delta);
  5365. /* break; */ $s = 2; continue;
  5366. }
  5367. awoke = true;
  5368. iter = 0;
  5369. $s = 7; continue;
  5370. /* } else { */ case 6:
  5371. old = m.state;
  5372. /* } */ case 7:
  5373. /* } */ $s = 1; continue; case 2:
  5374. if (false) {
  5375. race.Acquire((m));
  5376. }
  5377. $s = -1; return;
  5378. /* */ } return; } if ($f === undefined) { $f = { $blk: Mutex.ptr.prototype.Lock }; } $f.awoke = awoke; $f.delta = delta; $f.iter = iter; $f.m = m; $f.new$1 = new$1; $f.old = old; $f.queueLifo = queueLifo; $f.starving = starving; $f.waitStartTime = waitStartTime; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f;
  5379. };
  5380. Mutex.prototype.Lock = function() { return this.$val.Lock(); };
  5381. Mutex.ptr.prototype.Unlock = function() {
  5382. var m, new$1, old, $s, $r;
  5383. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; m = $f.m; new$1 = $f.new$1; old = $f.old; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  5384. m = this;
  5385. if (false) {
  5386. $unused(m.state);
  5387. race.Release((m));
  5388. }
  5389. new$1 = atomic.AddInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), -1);
  5390. if ((((new$1 + 1 >> 0)) & 1) === 0) {
  5391. throw$1("sync: unlock of unlocked mutex");
  5392. }
  5393. /* */ if ((new$1 & 4) === 0) { $s = 1; continue; }
  5394. /* */ $s = 2; continue;
  5395. /* if ((new$1 & 4) === 0) { */ case 1:
  5396. old = new$1;
  5397. /* while (true) { */ case 4:
  5398. if (((old >> 3 >> 0) === 0) || !(((old & 7) === 0))) {
  5399. $s = -1; return;
  5400. }
  5401. new$1 = ((old - 8 >> 0)) | 2;
  5402. /* */ if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { $s = 6; continue; }
  5403. /* */ $s = 7; continue;
  5404. /* if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { */ case 6:
  5405. $r = runtime_Semrelease((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), false); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  5406. $s = -1; return;
  5407. /* } */ case 7:
  5408. old = m.state;
  5409. /* } */ $s = 4; continue; case 5:
  5410. $s = 3; continue;
  5411. /* } else { */ case 2:
  5412. $r = runtime_Semrelease((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), true); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  5413. /* } */ case 3:
  5414. $s = -1; return;
  5415. /* */ } return; } if ($f === undefined) { $f = { $blk: Mutex.ptr.prototype.Unlock }; } $f.m = m; $f.new$1 = new$1; $f.old = old; $f.$s = $s; $f.$r = $r; return $f;
  5416. };
  5417. Mutex.prototype.Unlock = function() { return this.$val.Unlock(); };
  5418. Once.ptr.prototype.Do = function(f) {
  5419. var f, o, $s, $deferred, $r;
  5420. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; o = $f.o; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  5421. o = this;
  5422. if (atomic.LoadUint32((o.$ptr_done || (o.$ptr_done = new ptrType$1(function() { return this.$target.done; }, function($v) { this.$target.done = $v; }, o)))) === 1) {
  5423. $s = -1; return;
  5424. }
  5425. $r = o.m.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  5426. $deferred.push([$methodVal(o.m, "Unlock"), []]);
  5427. /* */ if (o.done === 0) { $s = 2; continue; }
  5428. /* */ $s = 3; continue;
  5429. /* if (o.done === 0) { */ case 2:
  5430. $deferred.push([atomic.StoreUint32, [(o.$ptr_done || (o.$ptr_done = new ptrType$1(function() { return this.$target.done; }, function($v) { this.$target.done = $v; }, o))), 1]]);
  5431. $r = f(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  5432. /* } */ case 3:
  5433. $s = -1; return;
  5434. /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: Once.ptr.prototype.Do }; } $f.f = f; $f.o = o; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  5435. };
  5436. Once.prototype.Do = function(f) { return this.$val.Do(f); };
  5437. poolCleanup = function() {
  5438. var _i, _i$1, _ref, _ref$1, i, i$1, j, l, p, x;
  5439. _ref = allPools;
  5440. _i = 0;
  5441. while (true) {
  5442. if (!(_i < _ref.$length)) { break; }
  5443. i = _i;
  5444. p = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  5445. ((i < 0 || i >= allPools.$length) ? ($throwRuntimeError("index out of range"), undefined) : allPools.$array[allPools.$offset + i] = ptrType.nil);
  5446. i$1 = 0;
  5447. while (true) {
  5448. if (!(i$1 < ((p.localSize >> 0)))) { break; }
  5449. l = indexLocal(p.local, i$1);
  5450. l.poolLocalInternal.private$0 = $ifaceNil;
  5451. _ref$1 = l.poolLocalInternal.shared;
  5452. _i$1 = 0;
  5453. while (true) {
  5454. if (!(_i$1 < _ref$1.$length)) { break; }
  5455. j = _i$1;
  5456. (x = l.poolLocalInternal.shared, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j] = $ifaceNil));
  5457. _i$1++;
  5458. }
  5459. l.poolLocalInternal.shared = sliceType$4.nil;
  5460. i$1 = i$1 + (1) >> 0;
  5461. }
  5462. p.local = 0;
  5463. p.localSize = 0;
  5464. _i++;
  5465. }
  5466. allPools = new sliceType([]);
  5467. };
  5468. init = function() {
  5469. runtime_registerPoolCleanup(poolCleanup);
  5470. };
  5471. indexLocal = function(l, i) {
  5472. var i, l, lp;
  5473. lp = (((l) + ($imul(((i >>> 0)), 128) >>> 0) >>> 0));
  5474. return ($pointerOfStructConversion(lp, ptrType$7));
  5475. };
  5476. init$1 = function() {
  5477. var n;
  5478. n = new notifyList.ptr(0, 0, 0, 0, 0);
  5479. runtime_notifyListCheck(20);
  5480. };
  5481. runtime_doSpin = function() {
  5482. $throwRuntimeError("native function not implemented: sync.runtime_doSpin");
  5483. };
  5484. RWMutex.ptr.prototype.RLock = function() {
  5485. var rw, $s, $r;
  5486. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; rw = $f.rw; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  5487. rw = this;
  5488. if (false) {
  5489. $unused(rw.w.state);
  5490. race.Disable();
  5491. }
  5492. /* */ if (atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), 1) < 0) { $s = 1; continue; }
  5493. /* */ $s = 2; continue;
  5494. /* if (atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), 1) < 0) { */ case 1:
  5495. $r = runtime_SemacquireMutex((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))), false); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  5496. /* } */ case 2:
  5497. if (false) {
  5498. race.Enable();
  5499. race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw)))));
  5500. }
  5501. $s = -1; return;
  5502. /* */ } return; } if ($f === undefined) { $f = { $blk: RWMutex.ptr.prototype.RLock }; } $f.rw = rw; $f.$s = $s; $f.$r = $r; return $f;
  5503. };
  5504. RWMutex.prototype.RLock = function() { return this.$val.RLock(); };
  5505. RWMutex.ptr.prototype.RUnlock = function() {
  5506. var r, rw, $s, $r;
  5507. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; r = $f.r; rw = $f.rw; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  5508. rw = this;
  5509. if (false) {
  5510. $unused(rw.w.state);
  5511. race.ReleaseMerge(((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw)))));
  5512. race.Disable();
  5513. }
  5514. r = atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), -1);
  5515. /* */ if (r < 0) { $s = 1; continue; }
  5516. /* */ $s = 2; continue;
  5517. /* if (r < 0) { */ case 1:
  5518. if (((r + 1 >> 0) === 0) || ((r + 1 >> 0) === -1073741824)) {
  5519. race.Enable();
  5520. throw$1("sync: RUnlock of unlocked RWMutex");
  5521. }
  5522. /* */ if (atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$6(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), -1) === 0) { $s = 3; continue; }
  5523. /* */ $s = 4; continue;
  5524. /* if (atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$6(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), -1) === 0) { */ case 3:
  5525. $r = runtime_Semrelease((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))), false); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  5526. /* } */ case 4:
  5527. /* } */ case 2:
  5528. if (false) {
  5529. race.Enable();
  5530. }
  5531. $s = -1; return;
  5532. /* */ } return; } if ($f === undefined) { $f = { $blk: RWMutex.ptr.prototype.RUnlock }; } $f.r = r; $f.rw = rw; $f.$s = $s; $f.$r = $r; return $f;
  5533. };
  5534. RWMutex.prototype.RUnlock = function() { return this.$val.RUnlock(); };
  5535. RWMutex.ptr.prototype.Lock = function() {
  5536. var r, rw, $s, $r;
  5537. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; r = $f.r; rw = $f.rw; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  5538. rw = this;
  5539. if (false) {
  5540. $unused(rw.w.state);
  5541. race.Disable();
  5542. }
  5543. $r = rw.w.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  5544. r = atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), -1073741824) + 1073741824 >> 0;
  5545. /* */ if (!((r === 0)) && !((atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$6(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), r) === 0))) { $s = 2; continue; }
  5546. /* */ $s = 3; continue;
  5547. /* if (!((r === 0)) && !((atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$6(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), r) === 0))) { */ case 2:
  5548. $r = runtime_SemacquireMutex((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))), false); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  5549. /* } */ case 3:
  5550. if (false) {
  5551. race.Enable();
  5552. race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw)))));
  5553. race.Acquire(((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw)))));
  5554. }
  5555. $s = -1; return;
  5556. /* */ } return; } if ($f === undefined) { $f = { $blk: RWMutex.ptr.prototype.Lock }; } $f.r = r; $f.rw = rw; $f.$s = $s; $f.$r = $r; return $f;
  5557. };
  5558. RWMutex.prototype.Lock = function() { return this.$val.Lock(); };
  5559. RWMutex.ptr.prototype.Unlock = function() {
  5560. var i, r, rw, $s, $r;
  5561. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; i = $f.i; r = $f.r; rw = $f.rw; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  5562. rw = this;
  5563. if (false) {
  5564. $unused(rw.w.state);
  5565. race.Release(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw)))));
  5566. race.Disable();
  5567. }
  5568. r = atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), 1073741824);
  5569. if (r >= 1073741824) {
  5570. race.Enable();
  5571. throw$1("sync: Unlock of unlocked RWMutex");
  5572. }
  5573. i = 0;
  5574. /* while (true) { */ case 1:
  5575. /* if (!(i < ((r >> 0)))) { break; } */ if(!(i < ((r >> 0)))) { $s = 2; continue; }
  5576. $r = runtime_Semrelease((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))), false); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  5577. i = i + (1) >> 0;
  5578. /* } */ $s = 1; continue; case 2:
  5579. $r = rw.w.Unlock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  5580. if (false) {
  5581. race.Enable();
  5582. }
  5583. $s = -1; return;
  5584. /* */ } return; } if ($f === undefined) { $f = { $blk: RWMutex.ptr.prototype.Unlock }; } $f.i = i; $f.r = r; $f.rw = rw; $f.$s = $s; $f.$r = $r; return $f;
  5585. };
  5586. RWMutex.prototype.Unlock = function() { return this.$val.Unlock(); };
  5587. RWMutex.ptr.prototype.RLocker = function() {
  5588. var rw;
  5589. rw = this;
  5590. return ($pointerOfStructConversion(rw, ptrType$8));
  5591. };
  5592. RWMutex.prototype.RLocker = function() { return this.$val.RLocker(); };
  5593. rlocker.ptr.prototype.Lock = function() {
  5594. var r, $s, $r;
  5595. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  5596. r = this;
  5597. $r = ($pointerOfStructConversion(r, ptrType$9)).RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  5598. $s = -1; return;
  5599. /* */ } return; } if ($f === undefined) { $f = { $blk: rlocker.ptr.prototype.Lock }; } $f.r = r; $f.$s = $s; $f.$r = $r; return $f;
  5600. };
  5601. rlocker.prototype.Lock = function() { return this.$val.Lock(); };
  5602. rlocker.ptr.prototype.Unlock = function() {
  5603. var r, $s, $r;
  5604. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  5605. r = this;
  5606. $r = ($pointerOfStructConversion(r, ptrType$9)).RUnlock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  5607. $s = -1; return;
  5608. /* */ } return; } if ($f === undefined) { $f = { $blk: rlocker.ptr.prototype.Unlock }; } $f.r = r; $f.$s = $s; $f.$r = $r; return $f;
  5609. };
  5610. rlocker.prototype.Unlock = function() { return this.$val.Unlock(); };
  5611. ptrType.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Put", name: "Put", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "getSlow", name: "getSlow", pkg: "sync", typ: $funcType([], [$emptyInterface], false)}, {prop: "pin", name: "pin", pkg: "sync", typ: $funcType([], [ptrType$7], false)}, {prop: "pinSlow", name: "pinSlow", pkg: "sync", typ: $funcType([], [ptrType$7], false)}];
  5612. ptrType$16.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}];
  5613. ptrType$17.methods = [{prop: "Do", name: "Do", pkg: "", typ: $funcType([funcType$2], [], false)}];
  5614. ptrType$9.methods = [{prop: "RLock", name: "RLock", pkg: "", typ: $funcType([], [], false)}, {prop: "RUnlock", name: "RUnlock", pkg: "", typ: $funcType([], [], false)}, {prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}, {prop: "RLocker", name: "RLocker", pkg: "", typ: $funcType([], [Locker], false)}];
  5615. ptrType$8.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}];
  5616. Pool.init("sync", [{prop: "local", name: "local", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "localSize", name: "localSize", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "store", name: "store", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "New", name: "New", embedded: false, exported: true, typ: funcType, tag: ""}]);
  5617. Mutex.init("sync", [{prop: "state", name: "state", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "sema", name: "sema", embedded: false, exported: false, typ: $Uint32, tag: ""}]);
  5618. Locker.init([{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]);
  5619. Once.init("sync", [{prop: "m", name: "m", embedded: false, exported: false, typ: Mutex, tag: ""}, {prop: "done", name: "done", embedded: false, exported: false, typ: $Uint32, tag: ""}]);
  5620. poolLocalInternal.init("sync", [{prop: "private$0", name: "private", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "shared", name: "shared", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "Mutex", name: "Mutex", embedded: true, exported: true, typ: Mutex, tag: ""}]);
  5621. poolLocal.init("sync", [{prop: "poolLocalInternal", name: "poolLocalInternal", embedded: true, exported: false, typ: poolLocalInternal, tag: ""}, {prop: "pad", name: "pad", embedded: false, exported: false, typ: arrayType$2, tag: ""}]);
  5622. notifyList.init("sync", [{prop: "wait", name: "wait", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "notify", name: "notify", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "lock", name: "lock", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "head", name: "head", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "tail", name: "tail", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}]);
  5623. RWMutex.init("sync", [{prop: "w", name: "w", embedded: false, exported: false, typ: Mutex, tag: ""}, {prop: "writerSem", name: "writerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerSem", name: "readerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerCount", name: "readerCount", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "readerWait", name: "readerWait", embedded: false, exported: false, typ: $Int32, tag: ""}]);
  5624. rlocker.init("sync", [{prop: "w", name: "w", embedded: false, exported: false, typ: Mutex, tag: ""}, {prop: "writerSem", name: "writerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerSem", name: "readerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerCount", name: "readerCount", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "readerWait", name: "readerWait", embedded: false, exported: false, typ: $Int32, tag: ""}]);
  5625. $init = function() {
  5626. $pkg.$init = function() {};
  5627. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  5628. $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  5629. $r = race.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  5630. $r = runtime.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  5631. $r = atomic.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  5632. allPools = sliceType.nil;
  5633. semWaiters = {};
  5634. semAwoken = {};
  5635. expunged = (new Uint8Array(8));
  5636. init();
  5637. init$1();
  5638. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  5639. };
  5640. $pkg.$init = $init;
  5641. return $pkg;
  5642. })();
  5643. $packages["unicode"] = (function() {
  5644. var $pkg = {}, $init, RangeTable, Range16, Range32, CaseRange, d, foldPair, arrayType, sliceType, sliceType$1, ptrType, sliceType$2, sliceType$3, sliceType$4, _C, _Cc, _Cf, _Co, _Cs, _L, _Ll, _Lm, _Lo, _Lt, _Lu, _M, _Mc, _Me, _Mn, _N, _Nd, _Nl, _No, _P, _Pc, _Pd, _Pe, _Pf, _Pi, _Po, _Ps, _S, _Sc, _Sk, _Sm, _So, _Z, _Zl, _Zp, _Zs, _Adlam, _Ahom, _Anatolian_Hieroglyphs, _Arabic, _Armenian, _Avestan, _Balinese, _Bamum, _Bassa_Vah, _Batak, _Bengali, _Bhaiksuki, _Bopomofo, _Brahmi, _Braille, _Buginese, _Buhid, _Canadian_Aboriginal, _Carian, _Caucasian_Albanian, _Chakma, _Cham, _Cherokee, _Common, _Coptic, _Cuneiform, _Cypriot, _Cyrillic, _Deseret, _Devanagari, _Duployan, _Egyptian_Hieroglyphs, _Elbasan, _Ethiopic, _Georgian, _Glagolitic, _Gothic, _Grantha, _Greek, _Gujarati, _Gurmukhi, _Han, _Hangul, _Hanunoo, _Hatran, _Hebrew, _Hiragana, _Imperial_Aramaic, _Inherited, _Inscriptional_Pahlavi, _Inscriptional_Parthian, _Javanese, _Kaithi, _Kannada, _Katakana, _Kayah_Li, _Kharoshthi, _Khmer, _Khojki, _Khudawadi, _Lao, _Latin, _Lepcha, _Limbu, _Linear_A, _Linear_B, _Lisu, _Lycian, _Lydian, _Mahajani, _Malayalam, _Mandaic, _Manichaean, _Marchen, _Masaram_Gondi, _Meetei_Mayek, _Mende_Kikakui, _Meroitic_Cursive, _Meroitic_Hieroglyphs, _Miao, _Modi, _Mongolian, _Mro, _Multani, _Myanmar, _Nabataean, _New_Tai_Lue, _Newa, _Nko, _Nushu, _Ogham, _Ol_Chiki, _Old_Hungarian, _Old_Italic, _Old_North_Arabian, _Old_Permic, _Old_Persian, _Old_South_Arabian, _Old_Turkic, _Oriya, _Osage, _Osmanya, _Pahawh_Hmong, _Palmyrene, _Pau_Cin_Hau, _Phags_Pa, _Phoenician, _Psalter_Pahlavi, _Rejang, _Runic, _Samaritan, _Saurashtra, _Sharada, _Shavian, _Siddham, _SignWriting, _Sinhala, _Sora_Sompeng, _Soyombo, _Sundanese, _Syloti_Nagri, _Syriac, _Tagalog, _Tagbanwa, _Tai_Le, _Tai_Tham, _Tai_Viet, _Takri, _Tamil, _Tangut, _Telugu, _Thaana, _Thai, _Tibetan, _Tifinagh, _Tirhuta, _Ugaritic, _Vai, _Warang_Citi, _Yi, _Zanabazar_Square, _CaseRanges, properties, asciiFold, caseOrbit, foldL, foldLl, foldLt, foldLu, foldM, foldMn, foldCommon, foldGreek, foldInherited, to, IsDigit, IsPrint, In, IsLetter, is16, is32, Is, isExcludingLatin, To, ToUpper, ToLower, SimpleFold;
  5645. RangeTable = $pkg.RangeTable = $newType(0, $kindStruct, "unicode.RangeTable", true, "unicode", true, function(R16_, R32_, LatinOffset_) {
  5646. this.$val = this;
  5647. if (arguments.length === 0) {
  5648. this.R16 = sliceType.nil;
  5649. this.R32 = sliceType$1.nil;
  5650. this.LatinOffset = 0;
  5651. return;
  5652. }
  5653. this.R16 = R16_;
  5654. this.R32 = R32_;
  5655. this.LatinOffset = LatinOffset_;
  5656. });
  5657. Range16 = $pkg.Range16 = $newType(0, $kindStruct, "unicode.Range16", true, "unicode", true, function(Lo_, Hi_, Stride_) {
  5658. this.$val = this;
  5659. if (arguments.length === 0) {
  5660. this.Lo = 0;
  5661. this.Hi = 0;
  5662. this.Stride = 0;
  5663. return;
  5664. }
  5665. this.Lo = Lo_;
  5666. this.Hi = Hi_;
  5667. this.Stride = Stride_;
  5668. });
  5669. Range32 = $pkg.Range32 = $newType(0, $kindStruct, "unicode.Range32", true, "unicode", true, function(Lo_, Hi_, Stride_) {
  5670. this.$val = this;
  5671. if (arguments.length === 0) {
  5672. this.Lo = 0;
  5673. this.Hi = 0;
  5674. this.Stride = 0;
  5675. return;
  5676. }
  5677. this.Lo = Lo_;
  5678. this.Hi = Hi_;
  5679. this.Stride = Stride_;
  5680. });
  5681. CaseRange = $pkg.CaseRange = $newType(0, $kindStruct, "unicode.CaseRange", true, "unicode", true, function(Lo_, Hi_, Delta_) {
  5682. this.$val = this;
  5683. if (arguments.length === 0) {
  5684. this.Lo = 0;
  5685. this.Hi = 0;
  5686. this.Delta = arrayType.zero();
  5687. return;
  5688. }
  5689. this.Lo = Lo_;
  5690. this.Hi = Hi_;
  5691. this.Delta = Delta_;
  5692. });
  5693. d = $pkg.d = $newType(12, $kindArray, "unicode.d", true, "unicode", false, null);
  5694. foldPair = $pkg.foldPair = $newType(0, $kindStruct, "unicode.foldPair", true, "unicode", false, function(From_, To_) {
  5695. this.$val = this;
  5696. if (arguments.length === 0) {
  5697. this.From = 0;
  5698. this.To = 0;
  5699. return;
  5700. }
  5701. this.From = From_;
  5702. this.To = To_;
  5703. });
  5704. arrayType = $arrayType($Int32, 3);
  5705. sliceType = $sliceType(Range16);
  5706. sliceType$1 = $sliceType(Range32);
  5707. ptrType = $ptrType(RangeTable);
  5708. sliceType$2 = $sliceType(ptrType);
  5709. sliceType$3 = $sliceType(CaseRange);
  5710. sliceType$4 = $sliceType(foldPair);
  5711. to = function(_case, r, caseRange) {
  5712. var _case, _q, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, caseRange, cr, delta, foundMapping, hi, lo, m, mappedRune, r, x;
  5713. mappedRune = 0;
  5714. foundMapping = false;
  5715. if (_case < 0 || 3 <= _case) {
  5716. _tmp = 65533;
  5717. _tmp$1 = false;
  5718. mappedRune = _tmp;
  5719. foundMapping = _tmp$1;
  5720. return [mappedRune, foundMapping];
  5721. }
  5722. lo = 0;
  5723. hi = caseRange.$length;
  5724. while (true) {
  5725. if (!(lo < hi)) { break; }
  5726. m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0;
  5727. cr = ((m < 0 || m >= caseRange.$length) ? ($throwRuntimeError("index out of range"), undefined) : caseRange.$array[caseRange.$offset + m]);
  5728. if (((cr.Lo >> 0)) <= r && r <= ((cr.Hi >> 0))) {
  5729. delta = ((x = cr.Delta, ((_case < 0 || _case >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[_case])));
  5730. if (delta > 1114111) {
  5731. _tmp$2 = ((cr.Lo >> 0)) + ((((((r - ((cr.Lo >> 0)) >> 0)) & ~1) >> 0) | (((_case & 1) >> 0)))) >> 0;
  5732. _tmp$3 = true;
  5733. mappedRune = _tmp$2;
  5734. foundMapping = _tmp$3;
  5735. return [mappedRune, foundMapping];
  5736. }
  5737. _tmp$4 = r + delta >> 0;
  5738. _tmp$5 = true;
  5739. mappedRune = _tmp$4;
  5740. foundMapping = _tmp$5;
  5741. return [mappedRune, foundMapping];
  5742. }
  5743. if (r < ((cr.Lo >> 0))) {
  5744. hi = m;
  5745. } else {
  5746. lo = m + 1 >> 0;
  5747. }
  5748. }
  5749. _tmp$6 = r;
  5750. _tmp$7 = false;
  5751. mappedRune = _tmp$6;
  5752. foundMapping = _tmp$7;
  5753. return [mappedRune, foundMapping];
  5754. };
  5755. IsDigit = function(r) {
  5756. var r;
  5757. if (r <= 255) {
  5758. return 48 <= r && r <= 57;
  5759. }
  5760. return isExcludingLatin($pkg.Digit, r);
  5761. };
  5762. $pkg.IsDigit = IsDigit;
  5763. IsPrint = function(r) {
  5764. var r, x;
  5765. if (((r >>> 0)) <= 255) {
  5766. return !(((((x = ((r << 24 >>> 24)), ((x < 0 || x >= properties.length) ? ($throwRuntimeError("index out of range"), undefined) : properties[x])) & 128) >>> 0) === 0));
  5767. }
  5768. return In(r, $pkg.PrintRanges);
  5769. };
  5770. $pkg.IsPrint = IsPrint;
  5771. In = function(r, ranges) {
  5772. var _i, _ref, inside, r, ranges;
  5773. _ref = ranges;
  5774. _i = 0;
  5775. while (true) {
  5776. if (!(_i < _ref.$length)) { break; }
  5777. inside = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  5778. if (Is(inside, r)) {
  5779. return true;
  5780. }
  5781. _i++;
  5782. }
  5783. return false;
  5784. };
  5785. $pkg.In = In;
  5786. IsLetter = function(r) {
  5787. var r, x;
  5788. if (((r >>> 0)) <= 255) {
  5789. return !(((((x = ((r << 24 >>> 24)), ((x < 0 || x >= properties.length) ? ($throwRuntimeError("index out of range"), undefined) : properties[x])) & 96) >>> 0) === 0));
  5790. }
  5791. return isExcludingLatin($pkg.Letter, r);
  5792. };
  5793. $pkg.IsLetter = IsLetter;
  5794. is16 = function(ranges, r) {
  5795. var _i, _q, _r, _r$1, _ref, hi, i, lo, m, r, range_, range_$1, ranges;
  5796. if (ranges.$length <= 18 || r <= 255) {
  5797. _ref = ranges;
  5798. _i = 0;
  5799. while (true) {
  5800. if (!(_i < _ref.$length)) { break; }
  5801. i = _i;
  5802. range_ = ((i < 0 || i >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : ranges.$array[ranges.$offset + i]);
  5803. if (r < range_.Lo) {
  5804. return false;
  5805. }
  5806. if (r <= range_.Hi) {
  5807. return (range_.Stride === 1) || ((_r = ((r - range_.Lo << 16 >>> 16)) % range_.Stride, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0);
  5808. }
  5809. _i++;
  5810. }
  5811. return false;
  5812. }
  5813. lo = 0;
  5814. hi = ranges.$length;
  5815. while (true) {
  5816. if (!(lo < hi)) { break; }
  5817. m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0;
  5818. range_$1 = ((m < 0 || m >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : ranges.$array[ranges.$offset + m]);
  5819. if (range_$1.Lo <= r && r <= range_$1.Hi) {
  5820. return (range_$1.Stride === 1) || ((_r$1 = ((r - range_$1.Lo << 16 >>> 16)) % range_$1.Stride, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0);
  5821. }
  5822. if (r < range_$1.Lo) {
  5823. hi = m;
  5824. } else {
  5825. lo = m + 1 >> 0;
  5826. }
  5827. }
  5828. return false;
  5829. };
  5830. is32 = function(ranges, r) {
  5831. var _i, _q, _r, _r$1, _ref, hi, i, lo, m, r, range_, range_$1, ranges;
  5832. if (ranges.$length <= 18) {
  5833. _ref = ranges;
  5834. _i = 0;
  5835. while (true) {
  5836. if (!(_i < _ref.$length)) { break; }
  5837. i = _i;
  5838. range_ = ((i < 0 || i >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : ranges.$array[ranges.$offset + i]);
  5839. if (r < range_.Lo) {
  5840. return false;
  5841. }
  5842. if (r <= range_.Hi) {
  5843. return (range_.Stride === 1) || ((_r = ((r - range_.Lo >>> 0)) % range_.Stride, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0);
  5844. }
  5845. _i++;
  5846. }
  5847. return false;
  5848. }
  5849. lo = 0;
  5850. hi = ranges.$length;
  5851. while (true) {
  5852. if (!(lo < hi)) { break; }
  5853. m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0;
  5854. range_$1 = $clone(((m < 0 || m >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : ranges.$array[ranges.$offset + m]), Range32);
  5855. if (range_$1.Lo <= r && r <= range_$1.Hi) {
  5856. return (range_$1.Stride === 1) || ((_r$1 = ((r - range_$1.Lo >>> 0)) % range_$1.Stride, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0);
  5857. }
  5858. if (r < range_$1.Lo) {
  5859. hi = m;
  5860. } else {
  5861. lo = m + 1 >> 0;
  5862. }
  5863. }
  5864. return false;
  5865. };
  5866. Is = function(rangeTab, r) {
  5867. var r, r16, r32, rangeTab, x;
  5868. r16 = rangeTab.R16;
  5869. if (r16.$length > 0 && r <= (((x = r16.$length - 1 >> 0, ((x < 0 || x >= r16.$length) ? ($throwRuntimeError("index out of range"), undefined) : r16.$array[r16.$offset + x])).Hi >> 0))) {
  5870. return is16(r16, ((r << 16 >>> 16)));
  5871. }
  5872. r32 = rangeTab.R32;
  5873. if (r32.$length > 0 && r >= (((0 >= r32.$length ? ($throwRuntimeError("index out of range"), undefined) : r32.$array[r32.$offset + 0]).Lo >> 0))) {
  5874. return is32(r32, ((r >>> 0)));
  5875. }
  5876. return false;
  5877. };
  5878. $pkg.Is = Is;
  5879. isExcludingLatin = function(rangeTab, r) {
  5880. var off, r, r16, r32, rangeTab, x;
  5881. r16 = rangeTab.R16;
  5882. off = rangeTab.LatinOffset;
  5883. if (r16.$length > off && r <= (((x = r16.$length - 1 >> 0, ((x < 0 || x >= r16.$length) ? ($throwRuntimeError("index out of range"), undefined) : r16.$array[r16.$offset + x])).Hi >> 0))) {
  5884. return is16($subslice(r16, off), ((r << 16 >>> 16)));
  5885. }
  5886. r32 = rangeTab.R32;
  5887. if (r32.$length > 0 && r >= (((0 >= r32.$length ? ($throwRuntimeError("index out of range"), undefined) : r32.$array[r32.$offset + 0]).Lo >> 0))) {
  5888. return is32(r32, ((r >>> 0)));
  5889. }
  5890. return false;
  5891. };
  5892. To = function(_case, r) {
  5893. var _case, _tuple, r;
  5894. _tuple = to(_case, r, $pkg.CaseRanges);
  5895. r = _tuple[0];
  5896. return r;
  5897. };
  5898. $pkg.To = To;
  5899. ToUpper = function(r) {
  5900. var r;
  5901. if (r <= 127) {
  5902. if (97 <= r && r <= 122) {
  5903. r = r - (32) >> 0;
  5904. }
  5905. return r;
  5906. }
  5907. return To(0, r);
  5908. };
  5909. $pkg.ToUpper = ToUpper;
  5910. ToLower = function(r) {
  5911. var r;
  5912. if (r <= 127) {
  5913. if (65 <= r && r <= 90) {
  5914. r = r + (32) >> 0;
  5915. }
  5916. return r;
  5917. }
  5918. return To(1, r);
  5919. };
  5920. $pkg.ToLower = ToLower;
  5921. SimpleFold = function(r) {
  5922. var _q, hi, l, lo, m, r;
  5923. if (r < 0 || r > 1114111) {
  5924. return r;
  5925. }
  5926. if (((r >> 0)) < 128) {
  5927. return ((((r < 0 || r >= asciiFold.length) ? ($throwRuntimeError("index out of range"), undefined) : asciiFold[r]) >> 0));
  5928. }
  5929. lo = 0;
  5930. hi = caseOrbit.$length;
  5931. while (true) {
  5932. if (!(lo < hi)) { break; }
  5933. m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0;
  5934. if (((((m < 0 || m >= caseOrbit.$length) ? ($throwRuntimeError("index out of range"), undefined) : caseOrbit.$array[caseOrbit.$offset + m]).From >> 0)) < r) {
  5935. lo = m + 1 >> 0;
  5936. } else {
  5937. hi = m;
  5938. }
  5939. }
  5940. if (lo < caseOrbit.$length && (((((lo < 0 || lo >= caseOrbit.$length) ? ($throwRuntimeError("index out of range"), undefined) : caseOrbit.$array[caseOrbit.$offset + lo]).From >> 0)) === r)) {
  5941. return ((((lo < 0 || lo >= caseOrbit.$length) ? ($throwRuntimeError("index out of range"), undefined) : caseOrbit.$array[caseOrbit.$offset + lo]).To >> 0));
  5942. }
  5943. l = ToLower(r);
  5944. if (!((l === r))) {
  5945. return l;
  5946. }
  5947. return ToUpper(r);
  5948. };
  5949. $pkg.SimpleFold = SimpleFold;
  5950. RangeTable.init("", [{prop: "R16", name: "R16", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "R32", name: "R32", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "LatinOffset", name: "LatinOffset", embedded: false, exported: true, typ: $Int, tag: ""}]);
  5951. Range16.init("", [{prop: "Lo", name: "Lo", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Hi", name: "Hi", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Stride", name: "Stride", embedded: false, exported: true, typ: $Uint16, tag: ""}]);
  5952. Range32.init("", [{prop: "Lo", name: "Lo", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Hi", name: "Hi", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Stride", name: "Stride", embedded: false, exported: true, typ: $Uint32, tag: ""}]);
  5953. CaseRange.init("", [{prop: "Lo", name: "Lo", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Hi", name: "Hi", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Delta", name: "Delta", embedded: false, exported: true, typ: d, tag: ""}]);
  5954. d.init($Int32, 3);
  5955. foldPair.init("", [{prop: "From", name: "From", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "To", name: "To", embedded: false, exported: true, typ: $Uint16, tag: ""}]);
  5956. $init = function() {
  5957. $pkg.$init = function() {};
  5958. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  5959. _C = new RangeTable.ptr(new sliceType([new Range16.ptr(0, 31, 1), new Range16.ptr(127, 159, 1), new Range16.ptr(173, 1536, 1363), new Range16.ptr(1537, 1541, 1), new Range16.ptr(1564, 1757, 193), new Range16.ptr(1807, 2274, 467), new Range16.ptr(6158, 8203, 2045), new Range16.ptr(8204, 8207, 1), new Range16.ptr(8234, 8238, 1), new Range16.ptr(8288, 8292, 1), new Range16.ptr(8294, 8303, 1), new Range16.ptr(55296, 63743, 1), new Range16.ptr(65279, 65529, 250), new Range16.ptr(65530, 65531, 1)]), new sliceType$1([new Range32.ptr(69821, 113824, 44003), new Range32.ptr(113825, 113827, 1), new Range32.ptr(119155, 119162, 1), new Range32.ptr(917505, 917536, 31), new Range32.ptr(917537, 917631, 1), new Range32.ptr(983040, 1048573, 1), new Range32.ptr(1048576, 1114109, 1)]), 2);
  5960. _Cc = new RangeTable.ptr(new sliceType([new Range16.ptr(0, 31, 1), new Range16.ptr(127, 159, 1)]), sliceType$1.nil, 2);
  5961. _Cf = new RangeTable.ptr(new sliceType([new Range16.ptr(173, 1536, 1363), new Range16.ptr(1537, 1541, 1), new Range16.ptr(1564, 1757, 193), new Range16.ptr(1807, 2274, 467), new Range16.ptr(6158, 8203, 2045), new Range16.ptr(8204, 8207, 1), new Range16.ptr(8234, 8238, 1), new Range16.ptr(8288, 8292, 1), new Range16.ptr(8294, 8303, 1), new Range16.ptr(65279, 65529, 250), new Range16.ptr(65530, 65531, 1)]), new sliceType$1([new Range32.ptr(69821, 113824, 44003), new Range32.ptr(113825, 113827, 1), new Range32.ptr(119155, 119162, 1), new Range32.ptr(917505, 917536, 31), new Range32.ptr(917537, 917631, 1)]), 0);
  5962. _Co = new RangeTable.ptr(new sliceType([new Range16.ptr(57344, 63743, 1)]), new sliceType$1([new Range32.ptr(983040, 1048573, 1), new Range32.ptr(1048576, 1114109, 1)]), 0);
  5963. _Cs = new RangeTable.ptr(new sliceType([new Range16.ptr(55296, 57343, 1)]), sliceType$1.nil, 0);
  5964. _L = new RangeTable.ptr(new sliceType([new Range16.ptr(65, 90, 1), new Range16.ptr(97, 122, 1), new Range16.ptr(170, 181, 11), new Range16.ptr(186, 192, 6), new Range16.ptr(193, 214, 1), new Range16.ptr(216, 246, 1), new Range16.ptr(248, 705, 1), new Range16.ptr(710, 721, 1), new Range16.ptr(736, 740, 1), new Range16.ptr(748, 750, 2), new Range16.ptr(880, 884, 1), new Range16.ptr(886, 887, 1), new Range16.ptr(890, 893, 1), new Range16.ptr(895, 902, 7), new Range16.ptr(904, 906, 1), new Range16.ptr(908, 910, 2), new Range16.ptr(911, 929, 1), new Range16.ptr(931, 1013, 1), new Range16.ptr(1015, 1153, 1), new Range16.ptr(1162, 1327, 1), new Range16.ptr(1329, 1366, 1), new Range16.ptr(1369, 1377, 8), new Range16.ptr(1378, 1415, 1), new Range16.ptr(1488, 1514, 1), new Range16.ptr(1520, 1522, 1), new Range16.ptr(1568, 1610, 1), new Range16.ptr(1646, 1647, 1), new Range16.ptr(1649, 1747, 1), new Range16.ptr(1749, 1765, 16), new Range16.ptr(1766, 1774, 8), new Range16.ptr(1775, 1786, 11), new Range16.ptr(1787, 1788, 1), new Range16.ptr(1791, 1808, 17), new Range16.ptr(1810, 1839, 1), new Range16.ptr(1869, 1957, 1), new Range16.ptr(1969, 1994, 25), new Range16.ptr(1995, 2026, 1), new Range16.ptr(2036, 2037, 1), new Range16.ptr(2042, 2048, 6), new Range16.ptr(2049, 2069, 1), new Range16.ptr(2074, 2084, 10), new Range16.ptr(2088, 2112, 24), new Range16.ptr(2113, 2136, 1), new Range16.ptr(2144, 2154, 1), new Range16.ptr(2208, 2228, 1), new Range16.ptr(2230, 2237, 1), new Range16.ptr(2308, 2361, 1), new Range16.ptr(2365, 2384, 19), new Range16.ptr(2392, 2401, 1), new Range16.ptr(2417, 2432, 1), new Range16.ptr(2437, 2444, 1), new Range16.ptr(2447, 2448, 1), new Range16.ptr(2451, 2472, 1), new Range16.ptr(2474, 2480, 1), new Range16.ptr(2482, 2486, 4), new Range16.ptr(2487, 2489, 1), new Range16.ptr(2493, 2510, 17), new Range16.ptr(2524, 2525, 1), new Range16.ptr(2527, 2529, 1), new Range16.ptr(2544, 2545, 1), new Range16.ptr(2556, 2565, 9), new Range16.ptr(2566, 2570, 1), new Range16.ptr(2575, 2576, 1), new Range16.ptr(2579, 2600, 1), new Range16.ptr(2602, 2608, 1), new Range16.ptr(2610, 2611, 1), new Range16.ptr(2613, 2614, 1), new Range16.ptr(2616, 2617, 1), new Range16.ptr(2649, 2652, 1), new Range16.ptr(2654, 2674, 20), new Range16.ptr(2675, 2676, 1), new Range16.ptr(2693, 2701, 1), new Range16.ptr(2703, 2705, 1), new Range16.ptr(2707, 2728, 1), new Range16.ptr(2730, 2736, 1), new Range16.ptr(2738, 2739, 1), new Range16.ptr(2741, 2745, 1), new Range16.ptr(2749, 2768, 19), new Range16.ptr(2784, 2785, 1), new Range16.ptr(2809, 2821, 12), new Range16.ptr(2822, 2828, 1), new Range16.ptr(2831, 2832, 1), new Range16.ptr(2835, 2856, 1), new Range16.ptr(2858, 2864, 1), new Range16.ptr(2866, 2867, 1), new Range16.ptr(2869, 2873, 1), new Range16.ptr(2877, 2908, 31), new Range16.ptr(2909, 2911, 2), new Range16.ptr(2912, 2913, 1), new Range16.ptr(2929, 2947, 18), new Range16.ptr(2949, 2954, 1), new Range16.ptr(2958, 2960, 1), new Range16.ptr(2962, 2965, 1), new Range16.ptr(2969, 2970, 1), new Range16.ptr(2972, 2974, 2), new Range16.ptr(2975, 2979, 4), new Range16.ptr(2980, 2984, 4), new Range16.ptr(2985, 2986, 1), new Range16.ptr(2990, 3001, 1), new Range16.ptr(3024, 3077, 53), new Range16.ptr(3078, 3084, 1), new Range16.ptr(3086, 3088, 1), new Range16.ptr(3090, 3112, 1), new Range16.ptr(3114, 3129, 1), new Range16.ptr(3133, 3160, 27), new Range16.ptr(3161, 3162, 1), new Range16.ptr(3168, 3169, 1), new Range16.ptr(3200, 3205, 5), new Range16.ptr(3206, 3212, 1), new Range16.ptr(3214, 3216, 1), new Range16.ptr(3218, 3240, 1), new Range16.ptr(3242, 3251, 1), new Range16.ptr(3253, 3257, 1), new Range16.ptr(3261, 3294, 33), new Range16.ptr(3296, 3297, 1), new Range16.ptr(3313, 3314, 1), new Range16.ptr(3333, 3340, 1), new Range16.ptr(3342, 3344, 1), new Range16.ptr(3346, 3386, 1), new Range16.ptr(3389, 3406, 17), new Range16.ptr(3412, 3414, 1), new Range16.ptr(3423, 3425, 1), new Range16.ptr(3450, 3455, 1), new Range16.ptr(3461, 3478, 1), new Range16.ptr(3482, 3505, 1), new Range16.ptr(3507, 3515, 1), new Range16.ptr(3517, 3520, 3), new Range16.ptr(3521, 3526, 1), new Range16.ptr(3585, 3632, 1), new Range16.ptr(3634, 3635, 1), new Range16.ptr(3648, 3654, 1), new Range16.ptr(3713, 3714, 1), new Range16.ptr(3716, 3719, 3), new Range16.ptr(3720, 3722, 2), new Range16.ptr(3725, 3732, 7), new Range16.ptr(3733, 3735, 1), new Range16.ptr(3737, 3743, 1), new Range16.ptr(3745, 3747, 1), new Range16.ptr(3749, 3751, 2), new Range16.ptr(3754, 3755, 1), new Range16.ptr(3757, 3760, 1), new Range16.ptr(3762, 3763, 1), new Range16.ptr(3773, 3776, 3), new Range16.ptr(3777, 3780, 1), new Range16.ptr(3782, 3804, 22), new Range16.ptr(3805, 3807, 1), new Range16.ptr(3840, 3904, 64), new Range16.ptr(3905, 3911, 1), new Range16.ptr(3913, 3948, 1), new Range16.ptr(3976, 3980, 1), new Range16.ptr(4096, 4138, 1), new Range16.ptr(4159, 4176, 17), new Range16.ptr(4177, 4181, 1), new Range16.ptr(4186, 4189, 1), new Range16.ptr(4193, 4197, 4), new Range16.ptr(4198, 4206, 8), new Range16.ptr(4207, 4208, 1), new Range16.ptr(4213, 4225, 1), new Range16.ptr(4238, 4256, 18), new Range16.ptr(4257, 4293, 1), new Range16.ptr(4295, 4301, 6), new Range16.ptr(4304, 4346, 1), new Range16.ptr(4348, 4680, 1), new Range16.ptr(4682, 4685, 1), new Range16.ptr(4688, 4694, 1), new Range16.ptr(4696, 4698, 2), new Range16.ptr(4699, 4701, 1), new Range16.ptr(4704, 4744, 1), new Range16.ptr(4746, 4749, 1), new Range16.ptr(4752, 4784, 1), new Range16.ptr(4786, 4789, 1), new Range16.ptr(4792, 4798, 1), new Range16.ptr(4800, 4802, 2), new Range16.ptr(4803, 4805, 1), new Range16.ptr(4808, 4822, 1), new Range16.ptr(4824, 4880, 1), new Range16.ptr(4882, 4885, 1), new Range16.ptr(4888, 4954, 1), new Range16.ptr(4992, 5007, 1), new Range16.ptr(5024, 5109, 1), new Range16.ptr(5112, 5117, 1), new Range16.ptr(5121, 5740, 1), new Range16.ptr(5743, 5759, 1), new Range16.ptr(5761, 5786, 1), new Range16.ptr(5792, 5866, 1), new Range16.ptr(5873, 5880, 1), new Range16.ptr(5888, 5900, 1), new Range16.ptr(5902, 5905, 1), new Range16.ptr(5920, 5937, 1), new Range16.ptr(5952, 5969, 1), new Range16.ptr(5984, 5996, 1), new Range16.ptr(5998, 6000, 1), new Range16.ptr(6016, 6067, 1), new Range16.ptr(6103, 6108, 5), new Range16.ptr(6176, 6263, 1), new Range16.ptr(6272, 6276, 1), new Range16.ptr(6279, 6312, 1), new Range16.ptr(6314, 6320, 6), new Range16.ptr(6321, 6389, 1), new Range16.ptr(6400, 6430, 1), new Range16.ptr(6480, 6509, 1), new Range16.ptr(6512, 6516, 1), new Range16.ptr(6528, 6571, 1), new Range16.ptr(6576, 6601, 1), new Range16.ptr(6656, 6678, 1), new Range16.ptr(6688, 6740, 1), new Range16.ptr(6823, 6917, 94), new Range16.ptr(6918, 6963, 1), new Range16.ptr(6981, 6987, 1), new Range16.ptr(7043, 7072, 1), new Range16.ptr(7086, 7087, 1), new Range16.ptr(7098, 7141, 1), new Range16.ptr(7168, 7203, 1), new Range16.ptr(7245, 7247, 1), new Range16.ptr(7258, 7293, 1), new Range16.ptr(7296, 7304, 1), new Range16.ptr(7401, 7404, 1), new Range16.ptr(7406, 7409, 1), new Range16.ptr(7413, 7414, 1), new Range16.ptr(7424, 7615, 1), new Range16.ptr(7680, 7957, 1), new Range16.ptr(7960, 7965, 1), new Range16.ptr(7968, 8005, 1), new Range16.ptr(8008, 8013, 1), new Range16.ptr(8016, 8023, 1), new Range16.ptr(8025, 8031, 2), new Range16.ptr(8032, 8061, 1), new Range16.ptr(8064, 8116, 1), new Range16.ptr(8118, 8124, 1), new Range16.ptr(8126, 8130, 4), new Range16.ptr(8131, 8132, 1), new Range16.ptr(8134, 8140, 1), new Range16.ptr(8144, 8147, 1), new Range16.ptr(8150, 8155, 1), new Range16.ptr(8160, 8172, 1), new Range16.ptr(8178, 8180, 1), new Range16.ptr(8182, 8188, 1), new Range16.ptr(8305, 8319, 14), new Range16.ptr(8336, 8348, 1), new Range16.ptr(8450, 8455, 5), new Range16.ptr(8458, 8467, 1), new Range16.ptr(8469, 8473, 4), new Range16.ptr(8474, 8477, 1), new Range16.ptr(8484, 8490, 2), new Range16.ptr(8491, 8493, 1), new Range16.ptr(8495, 8505, 1), new Range16.ptr(8508, 8511, 1), new Range16.ptr(8517, 8521, 1), new Range16.ptr(8526, 8579, 53), new Range16.ptr(8580, 11264, 2684), new Range16.ptr(11265, 11310, 1), new Range16.ptr(11312, 11358, 1), new Range16.ptr(11360, 11492, 1), new Range16.ptr(11499, 11502, 1), new Range16.ptr(11506, 11507, 1), new Range16.ptr(11520, 11557, 1), new Range16.ptr(11559, 11565, 6), new Range16.ptr(11568, 11623, 1), new Range16.ptr(11631, 11648, 17), new Range16.ptr(11649, 11670, 1), new Range16.ptr(11680, 11686, 1), new Range16.ptr(11688, 11694, 1), new Range16.ptr(11696, 11702, 1), new Range16.ptr(11704, 11710, 1), new Range16.ptr(11712, 11718, 1), new Range16.ptr(11720, 11726, 1), new Range16.ptr(11728, 11734, 1), new Range16.ptr(11736, 11742, 1), new Range16.ptr(11823, 12293, 470), new Range16.ptr(12294, 12337, 43), new Range16.ptr(12338, 12341, 1), new Range16.ptr(12347, 12348, 1), new Range16.ptr(12353, 12438, 1), new Range16.ptr(12445, 12447, 1), new Range16.ptr(12449, 12538, 1), new Range16.ptr(12540, 12543, 1), new Range16.ptr(12549, 12590, 1), new Range16.ptr(12593, 12686, 1), new Range16.ptr(12704, 12730, 1), new Range16.ptr(12784, 12799, 1), new Range16.ptr(13312, 19893, 1), new Range16.ptr(19968, 40938, 1), new Range16.ptr(40960, 42124, 1), new Range16.ptr(42192, 42237, 1), new Range16.ptr(42240, 42508, 1), new Range16.ptr(42512, 42527, 1), new Range16.ptr(42538, 42539, 1), new Range16.ptr(42560, 42606, 1), new Range16.ptr(42623, 42653, 1), new Range16.ptr(42656, 42725, 1), new Range16.ptr(42775, 42783, 1), new Range16.ptr(42786, 42888, 1), new Range16.ptr(42891, 42926, 1), new Range16.ptr(42928, 42935, 1), new Range16.ptr(42999, 43009, 1), new Range16.ptr(43011, 43013, 1), new Range16.ptr(43015, 43018, 1), new Range16.ptr(43020, 43042, 1), new Range16.ptr(43072, 43123, 1), new Range16.ptr(43138, 43187, 1), new Range16.ptr(43250, 43255, 1), new Range16.ptr(43259, 43261, 2), new Range16.ptr(43274, 43301, 1), new Range16.ptr(43312, 43334, 1), new Range16.ptr(43360, 43388, 1), new Range16.ptr(43396, 43442, 1), new Range16.ptr(43471, 43488, 17), new Range16.ptr(43489, 43492, 1), new Range16.ptr(43494, 43503, 1), new Range16.ptr(43514, 43518, 1), new Range16.ptr(43520, 43560, 1), new Range16.ptr(43584, 43586, 1), new Range16.ptr(43588, 43595, 1), new Range16.ptr(43616, 43638, 1), new Range16.ptr(43642, 43646, 4), new Range16.ptr(43647, 43695, 1), new Range16.ptr(43697, 43701, 4), new Range16.ptr(43702, 43705, 3), new Range16.ptr(43706, 43709, 1), new Range16.ptr(43712, 43714, 2), new Range16.ptr(43739, 43741, 1), new Range16.ptr(43744, 43754, 1), new Range16.ptr(43762, 43764, 1), new Range16.ptr(43777, 43782, 1), new Range16.ptr(43785, 43790, 1), new Range16.ptr(43793, 43798, 1), new Range16.ptr(43808, 43814, 1), new Range16.ptr(43816, 43822, 1), new Range16.ptr(43824, 43866, 1), new Range16.ptr(43868, 43877, 1), new Range16.ptr(43888, 44002, 1), new Range16.ptr(44032, 55203, 1), new Range16.ptr(55216, 55238, 1), new Range16.ptr(55243, 55291, 1), new Range16.ptr(63744, 64109, 1), new Range16.ptr(64112, 64217, 1), new Range16.ptr(64256, 64262, 1), new Range16.ptr(64275, 64279, 1), new Range16.ptr(64285, 64287, 2), new Range16.ptr(64288, 64296, 1), new Range16.ptr(64298, 64310, 1), new Range16.ptr(64312, 64316, 1), new Range16.ptr(64318, 64320, 2), new Range16.ptr(64321, 64323, 2), new Range16.ptr(64324, 64326, 2), new Range16.ptr(64327, 64433, 1), new Range16.ptr(64467, 64829, 1), new Range16.ptr(64848, 64911, 1), new Range16.ptr(64914, 64967, 1), new Range16.ptr(65008, 65019, 1), new Range16.ptr(65136, 65140, 1), new Range16.ptr(65142, 65276, 1), new Range16.ptr(65313, 65338, 1), new Range16.ptr(65345, 65370, 1), new Range16.ptr(65382, 65470, 1), new Range16.ptr(65474, 65479, 1), new Range16.ptr(65482, 65487, 1), new Range16.ptr(65490, 65495, 1), new Range16.ptr(65498, 65500, 1)]), new sliceType$1([new Range32.ptr(65536, 65547, 1), new Range32.ptr(65549, 65574, 1), new Range32.ptr(65576, 65594, 1), new Range32.ptr(65596, 65597, 1), new Range32.ptr(65599, 65613, 1), new Range32.ptr(65616, 65629, 1), new Range32.ptr(65664, 65786, 1), new Range32.ptr(66176, 66204, 1), new Range32.ptr(66208, 66256, 1), new Range32.ptr(66304, 66335, 1), new Range32.ptr(66349, 66368, 1), new Range32.ptr(66370, 66377, 1), new Range32.ptr(66384, 66421, 1), new Range32.ptr(66432, 66461, 1), new Range32.ptr(66464, 66499, 1), new Range32.ptr(66504, 66511, 1), new Range32.ptr(66560, 66717, 1), new Range32.ptr(66736, 66771, 1), new Range32.ptr(66776, 66811, 1), new Range32.ptr(66816, 66855, 1), new Range32.ptr(66864, 66915, 1), new Range32.ptr(67072, 67382, 1), new Range32.ptr(67392, 67413, 1), new Range32.ptr(67424, 67431, 1), new Range32.ptr(67584, 67589, 1), new Range32.ptr(67592, 67594, 2), new Range32.ptr(67595, 67637, 1), new Range32.ptr(67639, 67640, 1), new Range32.ptr(67644, 67647, 3), new Range32.ptr(67648, 67669, 1), new Range32.ptr(67680, 67702, 1), new Range32.ptr(67712, 67742, 1), new Range32.ptr(67808, 67826, 1), new Range32.ptr(67828, 67829, 1), new Range32.ptr(67840, 67861, 1), new Range32.ptr(67872, 67897, 1), new Range32.ptr(67968, 68023, 1), new Range32.ptr(68030, 68031, 1), new Range32.ptr(68096, 68112, 16), new Range32.ptr(68113, 68115, 1), new Range32.ptr(68117, 68119, 1), new Range32.ptr(68121, 68147, 1), new Range32.ptr(68192, 68220, 1), new Range32.ptr(68224, 68252, 1), new Range32.ptr(68288, 68295, 1), new Range32.ptr(68297, 68324, 1), new Range32.ptr(68352, 68405, 1), new Range32.ptr(68416, 68437, 1), new Range32.ptr(68448, 68466, 1), new Range32.ptr(68480, 68497, 1), new Range32.ptr(68608, 68680, 1), new Range32.ptr(68736, 68786, 1), new Range32.ptr(68800, 68850, 1), new Range32.ptr(69635, 69687, 1), new Range32.ptr(69763, 69807, 1), new Range32.ptr(69840, 69864, 1), new Range32.ptr(69891, 69926, 1), new Range32.ptr(69968, 70002, 1), new Range32.ptr(70006, 70019, 13), new Range32.ptr(70020, 70066, 1), new Range32.ptr(70081, 70084, 1), new Range32.ptr(70106, 70108, 2), new Range32.ptr(70144, 70161, 1), new Range32.ptr(70163, 70187, 1), new Range32.ptr(70272, 70278, 1), new Range32.ptr(70280, 70282, 2), new Range32.ptr(70283, 70285, 1), new Range32.ptr(70287, 70301, 1), new Range32.ptr(70303, 70312, 1), new Range32.ptr(70320, 70366, 1), new Range32.ptr(70405, 70412, 1), new Range32.ptr(70415, 70416, 1), new Range32.ptr(70419, 70440, 1), new Range32.ptr(70442, 70448, 1), new Range32.ptr(70450, 70451, 1), new Range32.ptr(70453, 70457, 1), new Range32.ptr(70461, 70480, 19), new Range32.ptr(70493, 70497, 1), new Range32.ptr(70656, 70708, 1), new Range32.ptr(70727, 70730, 1), new Range32.ptr(70784, 70831, 1), new Range32.ptr(70852, 70853, 1), new Range32.ptr(70855, 71040, 185), new Range32.ptr(71041, 71086, 1), new Range32.ptr(71128, 71131, 1), new Range32.ptr(71168, 71215, 1), new Range32.ptr(71236, 71296, 60), new Range32.ptr(71297, 71338, 1), new Range32.ptr(71424, 71449, 1), new Range32.ptr(71840, 71903, 1), new Range32.ptr(71935, 72192, 257), new Range32.ptr(72203, 72242, 1), new Range32.ptr(72250, 72272, 22), new Range32.ptr(72284, 72323, 1), new Range32.ptr(72326, 72329, 1), new Range32.ptr(72384, 72440, 1), new Range32.ptr(72704, 72712, 1), new Range32.ptr(72714, 72750, 1), new Range32.ptr(72768, 72818, 50), new Range32.ptr(72819, 72847, 1), new Range32.ptr(72960, 72966, 1), new Range32.ptr(72968, 72969, 1), new Range32.ptr(72971, 73008, 1), new Range32.ptr(73030, 73728, 698), new Range32.ptr(73729, 74649, 1), new Range32.ptr(74880, 75075, 1), new Range32.ptr(77824, 78894, 1), new Range32.ptr(82944, 83526, 1), new Range32.ptr(92160, 92728, 1), new Range32.ptr(92736, 92766, 1), new Range32.ptr(92880, 92909, 1), new Range32.ptr(92928, 92975, 1), new Range32.ptr(92992, 92995, 1), new Range32.ptr(93027, 93047, 1), new Range32.ptr(93053, 93071, 1), new Range32.ptr(93952, 94020, 1), new Range32.ptr(94032, 94099, 67), new Range32.ptr(94100, 94111, 1), new Range32.ptr(94176, 94177, 1), new Range32.ptr(94208, 100332, 1), new Range32.ptr(100352, 101106, 1), new Range32.ptr(110592, 110878, 1), new Range32.ptr(110960, 111355, 1), new Range32.ptr(113664, 113770, 1), new Range32.ptr(113776, 113788, 1), new Range32.ptr(113792, 113800, 1), new Range32.ptr(113808, 113817, 1), new Range32.ptr(119808, 119892, 1), new Range32.ptr(119894, 119964, 1), new Range32.ptr(119966, 119967, 1), new Range32.ptr(119970, 119973, 3), new Range32.ptr(119974, 119977, 3), new Range32.ptr(119978, 119980, 1), new Range32.ptr(119982, 119993, 1), new Range32.ptr(119995, 119997, 2), new Range32.ptr(119998, 120003, 1), new Range32.ptr(120005, 120069, 1), new Range32.ptr(120071, 120074, 1), new Range32.ptr(120077, 120084, 1), new Range32.ptr(120086, 120092, 1), new Range32.ptr(120094, 120121, 1), new Range32.ptr(120123, 120126, 1), new Range32.ptr(120128, 120132, 1), new Range32.ptr(120134, 120138, 4), new Range32.ptr(120139, 120144, 1), new Range32.ptr(120146, 120485, 1), new Range32.ptr(120488, 120512, 1), new Range32.ptr(120514, 120538, 1), new Range32.ptr(120540, 120570, 1), new Range32.ptr(120572, 120596, 1), new Range32.ptr(120598, 120628, 1), new Range32.ptr(120630, 120654, 1), new Range32.ptr(120656, 120686, 1), new Range32.ptr(120688, 120712, 1), new Range32.ptr(120714, 120744, 1), new Range32.ptr(120746, 120770, 1), new Range32.ptr(120772, 120779, 1), new Range32.ptr(124928, 125124, 1), new Range32.ptr(125184, 125251, 1), new Range32.ptr(126464, 126467, 1), new Range32.ptr(126469, 126495, 1), new Range32.ptr(126497, 126498, 1), new Range32.ptr(126500, 126503, 3), new Range32.ptr(126505, 126514, 1), new Range32.ptr(126516, 126519, 1), new Range32.ptr(126521, 126523, 2), new Range32.ptr(126530, 126535, 5), new Range32.ptr(126537, 126541, 2), new Range32.ptr(126542, 126543, 1), new Range32.ptr(126545, 126546, 1), new Range32.ptr(126548, 126551, 3), new Range32.ptr(126553, 126561, 2), new Range32.ptr(126562, 126564, 2), new Range32.ptr(126567, 126570, 1), new Range32.ptr(126572, 126578, 1), new Range32.ptr(126580, 126583, 1), new Range32.ptr(126585, 126588, 1), new Range32.ptr(126590, 126592, 2), new Range32.ptr(126593, 126601, 1), new Range32.ptr(126603, 126619, 1), new Range32.ptr(126625, 126627, 1), new Range32.ptr(126629, 126633, 1), new Range32.ptr(126635, 126651, 1), new Range32.ptr(131072, 173782, 1), new Range32.ptr(173824, 177972, 1), new Range32.ptr(177984, 178205, 1), new Range32.ptr(178208, 183969, 1), new Range32.ptr(183984, 191456, 1), new Range32.ptr(194560, 195101, 1)]), 6);
  5965. _Ll = new RangeTable.ptr(new sliceType([new Range16.ptr(97, 122, 1), new Range16.ptr(181, 223, 42), new Range16.ptr(224, 246, 1), new Range16.ptr(248, 255, 1), new Range16.ptr(257, 311, 2), new Range16.ptr(312, 328, 2), new Range16.ptr(329, 375, 2), new Range16.ptr(378, 382, 2), new Range16.ptr(383, 384, 1), new Range16.ptr(387, 389, 2), new Range16.ptr(392, 396, 4), new Range16.ptr(397, 402, 5), new Range16.ptr(405, 409, 4), new Range16.ptr(410, 411, 1), new Range16.ptr(414, 417, 3), new Range16.ptr(419, 421, 2), new Range16.ptr(424, 426, 2), new Range16.ptr(427, 429, 2), new Range16.ptr(432, 436, 4), new Range16.ptr(438, 441, 3), new Range16.ptr(442, 445, 3), new Range16.ptr(446, 447, 1), new Range16.ptr(454, 460, 3), new Range16.ptr(462, 476, 2), new Range16.ptr(477, 495, 2), new Range16.ptr(496, 499, 3), new Range16.ptr(501, 505, 4), new Range16.ptr(507, 563, 2), new Range16.ptr(564, 569, 1), new Range16.ptr(572, 575, 3), new Range16.ptr(576, 578, 2), new Range16.ptr(583, 591, 2), new Range16.ptr(592, 659, 1), new Range16.ptr(661, 687, 1), new Range16.ptr(881, 883, 2), new Range16.ptr(887, 891, 4), new Range16.ptr(892, 893, 1), new Range16.ptr(912, 940, 28), new Range16.ptr(941, 974, 1), new Range16.ptr(976, 977, 1), new Range16.ptr(981, 983, 1), new Range16.ptr(985, 1007, 2), new Range16.ptr(1008, 1011, 1), new Range16.ptr(1013, 1019, 3), new Range16.ptr(1020, 1072, 52), new Range16.ptr(1073, 1119, 1), new Range16.ptr(1121, 1153, 2), new Range16.ptr(1163, 1215, 2), new Range16.ptr(1218, 1230, 2), new Range16.ptr(1231, 1327, 2), new Range16.ptr(1377, 1415, 1), new Range16.ptr(5112, 5117, 1), new Range16.ptr(7296, 7304, 1), new Range16.ptr(7424, 7467, 1), new Range16.ptr(7531, 7543, 1), new Range16.ptr(7545, 7578, 1), new Range16.ptr(7681, 7829, 2), new Range16.ptr(7830, 7837, 1), new Range16.ptr(7839, 7935, 2), new Range16.ptr(7936, 7943, 1), new Range16.ptr(7952, 7957, 1), new Range16.ptr(7968, 7975, 1), new Range16.ptr(7984, 7991, 1), new Range16.ptr(8000, 8005, 1), new Range16.ptr(8016, 8023, 1), new Range16.ptr(8032, 8039, 1), new Range16.ptr(8048, 8061, 1), new Range16.ptr(8064, 8071, 1), new Range16.ptr(8080, 8087, 1), new Range16.ptr(8096, 8103, 1), new Range16.ptr(8112, 8116, 1), new Range16.ptr(8118, 8119, 1), new Range16.ptr(8126, 8130, 4), new Range16.ptr(8131, 8132, 1), new Range16.ptr(8134, 8135, 1), new Range16.ptr(8144, 8147, 1), new Range16.ptr(8150, 8151, 1), new Range16.ptr(8160, 8167, 1), new Range16.ptr(8178, 8180, 1), new Range16.ptr(8182, 8183, 1), new Range16.ptr(8458, 8462, 4), new Range16.ptr(8463, 8467, 4), new Range16.ptr(8495, 8505, 5), new Range16.ptr(8508, 8509, 1), new Range16.ptr(8518, 8521, 1), new Range16.ptr(8526, 8580, 54), new Range16.ptr(11312, 11358, 1), new Range16.ptr(11361, 11365, 4), new Range16.ptr(11366, 11372, 2), new Range16.ptr(11377, 11379, 2), new Range16.ptr(11380, 11382, 2), new Range16.ptr(11383, 11387, 1), new Range16.ptr(11393, 11491, 2), new Range16.ptr(11492, 11500, 8), new Range16.ptr(11502, 11507, 5), new Range16.ptr(11520, 11557, 1), new Range16.ptr(11559, 11565, 6), new Range16.ptr(42561, 42605, 2), new Range16.ptr(42625, 42651, 2), new Range16.ptr(42787, 42799, 2), new Range16.ptr(42800, 42801, 1), new Range16.ptr(42803, 42865, 2), new Range16.ptr(42866, 42872, 1), new Range16.ptr(42874, 42876, 2), new Range16.ptr(42879, 42887, 2), new Range16.ptr(42892, 42894, 2), new Range16.ptr(42897, 42899, 2), new Range16.ptr(42900, 42901, 1), new Range16.ptr(42903, 42921, 2), new Range16.ptr(42933, 42935, 2), new Range16.ptr(43002, 43824, 822), new Range16.ptr(43825, 43866, 1), new Range16.ptr(43872, 43877, 1), new Range16.ptr(43888, 43967, 1), new Range16.ptr(64256, 64262, 1), new Range16.ptr(64275, 64279, 1), new Range16.ptr(65345, 65370, 1)]), new sliceType$1([new Range32.ptr(66600, 66639, 1), new Range32.ptr(66776, 66811, 1), new Range32.ptr(68800, 68850, 1), new Range32.ptr(71872, 71903, 1), new Range32.ptr(119834, 119859, 1), new Range32.ptr(119886, 119892, 1), new Range32.ptr(119894, 119911, 1), new Range32.ptr(119938, 119963, 1), new Range32.ptr(119990, 119993, 1), new Range32.ptr(119995, 119997, 2), new Range32.ptr(119998, 120003, 1), new Range32.ptr(120005, 120015, 1), new Range32.ptr(120042, 120067, 1), new Range32.ptr(120094, 120119, 1), new Range32.ptr(120146, 120171, 1), new Range32.ptr(120198, 120223, 1), new Range32.ptr(120250, 120275, 1), new Range32.ptr(120302, 120327, 1), new Range32.ptr(120354, 120379, 1), new Range32.ptr(120406, 120431, 1), new Range32.ptr(120458, 120485, 1), new Range32.ptr(120514, 120538, 1), new Range32.ptr(120540, 120545, 1), new Range32.ptr(120572, 120596, 1), new Range32.ptr(120598, 120603, 1), new Range32.ptr(120630, 120654, 1), new Range32.ptr(120656, 120661, 1), new Range32.ptr(120688, 120712, 1), new Range32.ptr(120714, 120719, 1), new Range32.ptr(120746, 120770, 1), new Range32.ptr(120772, 120777, 1), new Range32.ptr(120779, 125218, 4439), new Range32.ptr(125219, 125251, 1)]), 4);
  5966. _Lm = new RangeTable.ptr(new sliceType([new Range16.ptr(688, 705, 1), new Range16.ptr(710, 721, 1), new Range16.ptr(736, 740, 1), new Range16.ptr(748, 750, 2), new Range16.ptr(884, 890, 6), new Range16.ptr(1369, 1600, 231), new Range16.ptr(1765, 1766, 1), new Range16.ptr(2036, 2037, 1), new Range16.ptr(2042, 2074, 32), new Range16.ptr(2084, 2088, 4), new Range16.ptr(2417, 3654, 1237), new Range16.ptr(3782, 4348, 566), new Range16.ptr(6103, 6211, 108), new Range16.ptr(6823, 7288, 465), new Range16.ptr(7289, 7293, 1), new Range16.ptr(7468, 7530, 1), new Range16.ptr(7544, 7579, 35), new Range16.ptr(7580, 7615, 1), new Range16.ptr(8305, 8319, 14), new Range16.ptr(8336, 8348, 1), new Range16.ptr(11388, 11389, 1), new Range16.ptr(11631, 11823, 192), new Range16.ptr(12293, 12337, 44), new Range16.ptr(12338, 12341, 1), new Range16.ptr(12347, 12445, 98), new Range16.ptr(12446, 12540, 94), new Range16.ptr(12541, 12542, 1), new Range16.ptr(40981, 42232, 1251), new Range16.ptr(42233, 42237, 1), new Range16.ptr(42508, 42623, 115), new Range16.ptr(42652, 42653, 1), new Range16.ptr(42775, 42783, 1), new Range16.ptr(42864, 42888, 24), new Range16.ptr(43000, 43001, 1), new Range16.ptr(43471, 43494, 23), new Range16.ptr(43632, 43741, 109), new Range16.ptr(43763, 43764, 1), new Range16.ptr(43868, 43871, 1), new Range16.ptr(65392, 65438, 46), new Range16.ptr(65439, 65439, 1)]), new sliceType$1([new Range32.ptr(92992, 92992, 1), new Range32.ptr(92993, 92995, 1), new Range32.ptr(94099, 94111, 1), new Range32.ptr(94176, 94177, 1)]), 0);
  5967. _Lo = new RangeTable.ptr(new sliceType([new Range16.ptr(170, 186, 16), new Range16.ptr(443, 448, 5), new Range16.ptr(449, 451, 1), new Range16.ptr(660, 1488, 828), new Range16.ptr(1489, 1514, 1), new Range16.ptr(1520, 1522, 1), new Range16.ptr(1568, 1599, 1), new Range16.ptr(1601, 1610, 1), new Range16.ptr(1646, 1647, 1), new Range16.ptr(1649, 1747, 1), new Range16.ptr(1749, 1774, 25), new Range16.ptr(1775, 1786, 11), new Range16.ptr(1787, 1788, 1), new Range16.ptr(1791, 1808, 17), new Range16.ptr(1810, 1839, 1), new Range16.ptr(1869, 1957, 1), new Range16.ptr(1969, 1994, 25), new Range16.ptr(1995, 2026, 1), new Range16.ptr(2048, 2069, 1), new Range16.ptr(2112, 2136, 1), new Range16.ptr(2144, 2154, 1), new Range16.ptr(2208, 2228, 1), new Range16.ptr(2230, 2237, 1), new Range16.ptr(2308, 2361, 1), new Range16.ptr(2365, 2384, 19), new Range16.ptr(2392, 2401, 1), new Range16.ptr(2418, 2432, 1), new Range16.ptr(2437, 2444, 1), new Range16.ptr(2447, 2448, 1), new Range16.ptr(2451, 2472, 1), new Range16.ptr(2474, 2480, 1), new Range16.ptr(2482, 2486, 4), new Range16.ptr(2487, 2489, 1), new Range16.ptr(2493, 2510, 17), new Range16.ptr(2524, 2525, 1), new Range16.ptr(2527, 2529, 1), new Range16.ptr(2544, 2545, 1), new Range16.ptr(2556, 2565, 9), new Range16.ptr(2566, 2570, 1), new Range16.ptr(2575, 2576, 1), new Range16.ptr(2579, 2600, 1), new Range16.ptr(2602, 2608, 1), new Range16.ptr(2610, 2611, 1), new Range16.ptr(2613, 2614, 1), new Range16.ptr(2616, 2617, 1), new Range16.ptr(2649, 2652, 1), new Range16.ptr(2654, 2674, 20), new Range16.ptr(2675, 2676, 1), new Range16.ptr(2693, 2701, 1), new Range16.ptr(2703, 2705, 1), new Range16.ptr(2707, 2728, 1), new Range16.ptr(2730, 2736, 1), new Range16.ptr(2738, 2739, 1), new Range16.ptr(2741, 2745, 1), new Range16.ptr(2749, 2768, 19), new Range16.ptr(2784, 2785, 1), new Range16.ptr(2809, 2821, 12), new Range16.ptr(2822, 2828, 1), new Range16.ptr(2831, 2832, 1), new Range16.ptr(2835, 2856, 1), new Range16.ptr(2858, 2864, 1), new Range16.ptr(2866, 2867, 1), new Range16.ptr(2869, 2873, 1), new Range16.ptr(2877, 2908, 31), new Range16.ptr(2909, 2911, 2), new Range16.ptr(2912, 2913, 1), new Range16.ptr(2929, 2947, 18), new Range16.ptr(2949, 2954, 1), new Range16.ptr(2958, 2960, 1), new Range16.ptr(2962, 2965, 1), new Range16.ptr(2969, 2970, 1), new Range16.ptr(2972, 2974, 2), new Range16.ptr(2975, 2979, 4), new Range16.ptr(2980, 2984, 4), new Range16.ptr(2985, 2986, 1), new Range16.ptr(2990, 3001, 1), new Range16.ptr(3024, 3077, 53), new Range16.ptr(3078, 3084, 1), new Range16.ptr(3086, 3088, 1), new Range16.ptr(3090, 3112, 1), new Range16.ptr(3114, 3129, 1), new Range16.ptr(3133, 3160, 27), new Range16.ptr(3161, 3162, 1), new Range16.ptr(3168, 3169, 1), new Range16.ptr(3200, 3205, 5), new Range16.ptr(3206, 3212, 1), new Range16.ptr(3214, 3216, 1), new Range16.ptr(3218, 3240, 1), new Range16.ptr(3242, 3251, 1), new Range16.ptr(3253, 3257, 1), new Range16.ptr(3261, 3294, 33), new Range16.ptr(3296, 3297, 1), new Range16.ptr(3313, 3314, 1), new Range16.ptr(3333, 3340, 1), new Range16.ptr(3342, 3344, 1), new Range16.ptr(3346, 3386, 1), new Range16.ptr(3389, 3406, 17), new Range16.ptr(3412, 3414, 1), new Range16.ptr(3423, 3425, 1), new Range16.ptr(3450, 3455, 1), new Range16.ptr(3461, 3478, 1), new Range16.ptr(3482, 3505, 1), new Range16.ptr(3507, 3515, 1), new Range16.ptr(3517, 3520, 3), new Range16.ptr(3521, 3526, 1), new Range16.ptr(3585, 3632, 1), new Range16.ptr(3634, 3635, 1), new Range16.ptr(3648, 3653, 1), new Range16.ptr(3713, 3714, 1), new Range16.ptr(3716, 3719, 3), new Range16.ptr(3720, 3722, 2), new Range16.ptr(3725, 3732, 7), new Range16.ptr(3733, 3735, 1), new Range16.ptr(3737, 3743, 1), new Range16.ptr(3745, 3747, 1), new Range16.ptr(3749, 3751, 2), new Range16.ptr(3754, 3755, 1), new Range16.ptr(3757, 3760, 1), new Range16.ptr(3762, 3763, 1), new Range16.ptr(3773, 3776, 3), new Range16.ptr(3777, 3780, 1), new Range16.ptr(3804, 3807, 1), new Range16.ptr(3840, 3904, 64), new Range16.ptr(3905, 3911, 1), new Range16.ptr(3913, 3948, 1), new Range16.ptr(3976, 3980, 1), new Range16.ptr(4096, 4138, 1), new Range16.ptr(4159, 4176, 17), new Range16.ptr(4177, 4181, 1), new Range16.ptr(4186, 4189, 1), new Range16.ptr(4193, 4197, 4), new Range16.ptr(4198, 4206, 8), new Range16.ptr(4207, 4208, 1), new Range16.ptr(4213, 4225, 1), new Range16.ptr(4238, 4304, 66), new Range16.ptr(4305, 4346, 1), new Range16.ptr(4349, 4680, 1), new Range16.ptr(4682, 4685, 1), new Range16.ptr(4688, 4694, 1), new Range16.ptr(4696, 4698, 2), new Range16.ptr(4699, 4701, 1), new Range16.ptr(4704, 4744, 1), new Range16.ptr(4746, 4749, 1), new Range16.ptr(4752, 4784, 1), new Range16.ptr(4786, 4789, 1), new Range16.ptr(4792, 4798, 1), new Range16.ptr(4800, 4802, 2), new Range16.ptr(4803, 4805, 1), new Range16.ptr(4808, 4822, 1), new Range16.ptr(4824, 4880, 1), new Range16.ptr(4882, 4885, 1), new Range16.ptr(4888, 4954, 1), new Range16.ptr(4992, 5007, 1), new Range16.ptr(5121, 5740, 1), new Range16.ptr(5743, 5759, 1), new Range16.ptr(5761, 5786, 1), new Range16.ptr(5792, 5866, 1), new Range16.ptr(5873, 5880, 1), new Range16.ptr(5888, 5900, 1), new Range16.ptr(5902, 5905, 1), new Range16.ptr(5920, 5937, 1), new Range16.ptr(5952, 5969, 1), new Range16.ptr(5984, 5996, 1), new Range16.ptr(5998, 6000, 1), new Range16.ptr(6016, 6067, 1), new Range16.ptr(6108, 6176, 68), new Range16.ptr(6177, 6210, 1), new Range16.ptr(6212, 6263, 1), new Range16.ptr(6272, 6276, 1), new Range16.ptr(6279, 6312, 1), new Range16.ptr(6314, 6320, 6), new Range16.ptr(6321, 6389, 1), new Range16.ptr(6400, 6430, 1), new Range16.ptr(6480, 6509, 1), new Range16.ptr(6512, 6516, 1), new Range16.ptr(6528, 6571, 1), new Range16.ptr(6576, 6601, 1), new Range16.ptr(6656, 6678, 1), new Range16.ptr(6688, 6740, 1), new Range16.ptr(6917, 6963, 1), new Range16.ptr(6981, 6987, 1), new Range16.ptr(7043, 7072, 1), new Range16.ptr(7086, 7087, 1), new Range16.ptr(7098, 7141, 1), new Range16.ptr(7168, 7203, 1), new Range16.ptr(7245, 7247, 1), new Range16.ptr(7258, 7287, 1), new Range16.ptr(7401, 7404, 1), new Range16.ptr(7406, 7409, 1), new Range16.ptr(7413, 7414, 1), new Range16.ptr(8501, 8504, 1), new Range16.ptr(11568, 11623, 1), new Range16.ptr(11648, 11670, 1), new Range16.ptr(11680, 11686, 1), new Range16.ptr(11688, 11694, 1), new Range16.ptr(11696, 11702, 1), new Range16.ptr(11704, 11710, 1), new Range16.ptr(11712, 11718, 1), new Range16.ptr(11720, 11726, 1), new Range16.ptr(11728, 11734, 1), new Range16.ptr(11736, 11742, 1), new Range16.ptr(12294, 12348, 54), new Range16.ptr(12353, 12438, 1), new Range16.ptr(12447, 12449, 2), new Range16.ptr(12450, 12538, 1), new Range16.ptr(12543, 12549, 6), new Range16.ptr(12550, 12590, 1), new Range16.ptr(12593, 12686, 1), new Range16.ptr(12704, 12730, 1), new Range16.ptr(12784, 12799, 1), new Range16.ptr(13312, 19893, 1), new Range16.ptr(19968, 40938, 1), new Range16.ptr(40960, 40980, 1), new Range16.ptr(40982, 42124, 1), new Range16.ptr(42192, 42231, 1), new Range16.ptr(42240, 42507, 1), new Range16.ptr(42512, 42527, 1), new Range16.ptr(42538, 42539, 1), new Range16.ptr(42606, 42656, 50), new Range16.ptr(42657, 42725, 1), new Range16.ptr(42895, 42999, 104), new Range16.ptr(43003, 43009, 1), new Range16.ptr(43011, 43013, 1), new Range16.ptr(43015, 43018, 1), new Range16.ptr(43020, 43042, 1), new Range16.ptr(43072, 43123, 1), new Range16.ptr(43138, 43187, 1), new Range16.ptr(43250, 43255, 1), new Range16.ptr(43259, 43261, 2), new Range16.ptr(43274, 43301, 1), new Range16.ptr(43312, 43334, 1), new Range16.ptr(43360, 43388, 1), new Range16.ptr(43396, 43442, 1), new Range16.ptr(43488, 43492, 1), new Range16.ptr(43495, 43503, 1), new Range16.ptr(43514, 43518, 1), new Range16.ptr(43520, 43560, 1), new Range16.ptr(43584, 43586, 1), new Range16.ptr(43588, 43595, 1), new Range16.ptr(43616, 43631, 1), new Range16.ptr(43633, 43638, 1), new Range16.ptr(43642, 43646, 4), new Range16.ptr(43647, 43695, 1), new Range16.ptr(43697, 43701, 4), new Range16.ptr(43702, 43705, 3), new Range16.ptr(43706, 43709, 1), new Range16.ptr(43712, 43714, 2), new Range16.ptr(43739, 43740, 1), new Range16.ptr(43744, 43754, 1), new Range16.ptr(43762, 43777, 15), new Range16.ptr(43778, 43782, 1), new Range16.ptr(43785, 43790, 1), new Range16.ptr(43793, 43798, 1), new Range16.ptr(43808, 43814, 1), new Range16.ptr(43816, 43822, 1), new Range16.ptr(43968, 44002, 1), new Range16.ptr(44032, 55203, 1), new Range16.ptr(55216, 55238, 1), new Range16.ptr(55243, 55291, 1), new Range16.ptr(63744, 64109, 1), new Range16.ptr(64112, 64217, 1), new Range16.ptr(64285, 64287, 2), new Range16.ptr(64288, 64296, 1), new Range16.ptr(64298, 64310, 1), new Range16.ptr(64312, 64316, 1), new Range16.ptr(64318, 64320, 2), new Range16.ptr(64321, 64323, 2), new Range16.ptr(64324, 64326, 2), new Range16.ptr(64327, 64433, 1), new Range16.ptr(64467, 64829, 1), new Range16.ptr(64848, 64911, 1), new Range16.ptr(64914, 64967, 1), new Range16.ptr(65008, 65019, 1), new Range16.ptr(65136, 65140, 1), new Range16.ptr(65142, 65276, 1), new Range16.ptr(65382, 65391, 1), new Range16.ptr(65393, 65437, 1), new Range16.ptr(65440, 65470, 1), new Range16.ptr(65474, 65479, 1), new Range16.ptr(65482, 65487, 1), new Range16.ptr(65490, 65495, 1), new Range16.ptr(65498, 65500, 1)]), new sliceType$1([new Range32.ptr(65536, 65547, 1), new Range32.ptr(65549, 65574, 1), new Range32.ptr(65576, 65594, 1), new Range32.ptr(65596, 65597, 1), new Range32.ptr(65599, 65613, 1), new Range32.ptr(65616, 65629, 1), new Range32.ptr(65664, 65786, 1), new Range32.ptr(66176, 66204, 1), new Range32.ptr(66208, 66256, 1), new Range32.ptr(66304, 66335, 1), new Range32.ptr(66349, 66368, 1), new Range32.ptr(66370, 66377, 1), new Range32.ptr(66384, 66421, 1), new Range32.ptr(66432, 66461, 1), new Range32.ptr(66464, 66499, 1), new Range32.ptr(66504, 66511, 1), new Range32.ptr(66640, 66717, 1), new Range32.ptr(66816, 66855, 1), new Range32.ptr(66864, 66915, 1), new Range32.ptr(67072, 67382, 1), new Range32.ptr(67392, 67413, 1), new Range32.ptr(67424, 67431, 1), new Range32.ptr(67584, 67589, 1), new Range32.ptr(67592, 67594, 2), new Range32.ptr(67595, 67637, 1), new Range32.ptr(67639, 67640, 1), new Range32.ptr(67644, 67647, 3), new Range32.ptr(67648, 67669, 1), new Range32.ptr(67680, 67702, 1), new Range32.ptr(67712, 67742, 1), new Range32.ptr(67808, 67826, 1), new Range32.ptr(67828, 67829, 1), new Range32.ptr(67840, 67861, 1), new Range32.ptr(67872, 67897, 1), new Range32.ptr(67968, 68023, 1), new Range32.ptr(68030, 68031, 1), new Range32.ptr(68096, 68112, 16), new Range32.ptr(68113, 68115, 1), new Range32.ptr(68117, 68119, 1), new Range32.ptr(68121, 68147, 1), new Range32.ptr(68192, 68220, 1), new Range32.ptr(68224, 68252, 1), new Range32.ptr(68288, 68295, 1), new Range32.ptr(68297, 68324, 1), new Range32.ptr(68352, 68405, 1), new Range32.ptr(68416, 68437, 1), new Range32.ptr(68448, 68466, 1), new Range32.ptr(68480, 68497, 1), new Range32.ptr(68608, 68680, 1), new Range32.ptr(69635, 69687, 1), new Range32.ptr(69763, 69807, 1), new Range32.ptr(69840, 69864, 1), new Range32.ptr(69891, 69926, 1), new Range32.ptr(69968, 70002, 1), new Range32.ptr(70006, 70019, 13), new Range32.ptr(70020, 70066, 1), new Range32.ptr(70081, 70084, 1), new Range32.ptr(70106, 70108, 2), new Range32.ptr(70144, 70161, 1), new Range32.ptr(70163, 70187, 1), new Range32.ptr(70272, 70278, 1), new Range32.ptr(70280, 70282, 2), new Range32.ptr(70283, 70285, 1), new Range32.ptr(70287, 70301, 1), new Range32.ptr(70303, 70312, 1), new Range32.ptr(70320, 70366, 1), new Range32.ptr(70405, 70412, 1), new Range32.ptr(70415, 70416, 1), new Range32.ptr(70419, 70440, 1), new Range32.ptr(70442, 70448, 1), new Range32.ptr(70450, 70451, 1), new Range32.ptr(70453, 70457, 1), new Range32.ptr(70461, 70480, 19), new Range32.ptr(70493, 70497, 1), new Range32.ptr(70656, 70708, 1), new Range32.ptr(70727, 70730, 1), new Range32.ptr(70784, 70831, 1), new Range32.ptr(70852, 70853, 1), new Range32.ptr(70855, 71040, 185), new Range32.ptr(71041, 71086, 1), new Range32.ptr(71128, 71131, 1), new Range32.ptr(71168, 71215, 1), new Range32.ptr(71236, 71296, 60), new Range32.ptr(71297, 71338, 1), new Range32.ptr(71424, 71449, 1), new Range32.ptr(71935, 72192, 257), new Range32.ptr(72203, 72242, 1), new Range32.ptr(72250, 72272, 22), new Range32.ptr(72284, 72323, 1), new Range32.ptr(72326, 72329, 1), new Range32.ptr(72384, 72440, 1), new Range32.ptr(72704, 72712, 1), new Range32.ptr(72714, 72750, 1), new Range32.ptr(72768, 72818, 50), new Range32.ptr(72819, 72847, 1), new Range32.ptr(72960, 72966, 1), new Range32.ptr(72968, 72969, 1), new Range32.ptr(72971, 73008, 1), new Range32.ptr(73030, 73728, 698), new Range32.ptr(73729, 74649, 1), new Range32.ptr(74880, 75075, 1), new Range32.ptr(77824, 78894, 1), new Range32.ptr(82944, 83526, 1), new Range32.ptr(92160, 92728, 1), new Range32.ptr(92736, 92766, 1), new Range32.ptr(92880, 92909, 1), new Range32.ptr(92928, 92975, 1), new Range32.ptr(93027, 93047, 1), new Range32.ptr(93053, 93071, 1), new Range32.ptr(93952, 94020, 1), new Range32.ptr(94032, 94208, 176), new Range32.ptr(94209, 100332, 1), new Range32.ptr(100352, 101106, 1), new Range32.ptr(110592, 110878, 1), new Range32.ptr(110960, 111355, 1), new Range32.ptr(113664, 113770, 1), new Range32.ptr(113776, 113788, 1), new Range32.ptr(113792, 113800, 1), new Range32.ptr(113808, 113817, 1), new Range32.ptr(124928, 125124, 1), new Range32.ptr(126464, 126467, 1), new Range32.ptr(126469, 126495, 1), new Range32.ptr(126497, 126498, 1), new Range32.ptr(126500, 126503, 3), new Range32.ptr(126505, 126514, 1), new Range32.ptr(126516, 126519, 1), new Range32.ptr(126521, 126523, 2), new Range32.ptr(126530, 126535, 5), new Range32.ptr(126537, 126541, 2), new Range32.ptr(126542, 126543, 1), new Range32.ptr(126545, 126546, 1), new Range32.ptr(126548, 126551, 3), new Range32.ptr(126553, 126561, 2), new Range32.ptr(126562, 126564, 2), new Range32.ptr(126567, 126570, 1), new Range32.ptr(126572, 126578, 1), new Range32.ptr(126580, 126583, 1), new Range32.ptr(126585, 126588, 1), new Range32.ptr(126590, 126592, 2), new Range32.ptr(126593, 126601, 1), new Range32.ptr(126603, 126619, 1), new Range32.ptr(126625, 126627, 1), new Range32.ptr(126629, 126633, 1), new Range32.ptr(126635, 126651, 1), new Range32.ptr(131072, 173782, 1), new Range32.ptr(173824, 177972, 1), new Range32.ptr(177984, 178205, 1), new Range32.ptr(178208, 183969, 1), new Range32.ptr(183984, 191456, 1), new Range32.ptr(194560, 195101, 1)]), 1);
  5968. _Lt = new RangeTable.ptr(new sliceType([new Range16.ptr(453, 459, 3), new Range16.ptr(498, 8072, 7574), new Range16.ptr(8073, 8079, 1), new Range16.ptr(8088, 8095, 1), new Range16.ptr(8104, 8111, 1), new Range16.ptr(8124, 8140, 16), new Range16.ptr(8188, 8188, 1)]), sliceType$1.nil, 0);
  5969. _Lu = new RangeTable.ptr(new sliceType([new Range16.ptr(65, 90, 1), new Range16.ptr(192, 214, 1), new Range16.ptr(216, 222, 1), new Range16.ptr(256, 310, 2), new Range16.ptr(313, 327, 2), new Range16.ptr(330, 376, 2), new Range16.ptr(377, 381, 2), new Range16.ptr(385, 386, 1), new Range16.ptr(388, 390, 2), new Range16.ptr(391, 393, 2), new Range16.ptr(394, 395, 1), new Range16.ptr(398, 401, 1), new Range16.ptr(403, 404, 1), new Range16.ptr(406, 408, 1), new Range16.ptr(412, 413, 1), new Range16.ptr(415, 416, 1), new Range16.ptr(418, 422, 2), new Range16.ptr(423, 425, 2), new Range16.ptr(428, 430, 2), new Range16.ptr(431, 433, 2), new Range16.ptr(434, 435, 1), new Range16.ptr(437, 439, 2), new Range16.ptr(440, 444, 4), new Range16.ptr(452, 461, 3), new Range16.ptr(463, 475, 2), new Range16.ptr(478, 494, 2), new Range16.ptr(497, 500, 3), new Range16.ptr(502, 504, 1), new Range16.ptr(506, 562, 2), new Range16.ptr(570, 571, 1), new Range16.ptr(573, 574, 1), new Range16.ptr(577, 579, 2), new Range16.ptr(580, 582, 1), new Range16.ptr(584, 590, 2), new Range16.ptr(880, 882, 2), new Range16.ptr(886, 895, 9), new Range16.ptr(902, 904, 2), new Range16.ptr(905, 906, 1), new Range16.ptr(908, 910, 2), new Range16.ptr(911, 913, 2), new Range16.ptr(914, 929, 1), new Range16.ptr(931, 939, 1), new Range16.ptr(975, 978, 3), new Range16.ptr(979, 980, 1), new Range16.ptr(984, 1006, 2), new Range16.ptr(1012, 1015, 3), new Range16.ptr(1017, 1018, 1), new Range16.ptr(1021, 1071, 1), new Range16.ptr(1120, 1152, 2), new Range16.ptr(1162, 1216, 2), new Range16.ptr(1217, 1229, 2), new Range16.ptr(1232, 1326, 2), new Range16.ptr(1329, 1366, 1), new Range16.ptr(4256, 4293, 1), new Range16.ptr(4295, 4301, 6), new Range16.ptr(5024, 5109, 1), new Range16.ptr(7680, 7828, 2), new Range16.ptr(7838, 7934, 2), new Range16.ptr(7944, 7951, 1), new Range16.ptr(7960, 7965, 1), new Range16.ptr(7976, 7983, 1), new Range16.ptr(7992, 7999, 1), new Range16.ptr(8008, 8013, 1), new Range16.ptr(8025, 8031, 2), new Range16.ptr(8040, 8047, 1), new Range16.ptr(8120, 8123, 1), new Range16.ptr(8136, 8139, 1), new Range16.ptr(8152, 8155, 1), new Range16.ptr(8168, 8172, 1), new Range16.ptr(8184, 8187, 1), new Range16.ptr(8450, 8455, 5), new Range16.ptr(8459, 8461, 1), new Range16.ptr(8464, 8466, 1), new Range16.ptr(8469, 8473, 4), new Range16.ptr(8474, 8477, 1), new Range16.ptr(8484, 8490, 2), new Range16.ptr(8491, 8493, 1), new Range16.ptr(8496, 8499, 1), new Range16.ptr(8510, 8511, 1), new Range16.ptr(8517, 8579, 62), new Range16.ptr(11264, 11310, 1), new Range16.ptr(11360, 11362, 2), new Range16.ptr(11363, 11364, 1), new Range16.ptr(11367, 11373, 2), new Range16.ptr(11374, 11376, 1), new Range16.ptr(11378, 11381, 3), new Range16.ptr(11390, 11392, 1), new Range16.ptr(11394, 11490, 2), new Range16.ptr(11499, 11501, 2), new Range16.ptr(11506, 42560, 31054), new Range16.ptr(42562, 42604, 2), new Range16.ptr(42624, 42650, 2), new Range16.ptr(42786, 42798, 2), new Range16.ptr(42802, 42862, 2), new Range16.ptr(42873, 42877, 2), new Range16.ptr(42878, 42886, 2), new Range16.ptr(42891, 42893, 2), new Range16.ptr(42896, 42898, 2), new Range16.ptr(42902, 42922, 2), new Range16.ptr(42923, 42926, 1), new Range16.ptr(42928, 42932, 1), new Range16.ptr(42934, 65313, 22379), new Range16.ptr(65314, 65338, 1)]), new sliceType$1([new Range32.ptr(66560, 66599, 1), new Range32.ptr(66736, 66771, 1), new Range32.ptr(68736, 68786, 1), new Range32.ptr(71840, 71871, 1), new Range32.ptr(119808, 119833, 1), new Range32.ptr(119860, 119885, 1), new Range32.ptr(119912, 119937, 1), new Range32.ptr(119964, 119966, 2), new Range32.ptr(119967, 119973, 3), new Range32.ptr(119974, 119977, 3), new Range32.ptr(119978, 119980, 1), new Range32.ptr(119982, 119989, 1), new Range32.ptr(120016, 120041, 1), new Range32.ptr(120068, 120069, 1), new Range32.ptr(120071, 120074, 1), new Range32.ptr(120077, 120084, 1), new Range32.ptr(120086, 120092, 1), new Range32.ptr(120120, 120121, 1), new Range32.ptr(120123, 120126, 1), new Range32.ptr(120128, 120132, 1), new Range32.ptr(120134, 120138, 4), new Range32.ptr(120139, 120144, 1), new Range32.ptr(120172, 120197, 1), new Range32.ptr(120224, 120249, 1), new Range32.ptr(120276, 120301, 1), new Range32.ptr(120328, 120353, 1), new Range32.ptr(120380, 120405, 1), new Range32.ptr(120432, 120457, 1), new Range32.ptr(120488, 120512, 1), new Range32.ptr(120546, 120570, 1), new Range32.ptr(120604, 120628, 1), new Range32.ptr(120662, 120686, 1), new Range32.ptr(120720, 120744, 1), new Range32.ptr(120778, 125184, 4406), new Range32.ptr(125185, 125217, 1)]), 3);
  5970. _M = new RangeTable.ptr(new sliceType([new Range16.ptr(768, 879, 1), new Range16.ptr(1155, 1161, 1), new Range16.ptr(1425, 1469, 1), new Range16.ptr(1471, 1473, 2), new Range16.ptr(1474, 1476, 2), new Range16.ptr(1477, 1479, 2), new Range16.ptr(1552, 1562, 1), new Range16.ptr(1611, 1631, 1), new Range16.ptr(1648, 1750, 102), new Range16.ptr(1751, 1756, 1), new Range16.ptr(1759, 1764, 1), new Range16.ptr(1767, 1768, 1), new Range16.ptr(1770, 1773, 1), new Range16.ptr(1809, 1840, 31), new Range16.ptr(1841, 1866, 1), new Range16.ptr(1958, 1968, 1), new Range16.ptr(2027, 2035, 1), new Range16.ptr(2070, 2073, 1), new Range16.ptr(2075, 2083, 1), new Range16.ptr(2085, 2087, 1), new Range16.ptr(2089, 2093, 1), new Range16.ptr(2137, 2139, 1), new Range16.ptr(2260, 2273, 1), new Range16.ptr(2275, 2307, 1), new Range16.ptr(2362, 2364, 1), new Range16.ptr(2366, 2383, 1), new Range16.ptr(2385, 2391, 1), new Range16.ptr(2402, 2403, 1), new Range16.ptr(2433, 2435, 1), new Range16.ptr(2492, 2494, 2), new Range16.ptr(2495, 2500, 1), new Range16.ptr(2503, 2504, 1), new Range16.ptr(2507, 2509, 1), new Range16.ptr(2519, 2530, 11), new Range16.ptr(2531, 2561, 30), new Range16.ptr(2562, 2563, 1), new Range16.ptr(2620, 2622, 2), new Range16.ptr(2623, 2626, 1), new Range16.ptr(2631, 2632, 1), new Range16.ptr(2635, 2637, 1), new Range16.ptr(2641, 2672, 31), new Range16.ptr(2673, 2677, 4), new Range16.ptr(2689, 2691, 1), new Range16.ptr(2748, 2750, 2), new Range16.ptr(2751, 2757, 1), new Range16.ptr(2759, 2761, 1), new Range16.ptr(2763, 2765, 1), new Range16.ptr(2786, 2787, 1), new Range16.ptr(2810, 2815, 1), new Range16.ptr(2817, 2819, 1), new Range16.ptr(2876, 2878, 2), new Range16.ptr(2879, 2884, 1), new Range16.ptr(2887, 2888, 1), new Range16.ptr(2891, 2893, 1), new Range16.ptr(2902, 2903, 1), new Range16.ptr(2914, 2915, 1), new Range16.ptr(2946, 3006, 60), new Range16.ptr(3007, 3010, 1), new Range16.ptr(3014, 3016, 1), new Range16.ptr(3018, 3021, 1), new Range16.ptr(3031, 3072, 41), new Range16.ptr(3073, 3075, 1), new Range16.ptr(3134, 3140, 1), new Range16.ptr(3142, 3144, 1), new Range16.ptr(3146, 3149, 1), new Range16.ptr(3157, 3158, 1), new Range16.ptr(3170, 3171, 1), new Range16.ptr(3201, 3203, 1), new Range16.ptr(3260, 3262, 2), new Range16.ptr(3263, 3268, 1), new Range16.ptr(3270, 3272, 1), new Range16.ptr(3274, 3277, 1), new Range16.ptr(3285, 3286, 1), new Range16.ptr(3298, 3299, 1), new Range16.ptr(3328, 3331, 1), new Range16.ptr(3387, 3388, 1), new Range16.ptr(3390, 3396, 1), new Range16.ptr(3398, 3400, 1), new Range16.ptr(3402, 3405, 1), new Range16.ptr(3415, 3426, 11), new Range16.ptr(3427, 3458, 31), new Range16.ptr(3459, 3530, 71), new Range16.ptr(3535, 3540, 1), new Range16.ptr(3542, 3544, 2), new Range16.ptr(3545, 3551, 1), new Range16.ptr(3570, 3571, 1), new Range16.ptr(3633, 3636, 3), new Range16.ptr(3637, 3642, 1), new Range16.ptr(3655, 3662, 1), new Range16.ptr(3761, 3764, 3), new Range16.ptr(3765, 3769, 1), new Range16.ptr(3771, 3772, 1), new Range16.ptr(3784, 3789, 1), new Range16.ptr(3864, 3865, 1), new Range16.ptr(3893, 3897, 2), new Range16.ptr(3902, 3903, 1), new Range16.ptr(3953, 3972, 1), new Range16.ptr(3974, 3975, 1), new Range16.ptr(3981, 3991, 1), new Range16.ptr(3993, 4028, 1), new Range16.ptr(4038, 4139, 101), new Range16.ptr(4140, 4158, 1), new Range16.ptr(4182, 4185, 1), new Range16.ptr(4190, 4192, 1), new Range16.ptr(4194, 4196, 1), new Range16.ptr(4199, 4205, 1), new Range16.ptr(4209, 4212, 1), new Range16.ptr(4226, 4237, 1), new Range16.ptr(4239, 4250, 11), new Range16.ptr(4251, 4253, 1), new Range16.ptr(4957, 4959, 1), new Range16.ptr(5906, 5908, 1), new Range16.ptr(5938, 5940, 1), new Range16.ptr(5970, 5971, 1), new Range16.ptr(6002, 6003, 1), new Range16.ptr(6068, 6099, 1), new Range16.ptr(6109, 6155, 46), new Range16.ptr(6156, 6157, 1), new Range16.ptr(6277, 6278, 1), new Range16.ptr(6313, 6432, 119), new Range16.ptr(6433, 6443, 1), new Range16.ptr(6448, 6459, 1), new Range16.ptr(6679, 6683, 1), new Range16.ptr(6741, 6750, 1), new Range16.ptr(6752, 6780, 1), new Range16.ptr(6783, 6832, 49), new Range16.ptr(6833, 6846, 1), new Range16.ptr(6912, 6916, 1), new Range16.ptr(6964, 6980, 1), new Range16.ptr(7019, 7027, 1), new Range16.ptr(7040, 7042, 1), new Range16.ptr(7073, 7085, 1), new Range16.ptr(7142, 7155, 1), new Range16.ptr(7204, 7223, 1), new Range16.ptr(7376, 7378, 1), new Range16.ptr(7380, 7400, 1), new Range16.ptr(7405, 7410, 5), new Range16.ptr(7411, 7412, 1), new Range16.ptr(7415, 7417, 1), new Range16.ptr(7616, 7673, 1), new Range16.ptr(7675, 7679, 1), new Range16.ptr(8400, 8432, 1), new Range16.ptr(11503, 11505, 1), new Range16.ptr(11647, 11744, 97), new Range16.ptr(11745, 11775, 1), new Range16.ptr(12330, 12335, 1), new Range16.ptr(12441, 12442, 1), new Range16.ptr(42607, 42610, 1), new Range16.ptr(42612, 42621, 1), new Range16.ptr(42654, 42655, 1), new Range16.ptr(42736, 42737, 1), new Range16.ptr(43010, 43014, 4), new Range16.ptr(43019, 43043, 24), new Range16.ptr(43044, 43047, 1), new Range16.ptr(43136, 43137, 1), new Range16.ptr(43188, 43205, 1), new Range16.ptr(43232, 43249, 1), new Range16.ptr(43302, 43309, 1), new Range16.ptr(43335, 43347, 1), new Range16.ptr(43392, 43395, 1), new Range16.ptr(43443, 43456, 1), new Range16.ptr(43493, 43561, 68), new Range16.ptr(43562, 43574, 1), new Range16.ptr(43587, 43596, 9), new Range16.ptr(43597, 43643, 46), new Range16.ptr(43644, 43645, 1), new Range16.ptr(43696, 43698, 2), new Range16.ptr(43699, 43700, 1), new Range16.ptr(43703, 43704, 1), new Range16.ptr(43710, 43711, 1), new Range16.ptr(43713, 43755, 42), new Range16.ptr(43756, 43759, 1), new Range16.ptr(43765, 43766, 1), new Range16.ptr(44003, 44010, 1), new Range16.ptr(44012, 44013, 1), new Range16.ptr(64286, 65024, 738), new Range16.ptr(65025, 65039, 1), new Range16.ptr(65056, 65071, 1)]), new sliceType$1([new Range32.ptr(66045, 66272, 227), new Range32.ptr(66422, 66426, 1), new Range32.ptr(68097, 68099, 1), new Range32.ptr(68101, 68102, 1), new Range32.ptr(68108, 68111, 1), new Range32.ptr(68152, 68154, 1), new Range32.ptr(68159, 68325, 166), new Range32.ptr(68326, 69632, 1306), new Range32.ptr(69633, 69634, 1), new Range32.ptr(69688, 69702, 1), new Range32.ptr(69759, 69762, 1), new Range32.ptr(69808, 69818, 1), new Range32.ptr(69888, 69890, 1), new Range32.ptr(69927, 69940, 1), new Range32.ptr(70003, 70016, 13), new Range32.ptr(70017, 70018, 1), new Range32.ptr(70067, 70080, 1), new Range32.ptr(70090, 70092, 1), new Range32.ptr(70188, 70199, 1), new Range32.ptr(70206, 70367, 161), new Range32.ptr(70368, 70378, 1), new Range32.ptr(70400, 70403, 1), new Range32.ptr(70460, 70462, 2), new Range32.ptr(70463, 70468, 1), new Range32.ptr(70471, 70472, 1), new Range32.ptr(70475, 70477, 1), new Range32.ptr(70487, 70498, 11), new Range32.ptr(70499, 70502, 3), new Range32.ptr(70503, 70508, 1), new Range32.ptr(70512, 70516, 1), new Range32.ptr(70709, 70726, 1), new Range32.ptr(70832, 70851, 1), new Range32.ptr(71087, 71093, 1), new Range32.ptr(71096, 71104, 1), new Range32.ptr(71132, 71133, 1), new Range32.ptr(71216, 71232, 1), new Range32.ptr(71339, 71351, 1), new Range32.ptr(71453, 71467, 1), new Range32.ptr(72193, 72202, 1), new Range32.ptr(72243, 72249, 1), new Range32.ptr(72251, 72254, 1), new Range32.ptr(72263, 72273, 10), new Range32.ptr(72274, 72283, 1), new Range32.ptr(72330, 72345, 1), new Range32.ptr(72751, 72758, 1), new Range32.ptr(72760, 72767, 1), new Range32.ptr(72850, 72871, 1), new Range32.ptr(72873, 72886, 1), new Range32.ptr(73009, 73014, 1), new Range32.ptr(73018, 73020, 2), new Range32.ptr(73021, 73023, 2), new Range32.ptr(73024, 73029, 1), new Range32.ptr(73031, 92912, 19881), new Range32.ptr(92913, 92916, 1), new Range32.ptr(92976, 92982, 1), new Range32.ptr(94033, 94078, 1), new Range32.ptr(94095, 94098, 1), new Range32.ptr(113821, 113822, 1), new Range32.ptr(119141, 119145, 1), new Range32.ptr(119149, 119154, 1), new Range32.ptr(119163, 119170, 1), new Range32.ptr(119173, 119179, 1), new Range32.ptr(119210, 119213, 1), new Range32.ptr(119362, 119364, 1), new Range32.ptr(121344, 121398, 1), new Range32.ptr(121403, 121452, 1), new Range32.ptr(121461, 121476, 15), new Range32.ptr(121499, 121503, 1), new Range32.ptr(121505, 121519, 1), new Range32.ptr(122880, 122886, 1), new Range32.ptr(122888, 122904, 1), new Range32.ptr(122907, 122913, 1), new Range32.ptr(122915, 122916, 1), new Range32.ptr(122918, 122922, 1), new Range32.ptr(125136, 125142, 1), new Range32.ptr(125252, 125258, 1), new Range32.ptr(917760, 917999, 1)]), 0);
  5971. _Mc = new RangeTable.ptr(new sliceType([new Range16.ptr(2307, 2363, 56), new Range16.ptr(2366, 2368, 1), new Range16.ptr(2377, 2380, 1), new Range16.ptr(2382, 2383, 1), new Range16.ptr(2434, 2435, 1), new Range16.ptr(2494, 2496, 1), new Range16.ptr(2503, 2504, 1), new Range16.ptr(2507, 2508, 1), new Range16.ptr(2519, 2563, 44), new Range16.ptr(2622, 2624, 1), new Range16.ptr(2691, 2750, 59), new Range16.ptr(2751, 2752, 1), new Range16.ptr(2761, 2763, 2), new Range16.ptr(2764, 2818, 54), new Range16.ptr(2819, 2878, 59), new Range16.ptr(2880, 2887, 7), new Range16.ptr(2888, 2891, 3), new Range16.ptr(2892, 2903, 11), new Range16.ptr(3006, 3007, 1), new Range16.ptr(3009, 3010, 1), new Range16.ptr(3014, 3016, 1), new Range16.ptr(3018, 3020, 1), new Range16.ptr(3031, 3073, 42), new Range16.ptr(3074, 3075, 1), new Range16.ptr(3137, 3140, 1), new Range16.ptr(3202, 3203, 1), new Range16.ptr(3262, 3264, 2), new Range16.ptr(3265, 3268, 1), new Range16.ptr(3271, 3272, 1), new Range16.ptr(3274, 3275, 1), new Range16.ptr(3285, 3286, 1), new Range16.ptr(3330, 3331, 1), new Range16.ptr(3390, 3392, 1), new Range16.ptr(3398, 3400, 1), new Range16.ptr(3402, 3404, 1), new Range16.ptr(3415, 3458, 43), new Range16.ptr(3459, 3535, 76), new Range16.ptr(3536, 3537, 1), new Range16.ptr(3544, 3551, 1), new Range16.ptr(3570, 3571, 1), new Range16.ptr(3902, 3903, 1), new Range16.ptr(3967, 4139, 172), new Range16.ptr(4140, 4145, 5), new Range16.ptr(4152, 4155, 3), new Range16.ptr(4156, 4182, 26), new Range16.ptr(4183, 4194, 11), new Range16.ptr(4195, 4196, 1), new Range16.ptr(4199, 4205, 1), new Range16.ptr(4227, 4228, 1), new Range16.ptr(4231, 4236, 1), new Range16.ptr(4239, 4250, 11), new Range16.ptr(4251, 4252, 1), new Range16.ptr(6070, 6078, 8), new Range16.ptr(6079, 6085, 1), new Range16.ptr(6087, 6088, 1), new Range16.ptr(6435, 6438, 1), new Range16.ptr(6441, 6443, 1), new Range16.ptr(6448, 6449, 1), new Range16.ptr(6451, 6456, 1), new Range16.ptr(6681, 6682, 1), new Range16.ptr(6741, 6743, 2), new Range16.ptr(6753, 6755, 2), new Range16.ptr(6756, 6765, 9), new Range16.ptr(6766, 6770, 1), new Range16.ptr(6916, 6965, 49), new Range16.ptr(6971, 6973, 2), new Range16.ptr(6974, 6977, 1), new Range16.ptr(6979, 6980, 1), new Range16.ptr(7042, 7073, 31), new Range16.ptr(7078, 7079, 1), new Range16.ptr(7082, 7143, 61), new Range16.ptr(7146, 7148, 1), new Range16.ptr(7150, 7154, 4), new Range16.ptr(7155, 7204, 49), new Range16.ptr(7205, 7211, 1), new Range16.ptr(7220, 7221, 1), new Range16.ptr(7393, 7410, 17), new Range16.ptr(7411, 7415, 4), new Range16.ptr(12334, 12335, 1), new Range16.ptr(43043, 43044, 1), new Range16.ptr(43047, 43136, 89), new Range16.ptr(43137, 43188, 51), new Range16.ptr(43189, 43203, 1), new Range16.ptr(43346, 43347, 1), new Range16.ptr(43395, 43444, 49), new Range16.ptr(43445, 43450, 5), new Range16.ptr(43451, 43453, 2), new Range16.ptr(43454, 43456, 1), new Range16.ptr(43567, 43568, 1), new Range16.ptr(43571, 43572, 1), new Range16.ptr(43597, 43643, 46), new Range16.ptr(43645, 43755, 110), new Range16.ptr(43758, 43759, 1), new Range16.ptr(43765, 44003, 238), new Range16.ptr(44004, 44006, 2), new Range16.ptr(44007, 44009, 2), new Range16.ptr(44010, 44012, 2)]), new sliceType$1([new Range32.ptr(69632, 69634, 2), new Range32.ptr(69762, 69808, 46), new Range32.ptr(69809, 69810, 1), new Range32.ptr(69815, 69816, 1), new Range32.ptr(69932, 70018, 86), new Range32.ptr(70067, 70069, 1), new Range32.ptr(70079, 70080, 1), new Range32.ptr(70188, 70190, 1), new Range32.ptr(70194, 70195, 1), new Range32.ptr(70197, 70368, 171), new Range32.ptr(70369, 70370, 1), new Range32.ptr(70402, 70403, 1), new Range32.ptr(70462, 70463, 1), new Range32.ptr(70465, 70468, 1), new Range32.ptr(70471, 70472, 1), new Range32.ptr(70475, 70477, 1), new Range32.ptr(70487, 70498, 11), new Range32.ptr(70499, 70709, 210), new Range32.ptr(70710, 70711, 1), new Range32.ptr(70720, 70721, 1), new Range32.ptr(70725, 70832, 107), new Range32.ptr(70833, 70834, 1), new Range32.ptr(70841, 70843, 2), new Range32.ptr(70844, 70846, 1), new Range32.ptr(70849, 71087, 238), new Range32.ptr(71088, 71089, 1), new Range32.ptr(71096, 71099, 1), new Range32.ptr(71102, 71216, 114), new Range32.ptr(71217, 71218, 1), new Range32.ptr(71227, 71228, 1), new Range32.ptr(71230, 71340, 110), new Range32.ptr(71342, 71343, 1), new Range32.ptr(71350, 71456, 106), new Range32.ptr(71457, 71462, 5), new Range32.ptr(72199, 72200, 1), new Range32.ptr(72249, 72279, 30), new Range32.ptr(72280, 72343, 63), new Range32.ptr(72751, 72766, 15), new Range32.ptr(72873, 72881, 8), new Range32.ptr(72884, 94033, 21149), new Range32.ptr(94034, 94078, 1), new Range32.ptr(119141, 119142, 1), new Range32.ptr(119149, 119154, 1)]), 0);
  5972. _Me = new RangeTable.ptr(new sliceType([new Range16.ptr(1160, 1161, 1), new Range16.ptr(6846, 8413, 1567), new Range16.ptr(8414, 8416, 1), new Range16.ptr(8418, 8420, 1), new Range16.ptr(42608, 42610, 1)]), sliceType$1.nil, 0);
  5973. _Mn = new RangeTable.ptr(new sliceType([new Range16.ptr(768, 879, 1), new Range16.ptr(1155, 1159, 1), new Range16.ptr(1425, 1469, 1), new Range16.ptr(1471, 1473, 2), new Range16.ptr(1474, 1476, 2), new Range16.ptr(1477, 1479, 2), new Range16.ptr(1552, 1562, 1), new Range16.ptr(1611, 1631, 1), new Range16.ptr(1648, 1750, 102), new Range16.ptr(1751, 1756, 1), new Range16.ptr(1759, 1764, 1), new Range16.ptr(1767, 1768, 1), new Range16.ptr(1770, 1773, 1), new Range16.ptr(1809, 1840, 31), new Range16.ptr(1841, 1866, 1), new Range16.ptr(1958, 1968, 1), new Range16.ptr(2027, 2035, 1), new Range16.ptr(2070, 2073, 1), new Range16.ptr(2075, 2083, 1), new Range16.ptr(2085, 2087, 1), new Range16.ptr(2089, 2093, 1), new Range16.ptr(2137, 2139, 1), new Range16.ptr(2260, 2273, 1), new Range16.ptr(2275, 2306, 1), new Range16.ptr(2362, 2364, 2), new Range16.ptr(2369, 2376, 1), new Range16.ptr(2381, 2385, 4), new Range16.ptr(2386, 2391, 1), new Range16.ptr(2402, 2403, 1), new Range16.ptr(2433, 2492, 59), new Range16.ptr(2497, 2500, 1), new Range16.ptr(2509, 2530, 21), new Range16.ptr(2531, 2561, 30), new Range16.ptr(2562, 2620, 58), new Range16.ptr(2625, 2626, 1), new Range16.ptr(2631, 2632, 1), new Range16.ptr(2635, 2637, 1), new Range16.ptr(2641, 2672, 31), new Range16.ptr(2673, 2677, 4), new Range16.ptr(2689, 2690, 1), new Range16.ptr(2748, 2753, 5), new Range16.ptr(2754, 2757, 1), new Range16.ptr(2759, 2760, 1), new Range16.ptr(2765, 2786, 21), new Range16.ptr(2787, 2810, 23), new Range16.ptr(2811, 2815, 1), new Range16.ptr(2817, 2876, 59), new Range16.ptr(2879, 2881, 2), new Range16.ptr(2882, 2884, 1), new Range16.ptr(2893, 2902, 9), new Range16.ptr(2914, 2915, 1), new Range16.ptr(2946, 3008, 62), new Range16.ptr(3021, 3072, 51), new Range16.ptr(3134, 3136, 1), new Range16.ptr(3142, 3144, 1), new Range16.ptr(3146, 3149, 1), new Range16.ptr(3157, 3158, 1), new Range16.ptr(3170, 3171, 1), new Range16.ptr(3201, 3260, 59), new Range16.ptr(3263, 3270, 7), new Range16.ptr(3276, 3277, 1), new Range16.ptr(3298, 3299, 1), new Range16.ptr(3328, 3329, 1), new Range16.ptr(3387, 3388, 1), new Range16.ptr(3393, 3396, 1), new Range16.ptr(3405, 3426, 21), new Range16.ptr(3427, 3530, 103), new Range16.ptr(3538, 3540, 1), new Range16.ptr(3542, 3633, 91), new Range16.ptr(3636, 3642, 1), new Range16.ptr(3655, 3662, 1), new Range16.ptr(3761, 3764, 3), new Range16.ptr(3765, 3769, 1), new Range16.ptr(3771, 3772, 1), new Range16.ptr(3784, 3789, 1), new Range16.ptr(3864, 3865, 1), new Range16.ptr(3893, 3897, 2), new Range16.ptr(3953, 3966, 1), new Range16.ptr(3968, 3972, 1), new Range16.ptr(3974, 3975, 1), new Range16.ptr(3981, 3991, 1), new Range16.ptr(3993, 4028, 1), new Range16.ptr(4038, 4141, 103), new Range16.ptr(4142, 4144, 1), new Range16.ptr(4146, 4151, 1), new Range16.ptr(4153, 4154, 1), new Range16.ptr(4157, 4158, 1), new Range16.ptr(4184, 4185, 1), new Range16.ptr(4190, 4192, 1), new Range16.ptr(4209, 4212, 1), new Range16.ptr(4226, 4229, 3), new Range16.ptr(4230, 4237, 7), new Range16.ptr(4253, 4957, 704), new Range16.ptr(4958, 4959, 1), new Range16.ptr(5906, 5908, 1), new Range16.ptr(5938, 5940, 1), new Range16.ptr(5970, 5971, 1), new Range16.ptr(6002, 6003, 1), new Range16.ptr(6068, 6069, 1), new Range16.ptr(6071, 6077, 1), new Range16.ptr(6086, 6089, 3), new Range16.ptr(6090, 6099, 1), new Range16.ptr(6109, 6155, 46), new Range16.ptr(6156, 6157, 1), new Range16.ptr(6277, 6278, 1), new Range16.ptr(6313, 6432, 119), new Range16.ptr(6433, 6434, 1), new Range16.ptr(6439, 6440, 1), new Range16.ptr(6450, 6457, 7), new Range16.ptr(6458, 6459, 1), new Range16.ptr(6679, 6680, 1), new Range16.ptr(6683, 6742, 59), new Range16.ptr(6744, 6750, 1), new Range16.ptr(6752, 6754, 2), new Range16.ptr(6757, 6764, 1), new Range16.ptr(6771, 6780, 1), new Range16.ptr(6783, 6832, 49), new Range16.ptr(6833, 6845, 1), new Range16.ptr(6912, 6915, 1), new Range16.ptr(6964, 6966, 2), new Range16.ptr(6967, 6970, 1), new Range16.ptr(6972, 6978, 6), new Range16.ptr(7019, 7027, 1), new Range16.ptr(7040, 7041, 1), new Range16.ptr(7074, 7077, 1), new Range16.ptr(7080, 7081, 1), new Range16.ptr(7083, 7085, 1), new Range16.ptr(7142, 7144, 2), new Range16.ptr(7145, 7149, 4), new Range16.ptr(7151, 7153, 1), new Range16.ptr(7212, 7219, 1), new Range16.ptr(7222, 7223, 1), new Range16.ptr(7376, 7378, 1), new Range16.ptr(7380, 7392, 1), new Range16.ptr(7394, 7400, 1), new Range16.ptr(7405, 7412, 7), new Range16.ptr(7416, 7417, 1), new Range16.ptr(7616, 7673, 1), new Range16.ptr(7675, 7679, 1), new Range16.ptr(8400, 8412, 1), new Range16.ptr(8417, 8421, 4), new Range16.ptr(8422, 8432, 1), new Range16.ptr(11503, 11505, 1), new Range16.ptr(11647, 11744, 97), new Range16.ptr(11745, 11775, 1), new Range16.ptr(12330, 12333, 1), new Range16.ptr(12441, 12442, 1), new Range16.ptr(42607, 42612, 5), new Range16.ptr(42613, 42621, 1), new Range16.ptr(42654, 42655, 1), new Range16.ptr(42736, 42737, 1), new Range16.ptr(43010, 43014, 4), new Range16.ptr(43019, 43045, 26), new Range16.ptr(43046, 43204, 158), new Range16.ptr(43205, 43232, 27), new Range16.ptr(43233, 43249, 1), new Range16.ptr(43302, 43309, 1), new Range16.ptr(43335, 43345, 1), new Range16.ptr(43392, 43394, 1), new Range16.ptr(43443, 43446, 3), new Range16.ptr(43447, 43449, 1), new Range16.ptr(43452, 43493, 41), new Range16.ptr(43561, 43566, 1), new Range16.ptr(43569, 43570, 1), new Range16.ptr(43573, 43574, 1), new Range16.ptr(43587, 43596, 9), new Range16.ptr(43644, 43696, 52), new Range16.ptr(43698, 43700, 1), new Range16.ptr(43703, 43704, 1), new Range16.ptr(43710, 43711, 1), new Range16.ptr(43713, 43756, 43), new Range16.ptr(43757, 43766, 9), new Range16.ptr(44005, 44008, 3), new Range16.ptr(44013, 64286, 20273), new Range16.ptr(65024, 65039, 1), new Range16.ptr(65056, 65071, 1)]), new sliceType$1([new Range32.ptr(66045, 66272, 227), new Range32.ptr(66422, 66426, 1), new Range32.ptr(68097, 68099, 1), new Range32.ptr(68101, 68102, 1), new Range32.ptr(68108, 68111, 1), new Range32.ptr(68152, 68154, 1), new Range32.ptr(68159, 68325, 166), new Range32.ptr(68326, 69633, 1307), new Range32.ptr(69688, 69702, 1), new Range32.ptr(69759, 69761, 1), new Range32.ptr(69811, 69814, 1), new Range32.ptr(69817, 69818, 1), new Range32.ptr(69888, 69890, 1), new Range32.ptr(69927, 69931, 1), new Range32.ptr(69933, 69940, 1), new Range32.ptr(70003, 70016, 13), new Range32.ptr(70017, 70070, 53), new Range32.ptr(70071, 70078, 1), new Range32.ptr(70090, 70092, 1), new Range32.ptr(70191, 70193, 1), new Range32.ptr(70196, 70198, 2), new Range32.ptr(70199, 70206, 7), new Range32.ptr(70367, 70371, 4), new Range32.ptr(70372, 70378, 1), new Range32.ptr(70400, 70401, 1), new Range32.ptr(70460, 70464, 4), new Range32.ptr(70502, 70508, 1), new Range32.ptr(70512, 70516, 1), new Range32.ptr(70712, 70719, 1), new Range32.ptr(70722, 70724, 1), new Range32.ptr(70726, 70835, 109), new Range32.ptr(70836, 70840, 1), new Range32.ptr(70842, 70847, 5), new Range32.ptr(70848, 70850, 2), new Range32.ptr(70851, 71090, 239), new Range32.ptr(71091, 71093, 1), new Range32.ptr(71100, 71101, 1), new Range32.ptr(71103, 71104, 1), new Range32.ptr(71132, 71133, 1), new Range32.ptr(71219, 71226, 1), new Range32.ptr(71229, 71231, 2), new Range32.ptr(71232, 71339, 107), new Range32.ptr(71341, 71344, 3), new Range32.ptr(71345, 71349, 1), new Range32.ptr(71351, 71453, 102), new Range32.ptr(71454, 71455, 1), new Range32.ptr(71458, 71461, 1), new Range32.ptr(71463, 71467, 1), new Range32.ptr(72193, 72198, 1), new Range32.ptr(72201, 72202, 1), new Range32.ptr(72243, 72248, 1), new Range32.ptr(72251, 72254, 1), new Range32.ptr(72263, 72273, 10), new Range32.ptr(72274, 72278, 1), new Range32.ptr(72281, 72283, 1), new Range32.ptr(72330, 72342, 1), new Range32.ptr(72344, 72345, 1), new Range32.ptr(72752, 72758, 1), new Range32.ptr(72760, 72765, 1), new Range32.ptr(72767, 72850, 83), new Range32.ptr(72851, 72871, 1), new Range32.ptr(72874, 72880, 1), new Range32.ptr(72882, 72883, 1), new Range32.ptr(72885, 72886, 1), new Range32.ptr(73009, 73014, 1), new Range32.ptr(73018, 73020, 2), new Range32.ptr(73021, 73023, 2), new Range32.ptr(73024, 73029, 1), new Range32.ptr(73031, 92912, 19881), new Range32.ptr(92913, 92916, 1), new Range32.ptr(92976, 92982, 1), new Range32.ptr(94095, 94098, 1), new Range32.ptr(113821, 113822, 1), new Range32.ptr(119143, 119145, 1), new Range32.ptr(119163, 119170, 1), new Range32.ptr(119173, 119179, 1), new Range32.ptr(119210, 119213, 1), new Range32.ptr(119362, 119364, 1), new Range32.ptr(121344, 121398, 1), new Range32.ptr(121403, 121452, 1), new Range32.ptr(121461, 121476, 15), new Range32.ptr(121499, 121503, 1), new Range32.ptr(121505, 121519, 1), new Range32.ptr(122880, 122886, 1), new Range32.ptr(122888, 122904, 1), new Range32.ptr(122907, 122913, 1), new Range32.ptr(122915, 122916, 1), new Range32.ptr(122918, 122922, 1), new Range32.ptr(125136, 125142, 1), new Range32.ptr(125252, 125258, 1), new Range32.ptr(917760, 917999, 1)]), 0);
  5974. _N = new RangeTable.ptr(new sliceType([new Range16.ptr(48, 57, 1), new Range16.ptr(178, 179, 1), new Range16.ptr(185, 188, 3), new Range16.ptr(189, 190, 1), new Range16.ptr(1632, 1641, 1), new Range16.ptr(1776, 1785, 1), new Range16.ptr(1984, 1993, 1), new Range16.ptr(2406, 2415, 1), new Range16.ptr(2534, 2543, 1), new Range16.ptr(2548, 2553, 1), new Range16.ptr(2662, 2671, 1), new Range16.ptr(2790, 2799, 1), new Range16.ptr(2918, 2927, 1), new Range16.ptr(2930, 2935, 1), new Range16.ptr(3046, 3058, 1), new Range16.ptr(3174, 3183, 1), new Range16.ptr(3192, 3198, 1), new Range16.ptr(3302, 3311, 1), new Range16.ptr(3416, 3422, 1), new Range16.ptr(3430, 3448, 1), new Range16.ptr(3558, 3567, 1), new Range16.ptr(3664, 3673, 1), new Range16.ptr(3792, 3801, 1), new Range16.ptr(3872, 3891, 1), new Range16.ptr(4160, 4169, 1), new Range16.ptr(4240, 4249, 1), new Range16.ptr(4969, 4988, 1), new Range16.ptr(5870, 5872, 1), new Range16.ptr(6112, 6121, 1), new Range16.ptr(6128, 6137, 1), new Range16.ptr(6160, 6169, 1), new Range16.ptr(6470, 6479, 1), new Range16.ptr(6608, 6618, 1), new Range16.ptr(6784, 6793, 1), new Range16.ptr(6800, 6809, 1), new Range16.ptr(6992, 7001, 1), new Range16.ptr(7088, 7097, 1), new Range16.ptr(7232, 7241, 1), new Range16.ptr(7248, 7257, 1), new Range16.ptr(8304, 8308, 4), new Range16.ptr(8309, 8313, 1), new Range16.ptr(8320, 8329, 1), new Range16.ptr(8528, 8578, 1), new Range16.ptr(8581, 8585, 1), new Range16.ptr(9312, 9371, 1), new Range16.ptr(9450, 9471, 1), new Range16.ptr(10102, 10131, 1), new Range16.ptr(11517, 12295, 778), new Range16.ptr(12321, 12329, 1), new Range16.ptr(12344, 12346, 1), new Range16.ptr(12690, 12693, 1), new Range16.ptr(12832, 12841, 1), new Range16.ptr(12872, 12879, 1), new Range16.ptr(12881, 12895, 1), new Range16.ptr(12928, 12937, 1), new Range16.ptr(12977, 12991, 1), new Range16.ptr(42528, 42537, 1), new Range16.ptr(42726, 42735, 1), new Range16.ptr(43056, 43061, 1), new Range16.ptr(43216, 43225, 1), new Range16.ptr(43264, 43273, 1), new Range16.ptr(43472, 43481, 1), new Range16.ptr(43504, 43513, 1), new Range16.ptr(43600, 43609, 1), new Range16.ptr(44016, 44025, 1), new Range16.ptr(65296, 65305, 1)]), new sliceType$1([new Range32.ptr(65799, 65843, 1), new Range32.ptr(65856, 65912, 1), new Range32.ptr(65930, 65931, 1), new Range32.ptr(66273, 66299, 1), new Range32.ptr(66336, 66339, 1), new Range32.ptr(66369, 66378, 9), new Range32.ptr(66513, 66517, 1), new Range32.ptr(66720, 66729, 1), new Range32.ptr(67672, 67679, 1), new Range32.ptr(67705, 67711, 1), new Range32.ptr(67751, 67759, 1), new Range32.ptr(67835, 67839, 1), new Range32.ptr(67862, 67867, 1), new Range32.ptr(68028, 68029, 1), new Range32.ptr(68032, 68047, 1), new Range32.ptr(68050, 68095, 1), new Range32.ptr(68160, 68167, 1), new Range32.ptr(68221, 68222, 1), new Range32.ptr(68253, 68255, 1), new Range32.ptr(68331, 68335, 1), new Range32.ptr(68440, 68447, 1), new Range32.ptr(68472, 68479, 1), new Range32.ptr(68521, 68527, 1), new Range32.ptr(68858, 68863, 1), new Range32.ptr(69216, 69246, 1), new Range32.ptr(69714, 69743, 1), new Range32.ptr(69872, 69881, 1), new Range32.ptr(69942, 69951, 1), new Range32.ptr(70096, 70105, 1), new Range32.ptr(70113, 70132, 1), new Range32.ptr(70384, 70393, 1), new Range32.ptr(70736, 70745, 1), new Range32.ptr(70864, 70873, 1), new Range32.ptr(71248, 71257, 1), new Range32.ptr(71360, 71369, 1), new Range32.ptr(71472, 71483, 1), new Range32.ptr(71904, 71922, 1), new Range32.ptr(72784, 72812, 1), new Range32.ptr(73040, 73049, 1), new Range32.ptr(74752, 74862, 1), new Range32.ptr(92768, 92777, 1), new Range32.ptr(93008, 93017, 1), new Range32.ptr(93019, 93025, 1), new Range32.ptr(119648, 119665, 1), new Range32.ptr(120782, 120831, 1), new Range32.ptr(125127, 125135, 1), new Range32.ptr(125264, 125273, 1), new Range32.ptr(127232, 127244, 1)]), 4);
  5975. _Nd = new RangeTable.ptr(new sliceType([new Range16.ptr(48, 57, 1), new Range16.ptr(1632, 1641, 1), new Range16.ptr(1776, 1785, 1), new Range16.ptr(1984, 1993, 1), new Range16.ptr(2406, 2415, 1), new Range16.ptr(2534, 2543, 1), new Range16.ptr(2662, 2671, 1), new Range16.ptr(2790, 2799, 1), new Range16.ptr(2918, 2927, 1), new Range16.ptr(3046, 3055, 1), new Range16.ptr(3174, 3183, 1), new Range16.ptr(3302, 3311, 1), new Range16.ptr(3430, 3439, 1), new Range16.ptr(3558, 3567, 1), new Range16.ptr(3664, 3673, 1), new Range16.ptr(3792, 3801, 1), new Range16.ptr(3872, 3881, 1), new Range16.ptr(4160, 4169, 1), new Range16.ptr(4240, 4249, 1), new Range16.ptr(6112, 6121, 1), new Range16.ptr(6160, 6169, 1), new Range16.ptr(6470, 6479, 1), new Range16.ptr(6608, 6617, 1), new Range16.ptr(6784, 6793, 1), new Range16.ptr(6800, 6809, 1), new Range16.ptr(6992, 7001, 1), new Range16.ptr(7088, 7097, 1), new Range16.ptr(7232, 7241, 1), new Range16.ptr(7248, 7257, 1), new Range16.ptr(42528, 42537, 1), new Range16.ptr(43216, 43225, 1), new Range16.ptr(43264, 43273, 1), new Range16.ptr(43472, 43481, 1), new Range16.ptr(43504, 43513, 1), new Range16.ptr(43600, 43609, 1), new Range16.ptr(44016, 44025, 1), new Range16.ptr(65296, 65305, 1)]), new sliceType$1([new Range32.ptr(66720, 66729, 1), new Range32.ptr(69734, 69743, 1), new Range32.ptr(69872, 69881, 1), new Range32.ptr(69942, 69951, 1), new Range32.ptr(70096, 70105, 1), new Range32.ptr(70384, 70393, 1), new Range32.ptr(70736, 70745, 1), new Range32.ptr(70864, 70873, 1), new Range32.ptr(71248, 71257, 1), new Range32.ptr(71360, 71369, 1), new Range32.ptr(71472, 71481, 1), new Range32.ptr(71904, 71913, 1), new Range32.ptr(72784, 72793, 1), new Range32.ptr(73040, 73049, 1), new Range32.ptr(92768, 92777, 1), new Range32.ptr(93008, 93017, 1), new Range32.ptr(120782, 120831, 1), new Range32.ptr(125264, 125273, 1)]), 1);
  5976. _Nl = new RangeTable.ptr(new sliceType([new Range16.ptr(5870, 5872, 1), new Range16.ptr(8544, 8578, 1), new Range16.ptr(8581, 8584, 1), new Range16.ptr(12295, 12321, 26), new Range16.ptr(12322, 12329, 1), new Range16.ptr(12344, 12346, 1), new Range16.ptr(42726, 42735, 1)]), new sliceType$1([new Range32.ptr(65856, 65908, 1), new Range32.ptr(66369, 66378, 9), new Range32.ptr(66513, 66517, 1), new Range32.ptr(74752, 74862, 1)]), 0);
  5977. _No = new RangeTable.ptr(new sliceType([new Range16.ptr(178, 179, 1), new Range16.ptr(185, 188, 3), new Range16.ptr(189, 190, 1), new Range16.ptr(2548, 2553, 1), new Range16.ptr(2930, 2935, 1), new Range16.ptr(3056, 3058, 1), new Range16.ptr(3192, 3198, 1), new Range16.ptr(3416, 3422, 1), new Range16.ptr(3440, 3448, 1), new Range16.ptr(3882, 3891, 1), new Range16.ptr(4969, 4988, 1), new Range16.ptr(6128, 6137, 1), new Range16.ptr(6618, 8304, 1686), new Range16.ptr(8308, 8313, 1), new Range16.ptr(8320, 8329, 1), new Range16.ptr(8528, 8543, 1), new Range16.ptr(8585, 9312, 727), new Range16.ptr(9313, 9371, 1), new Range16.ptr(9450, 9471, 1), new Range16.ptr(10102, 10131, 1), new Range16.ptr(11517, 12690, 1173), new Range16.ptr(12691, 12693, 1), new Range16.ptr(12832, 12841, 1), new Range16.ptr(12872, 12879, 1), new Range16.ptr(12881, 12895, 1), new Range16.ptr(12928, 12937, 1), new Range16.ptr(12977, 12991, 1), new Range16.ptr(43056, 43061, 1)]), new sliceType$1([new Range32.ptr(65799, 65843, 1), new Range32.ptr(65909, 65912, 1), new Range32.ptr(65930, 65931, 1), new Range32.ptr(66273, 66299, 1), new Range32.ptr(66336, 66339, 1), new Range32.ptr(67672, 67679, 1), new Range32.ptr(67705, 67711, 1), new Range32.ptr(67751, 67759, 1), new Range32.ptr(67835, 67839, 1), new Range32.ptr(67862, 67867, 1), new Range32.ptr(68028, 68029, 1), new Range32.ptr(68032, 68047, 1), new Range32.ptr(68050, 68095, 1), new Range32.ptr(68160, 68167, 1), new Range32.ptr(68221, 68222, 1), new Range32.ptr(68253, 68255, 1), new Range32.ptr(68331, 68335, 1), new Range32.ptr(68440, 68447, 1), new Range32.ptr(68472, 68479, 1), new Range32.ptr(68521, 68527, 1), new Range32.ptr(68858, 68863, 1), new Range32.ptr(69216, 69246, 1), new Range32.ptr(69714, 69733, 1), new Range32.ptr(70113, 70132, 1), new Range32.ptr(71482, 71483, 1), new Range32.ptr(71914, 71922, 1), new Range32.ptr(72794, 72812, 1), new Range32.ptr(93019, 93025, 1), new Range32.ptr(119648, 119665, 1), new Range32.ptr(125127, 125135, 1), new Range32.ptr(127232, 127244, 1)]), 3);
  5978. _P = new RangeTable.ptr(new sliceType([new Range16.ptr(33, 35, 1), new Range16.ptr(37, 42, 1), new Range16.ptr(44, 47, 1), new Range16.ptr(58, 59, 1), new Range16.ptr(63, 64, 1), new Range16.ptr(91, 93, 1), new Range16.ptr(95, 123, 28), new Range16.ptr(125, 161, 36), new Range16.ptr(167, 171, 4), new Range16.ptr(182, 183, 1), new Range16.ptr(187, 191, 4), new Range16.ptr(894, 903, 9), new Range16.ptr(1370, 1375, 1), new Range16.ptr(1417, 1418, 1), new Range16.ptr(1470, 1472, 2), new Range16.ptr(1475, 1478, 3), new Range16.ptr(1523, 1524, 1), new Range16.ptr(1545, 1546, 1), new Range16.ptr(1548, 1549, 1), new Range16.ptr(1563, 1566, 3), new Range16.ptr(1567, 1642, 75), new Range16.ptr(1643, 1645, 1), new Range16.ptr(1748, 1792, 44), new Range16.ptr(1793, 1805, 1), new Range16.ptr(2039, 2041, 1), new Range16.ptr(2096, 2110, 1), new Range16.ptr(2142, 2404, 262), new Range16.ptr(2405, 2416, 11), new Range16.ptr(2557, 2800, 243), new Range16.ptr(3572, 3663, 91), new Range16.ptr(3674, 3675, 1), new Range16.ptr(3844, 3858, 1), new Range16.ptr(3860, 3898, 38), new Range16.ptr(3899, 3901, 1), new Range16.ptr(3973, 4048, 75), new Range16.ptr(4049, 4052, 1), new Range16.ptr(4057, 4058, 1), new Range16.ptr(4170, 4175, 1), new Range16.ptr(4347, 4960, 613), new Range16.ptr(4961, 4968, 1), new Range16.ptr(5120, 5741, 621), new Range16.ptr(5742, 5787, 45), new Range16.ptr(5788, 5867, 79), new Range16.ptr(5868, 5869, 1), new Range16.ptr(5941, 5942, 1), new Range16.ptr(6100, 6102, 1), new Range16.ptr(6104, 6106, 1), new Range16.ptr(6144, 6154, 1), new Range16.ptr(6468, 6469, 1), new Range16.ptr(6686, 6687, 1), new Range16.ptr(6816, 6822, 1), new Range16.ptr(6824, 6829, 1), new Range16.ptr(7002, 7008, 1), new Range16.ptr(7164, 7167, 1), new Range16.ptr(7227, 7231, 1), new Range16.ptr(7294, 7295, 1), new Range16.ptr(7360, 7367, 1), new Range16.ptr(7379, 8208, 829), new Range16.ptr(8209, 8231, 1), new Range16.ptr(8240, 8259, 1), new Range16.ptr(8261, 8273, 1), new Range16.ptr(8275, 8286, 1), new Range16.ptr(8317, 8318, 1), new Range16.ptr(8333, 8334, 1), new Range16.ptr(8968, 8971, 1), new Range16.ptr(9001, 9002, 1), new Range16.ptr(10088, 10101, 1), new Range16.ptr(10181, 10182, 1), new Range16.ptr(10214, 10223, 1), new Range16.ptr(10627, 10648, 1), new Range16.ptr(10712, 10715, 1), new Range16.ptr(10748, 10749, 1), new Range16.ptr(11513, 11516, 1), new Range16.ptr(11518, 11519, 1), new Range16.ptr(11632, 11776, 144), new Range16.ptr(11777, 11822, 1), new Range16.ptr(11824, 11849, 1), new Range16.ptr(12289, 12291, 1), new Range16.ptr(12296, 12305, 1), new Range16.ptr(12308, 12319, 1), new Range16.ptr(12336, 12349, 13), new Range16.ptr(12448, 12539, 91), new Range16.ptr(42238, 42239, 1), new Range16.ptr(42509, 42511, 1), new Range16.ptr(42611, 42622, 11), new Range16.ptr(42738, 42743, 1), new Range16.ptr(43124, 43127, 1), new Range16.ptr(43214, 43215, 1), new Range16.ptr(43256, 43258, 1), new Range16.ptr(43260, 43310, 50), new Range16.ptr(43311, 43359, 48), new Range16.ptr(43457, 43469, 1), new Range16.ptr(43486, 43487, 1), new Range16.ptr(43612, 43615, 1), new Range16.ptr(43742, 43743, 1), new Range16.ptr(43760, 43761, 1), new Range16.ptr(44011, 64830, 20819), new Range16.ptr(64831, 65040, 209), new Range16.ptr(65041, 65049, 1), new Range16.ptr(65072, 65106, 1), new Range16.ptr(65108, 65121, 1), new Range16.ptr(65123, 65128, 5), new Range16.ptr(65130, 65131, 1), new Range16.ptr(65281, 65283, 1), new Range16.ptr(65285, 65290, 1), new Range16.ptr(65292, 65295, 1), new Range16.ptr(65306, 65307, 1), new Range16.ptr(65311, 65312, 1), new Range16.ptr(65339, 65341, 1), new Range16.ptr(65343, 65371, 28), new Range16.ptr(65373, 65375, 2), new Range16.ptr(65376, 65381, 1)]), new sliceType$1([new Range32.ptr(65792, 65794, 1), new Range32.ptr(66463, 66512, 49), new Range32.ptr(66927, 67671, 744), new Range32.ptr(67871, 67903, 32), new Range32.ptr(68176, 68184, 1), new Range32.ptr(68223, 68336, 113), new Range32.ptr(68337, 68342, 1), new Range32.ptr(68409, 68415, 1), new Range32.ptr(68505, 68508, 1), new Range32.ptr(69703, 69709, 1), new Range32.ptr(69819, 69820, 1), new Range32.ptr(69822, 69825, 1), new Range32.ptr(69952, 69955, 1), new Range32.ptr(70004, 70005, 1), new Range32.ptr(70085, 70089, 1), new Range32.ptr(70093, 70107, 14), new Range32.ptr(70109, 70111, 1), new Range32.ptr(70200, 70205, 1), new Range32.ptr(70313, 70731, 418), new Range32.ptr(70732, 70735, 1), new Range32.ptr(70747, 70749, 2), new Range32.ptr(70854, 71105, 251), new Range32.ptr(71106, 71127, 1), new Range32.ptr(71233, 71235, 1), new Range32.ptr(71264, 71276, 1), new Range32.ptr(71484, 71486, 1), new Range32.ptr(72255, 72262, 1), new Range32.ptr(72346, 72348, 1), new Range32.ptr(72350, 72354, 1), new Range32.ptr(72769, 72773, 1), new Range32.ptr(72816, 72817, 1), new Range32.ptr(74864, 74868, 1), new Range32.ptr(92782, 92783, 1), new Range32.ptr(92917, 92983, 66), new Range32.ptr(92984, 92987, 1), new Range32.ptr(92996, 113823, 20827), new Range32.ptr(121479, 121483, 1), new Range32.ptr(125278, 125279, 1)]), 11);
  5979. _Pc = new RangeTable.ptr(new sliceType([new Range16.ptr(95, 8255, 8160), new Range16.ptr(8256, 8276, 20), new Range16.ptr(65075, 65076, 1), new Range16.ptr(65101, 65103, 1), new Range16.ptr(65343, 65343, 1)]), sliceType$1.nil, 0);
  5980. _Pd = new RangeTable.ptr(new sliceType([new Range16.ptr(45, 1418, 1373), new Range16.ptr(1470, 5120, 3650), new Range16.ptr(6150, 8208, 2058), new Range16.ptr(8209, 8213, 1), new Range16.ptr(11799, 11802, 3), new Range16.ptr(11834, 11835, 1), new Range16.ptr(11840, 12316, 476), new Range16.ptr(12336, 12448, 112), new Range16.ptr(65073, 65074, 1), new Range16.ptr(65112, 65123, 11), new Range16.ptr(65293, 65293, 1)]), sliceType$1.nil, 0);
  5981. _Pe = new RangeTable.ptr(new sliceType([new Range16.ptr(41, 93, 52), new Range16.ptr(125, 3899, 3774), new Range16.ptr(3901, 5788, 1887), new Range16.ptr(8262, 8318, 56), new Range16.ptr(8334, 8969, 635), new Range16.ptr(8971, 9002, 31), new Range16.ptr(10089, 10101, 2), new Range16.ptr(10182, 10215, 33), new Range16.ptr(10217, 10223, 2), new Range16.ptr(10628, 10648, 2), new Range16.ptr(10713, 10715, 2), new Range16.ptr(10749, 11811, 1062), new Range16.ptr(11813, 11817, 2), new Range16.ptr(12297, 12305, 2), new Range16.ptr(12309, 12315, 2), new Range16.ptr(12318, 12319, 1), new Range16.ptr(64830, 65048, 218), new Range16.ptr(65078, 65092, 2), new Range16.ptr(65096, 65114, 18), new Range16.ptr(65116, 65118, 2), new Range16.ptr(65289, 65341, 52), new Range16.ptr(65373, 65379, 3)]), sliceType$1.nil, 1);
  5982. _Pf = new RangeTable.ptr(new sliceType([new Range16.ptr(187, 8217, 8030), new Range16.ptr(8221, 8250, 29), new Range16.ptr(11779, 11781, 2), new Range16.ptr(11786, 11789, 3), new Range16.ptr(11805, 11809, 4)]), sliceType$1.nil, 0);
  5983. _Pi = new RangeTable.ptr(new sliceType([new Range16.ptr(171, 8216, 8045), new Range16.ptr(8219, 8220, 1), new Range16.ptr(8223, 8249, 26), new Range16.ptr(11778, 11780, 2), new Range16.ptr(11785, 11788, 3), new Range16.ptr(11804, 11808, 4)]), sliceType$1.nil, 0);
  5984. _Po = new RangeTable.ptr(new sliceType([new Range16.ptr(33, 35, 1), new Range16.ptr(37, 39, 1), new Range16.ptr(42, 46, 2), new Range16.ptr(47, 58, 11), new Range16.ptr(59, 63, 4), new Range16.ptr(64, 92, 28), new Range16.ptr(161, 167, 6), new Range16.ptr(182, 183, 1), new Range16.ptr(191, 894, 703), new Range16.ptr(903, 1370, 467), new Range16.ptr(1371, 1375, 1), new Range16.ptr(1417, 1472, 55), new Range16.ptr(1475, 1478, 3), new Range16.ptr(1523, 1524, 1), new Range16.ptr(1545, 1546, 1), new Range16.ptr(1548, 1549, 1), new Range16.ptr(1563, 1566, 3), new Range16.ptr(1567, 1642, 75), new Range16.ptr(1643, 1645, 1), new Range16.ptr(1748, 1792, 44), new Range16.ptr(1793, 1805, 1), new Range16.ptr(2039, 2041, 1), new Range16.ptr(2096, 2110, 1), new Range16.ptr(2142, 2404, 262), new Range16.ptr(2405, 2416, 11), new Range16.ptr(2557, 2800, 243), new Range16.ptr(3572, 3663, 91), new Range16.ptr(3674, 3675, 1), new Range16.ptr(3844, 3858, 1), new Range16.ptr(3860, 3973, 113), new Range16.ptr(4048, 4052, 1), new Range16.ptr(4057, 4058, 1), new Range16.ptr(4170, 4175, 1), new Range16.ptr(4347, 4960, 613), new Range16.ptr(4961, 4968, 1), new Range16.ptr(5741, 5742, 1), new Range16.ptr(5867, 5869, 1), new Range16.ptr(5941, 5942, 1), new Range16.ptr(6100, 6102, 1), new Range16.ptr(6104, 6106, 1), new Range16.ptr(6144, 6149, 1), new Range16.ptr(6151, 6154, 1), new Range16.ptr(6468, 6469, 1), new Range16.ptr(6686, 6687, 1), new Range16.ptr(6816, 6822, 1), new Range16.ptr(6824, 6829, 1), new Range16.ptr(7002, 7008, 1), new Range16.ptr(7164, 7167, 1), new Range16.ptr(7227, 7231, 1), new Range16.ptr(7294, 7295, 1), new Range16.ptr(7360, 7367, 1), new Range16.ptr(7379, 8214, 835), new Range16.ptr(8215, 8224, 9), new Range16.ptr(8225, 8231, 1), new Range16.ptr(8240, 8248, 1), new Range16.ptr(8251, 8254, 1), new Range16.ptr(8257, 8259, 1), new Range16.ptr(8263, 8273, 1), new Range16.ptr(8275, 8277, 2), new Range16.ptr(8278, 8286, 1), new Range16.ptr(11513, 11516, 1), new Range16.ptr(11518, 11519, 1), new Range16.ptr(11632, 11776, 144), new Range16.ptr(11777, 11782, 5), new Range16.ptr(11783, 11784, 1), new Range16.ptr(11787, 11790, 3), new Range16.ptr(11791, 11798, 1), new Range16.ptr(11800, 11801, 1), new Range16.ptr(11803, 11806, 3), new Range16.ptr(11807, 11818, 11), new Range16.ptr(11819, 11822, 1), new Range16.ptr(11824, 11833, 1), new Range16.ptr(11836, 11839, 1), new Range16.ptr(11841, 11843, 2), new Range16.ptr(11844, 11849, 1), new Range16.ptr(12289, 12291, 1), new Range16.ptr(12349, 12539, 190), new Range16.ptr(42238, 42239, 1), new Range16.ptr(42509, 42511, 1), new Range16.ptr(42611, 42622, 11), new Range16.ptr(42738, 42743, 1), new Range16.ptr(43124, 43127, 1), new Range16.ptr(43214, 43215, 1), new Range16.ptr(43256, 43258, 1), new Range16.ptr(43260, 43310, 50), new Range16.ptr(43311, 43359, 48), new Range16.ptr(43457, 43469, 1), new Range16.ptr(43486, 43487, 1), new Range16.ptr(43612, 43615, 1), new Range16.ptr(43742, 43743, 1), new Range16.ptr(43760, 43761, 1), new Range16.ptr(44011, 65040, 21029), new Range16.ptr(65041, 65046, 1), new Range16.ptr(65049, 65072, 23), new Range16.ptr(65093, 65094, 1), new Range16.ptr(65097, 65100, 1), new Range16.ptr(65104, 65106, 1), new Range16.ptr(65108, 65111, 1), new Range16.ptr(65119, 65121, 1), new Range16.ptr(65128, 65130, 2), new Range16.ptr(65131, 65281, 150), new Range16.ptr(65282, 65283, 1), new Range16.ptr(65285, 65287, 1), new Range16.ptr(65290, 65294, 2), new Range16.ptr(65295, 65306, 11), new Range16.ptr(65307, 65311, 4), new Range16.ptr(65312, 65340, 28), new Range16.ptr(65377, 65380, 3), new Range16.ptr(65381, 65381, 1)]), new sliceType$1([new Range32.ptr(65792, 65792, 1), new Range32.ptr(65793, 65794, 1), new Range32.ptr(66463, 66512, 49), new Range32.ptr(66927, 67671, 744), new Range32.ptr(67871, 67903, 32), new Range32.ptr(68176, 68184, 1), new Range32.ptr(68223, 68336, 113), new Range32.ptr(68337, 68342, 1), new Range32.ptr(68409, 68415, 1), new Range32.ptr(68505, 68508, 1), new Range32.ptr(69703, 69709, 1), new Range32.ptr(69819, 69820, 1), new Range32.ptr(69822, 69825, 1), new Range32.ptr(69952, 69955, 1), new Range32.ptr(70004, 70005, 1), new Range32.ptr(70085, 70089, 1), new Range32.ptr(70093, 70107, 14), new Range32.ptr(70109, 70111, 1), new Range32.ptr(70200, 70205, 1), new Range32.ptr(70313, 70731, 418), new Range32.ptr(70732, 70735, 1), new Range32.ptr(70747, 70749, 2), new Range32.ptr(70854, 71105, 251), new Range32.ptr(71106, 71127, 1), new Range32.ptr(71233, 71235, 1), new Range32.ptr(71264, 71276, 1), new Range32.ptr(71484, 71486, 1), new Range32.ptr(72255, 72262, 1), new Range32.ptr(72346, 72348, 1), new Range32.ptr(72350, 72354, 1), new Range32.ptr(72769, 72773, 1), new Range32.ptr(72816, 72817, 1), new Range32.ptr(74864, 74868, 1), new Range32.ptr(92782, 92783, 1), new Range32.ptr(92917, 92983, 66), new Range32.ptr(92984, 92987, 1), new Range32.ptr(92996, 113823, 20827), new Range32.ptr(121479, 121483, 1), new Range32.ptr(125278, 125279, 1)]), 8);
  5985. _Ps = new RangeTable.ptr(new sliceType([new Range16.ptr(40, 91, 51), new Range16.ptr(123, 3898, 3775), new Range16.ptr(3900, 5787, 1887), new Range16.ptr(8218, 8222, 4), new Range16.ptr(8261, 8317, 56), new Range16.ptr(8333, 8968, 635), new Range16.ptr(8970, 9001, 31), new Range16.ptr(10088, 10100, 2), new Range16.ptr(10181, 10214, 33), new Range16.ptr(10216, 10222, 2), new Range16.ptr(10627, 10647, 2), new Range16.ptr(10712, 10714, 2), new Range16.ptr(10748, 11810, 1062), new Range16.ptr(11812, 11816, 2), new Range16.ptr(11842, 12296, 454), new Range16.ptr(12298, 12304, 2), new Range16.ptr(12308, 12314, 2), new Range16.ptr(12317, 64831, 52514), new Range16.ptr(65047, 65077, 30), new Range16.ptr(65079, 65091, 2), new Range16.ptr(65095, 65113, 18), new Range16.ptr(65115, 65117, 2), new Range16.ptr(65288, 65339, 51), new Range16.ptr(65371, 65375, 4), new Range16.ptr(65378, 65378, 1)]), sliceType$1.nil, 1);
  5986. _S = new RangeTable.ptr(new sliceType([new Range16.ptr(36, 43, 7), new Range16.ptr(60, 62, 1), new Range16.ptr(94, 96, 2), new Range16.ptr(124, 126, 2), new Range16.ptr(162, 166, 1), new Range16.ptr(168, 169, 1), new Range16.ptr(172, 174, 2), new Range16.ptr(175, 177, 1), new Range16.ptr(180, 184, 4), new Range16.ptr(215, 247, 32), new Range16.ptr(706, 709, 1), new Range16.ptr(722, 735, 1), new Range16.ptr(741, 747, 1), new Range16.ptr(749, 751, 2), new Range16.ptr(752, 767, 1), new Range16.ptr(885, 900, 15), new Range16.ptr(901, 1014, 113), new Range16.ptr(1154, 1421, 267), new Range16.ptr(1422, 1423, 1), new Range16.ptr(1542, 1544, 1), new Range16.ptr(1547, 1550, 3), new Range16.ptr(1551, 1758, 207), new Range16.ptr(1769, 1789, 20), new Range16.ptr(1790, 2038, 248), new Range16.ptr(2546, 2547, 1), new Range16.ptr(2554, 2555, 1), new Range16.ptr(2801, 2928, 127), new Range16.ptr(3059, 3066, 1), new Range16.ptr(3199, 3407, 208), new Range16.ptr(3449, 3647, 198), new Range16.ptr(3841, 3843, 1), new Range16.ptr(3859, 3861, 2), new Range16.ptr(3862, 3863, 1), new Range16.ptr(3866, 3871, 1), new Range16.ptr(3892, 3896, 2), new Range16.ptr(4030, 4037, 1), new Range16.ptr(4039, 4044, 1), new Range16.ptr(4046, 4047, 1), new Range16.ptr(4053, 4056, 1), new Range16.ptr(4254, 4255, 1), new Range16.ptr(5008, 5017, 1), new Range16.ptr(6107, 6464, 357), new Range16.ptr(6622, 6655, 1), new Range16.ptr(7009, 7018, 1), new Range16.ptr(7028, 7036, 1), new Range16.ptr(8125, 8127, 2), new Range16.ptr(8128, 8129, 1), new Range16.ptr(8141, 8143, 1), new Range16.ptr(8157, 8159, 1), new Range16.ptr(8173, 8175, 1), new Range16.ptr(8189, 8190, 1), new Range16.ptr(8260, 8274, 14), new Range16.ptr(8314, 8316, 1), new Range16.ptr(8330, 8332, 1), new Range16.ptr(8352, 8383, 1), new Range16.ptr(8448, 8449, 1), new Range16.ptr(8451, 8454, 1), new Range16.ptr(8456, 8457, 1), new Range16.ptr(8468, 8470, 2), new Range16.ptr(8471, 8472, 1), new Range16.ptr(8478, 8483, 1), new Range16.ptr(8485, 8489, 2), new Range16.ptr(8494, 8506, 12), new Range16.ptr(8507, 8512, 5), new Range16.ptr(8513, 8516, 1), new Range16.ptr(8522, 8525, 1), new Range16.ptr(8527, 8586, 59), new Range16.ptr(8587, 8592, 5), new Range16.ptr(8593, 8967, 1), new Range16.ptr(8972, 9000, 1), new Range16.ptr(9003, 9254, 1), new Range16.ptr(9280, 9290, 1), new Range16.ptr(9372, 9449, 1), new Range16.ptr(9472, 10087, 1), new Range16.ptr(10132, 10180, 1), new Range16.ptr(10183, 10213, 1), new Range16.ptr(10224, 10626, 1), new Range16.ptr(10649, 10711, 1), new Range16.ptr(10716, 10747, 1), new Range16.ptr(10750, 11123, 1), new Range16.ptr(11126, 11157, 1), new Range16.ptr(11160, 11193, 1), new Range16.ptr(11197, 11208, 1), new Range16.ptr(11210, 11218, 1), new Range16.ptr(11244, 11247, 1), new Range16.ptr(11493, 11498, 1), new Range16.ptr(11904, 11929, 1), new Range16.ptr(11931, 12019, 1), new Range16.ptr(12032, 12245, 1), new Range16.ptr(12272, 12283, 1), new Range16.ptr(12292, 12306, 14), new Range16.ptr(12307, 12320, 13), new Range16.ptr(12342, 12343, 1), new Range16.ptr(12350, 12351, 1), new Range16.ptr(12443, 12444, 1), new Range16.ptr(12688, 12689, 1), new Range16.ptr(12694, 12703, 1), new Range16.ptr(12736, 12771, 1), new Range16.ptr(12800, 12830, 1), new Range16.ptr(12842, 12871, 1), new Range16.ptr(12880, 12896, 16), new Range16.ptr(12897, 12927, 1), new Range16.ptr(12938, 12976, 1), new Range16.ptr(12992, 13054, 1), new Range16.ptr(13056, 13311, 1), new Range16.ptr(19904, 19967, 1), new Range16.ptr(42128, 42182, 1), new Range16.ptr(42752, 42774, 1), new Range16.ptr(42784, 42785, 1), new Range16.ptr(42889, 42890, 1), new Range16.ptr(43048, 43051, 1), new Range16.ptr(43062, 43065, 1), new Range16.ptr(43639, 43641, 1), new Range16.ptr(43867, 64297, 20430), new Range16.ptr(64434, 64449, 1), new Range16.ptr(65020, 65021, 1), new Range16.ptr(65122, 65124, 2), new Range16.ptr(65125, 65126, 1), new Range16.ptr(65129, 65284, 155), new Range16.ptr(65291, 65308, 17), new Range16.ptr(65309, 65310, 1), new Range16.ptr(65342, 65344, 2), new Range16.ptr(65372, 65374, 2), new Range16.ptr(65504, 65510, 1), new Range16.ptr(65512, 65518, 1), new Range16.ptr(65532, 65533, 1)]), new sliceType$1([new Range32.ptr(65847, 65855, 1), new Range32.ptr(65913, 65929, 1), new Range32.ptr(65932, 65934, 1), new Range32.ptr(65936, 65947, 1), new Range32.ptr(65952, 66000, 48), new Range32.ptr(66001, 66044, 1), new Range32.ptr(67703, 67704, 1), new Range32.ptr(68296, 71487, 3191), new Range32.ptr(92988, 92991, 1), new Range32.ptr(92997, 113820, 20823), new Range32.ptr(118784, 119029, 1), new Range32.ptr(119040, 119078, 1), new Range32.ptr(119081, 119140, 1), new Range32.ptr(119146, 119148, 1), new Range32.ptr(119171, 119172, 1), new Range32.ptr(119180, 119209, 1), new Range32.ptr(119214, 119272, 1), new Range32.ptr(119296, 119361, 1), new Range32.ptr(119365, 119552, 187), new Range32.ptr(119553, 119638, 1), new Range32.ptr(120513, 120539, 26), new Range32.ptr(120571, 120597, 26), new Range32.ptr(120629, 120655, 26), new Range32.ptr(120687, 120713, 26), new Range32.ptr(120745, 120771, 26), new Range32.ptr(120832, 121343, 1), new Range32.ptr(121399, 121402, 1), new Range32.ptr(121453, 121460, 1), new Range32.ptr(121462, 121475, 1), new Range32.ptr(121477, 121478, 1), new Range32.ptr(126704, 126705, 1), new Range32.ptr(126976, 127019, 1), new Range32.ptr(127024, 127123, 1), new Range32.ptr(127136, 127150, 1), new Range32.ptr(127153, 127167, 1), new Range32.ptr(127169, 127183, 1), new Range32.ptr(127185, 127221, 1), new Range32.ptr(127248, 127278, 1), new Range32.ptr(127280, 127339, 1), new Range32.ptr(127344, 127404, 1), new Range32.ptr(127462, 127490, 1), new Range32.ptr(127504, 127547, 1), new Range32.ptr(127552, 127560, 1), new Range32.ptr(127568, 127569, 1), new Range32.ptr(127584, 127589, 1), new Range32.ptr(127744, 128724, 1), new Range32.ptr(128736, 128748, 1), new Range32.ptr(128752, 128760, 1), new Range32.ptr(128768, 128883, 1), new Range32.ptr(128896, 128980, 1), new Range32.ptr(129024, 129035, 1), new Range32.ptr(129040, 129095, 1), new Range32.ptr(129104, 129113, 1), new Range32.ptr(129120, 129159, 1), new Range32.ptr(129168, 129197, 1), new Range32.ptr(129280, 129291, 1), new Range32.ptr(129296, 129342, 1), new Range32.ptr(129344, 129356, 1), new Range32.ptr(129360, 129387, 1), new Range32.ptr(129408, 129431, 1), new Range32.ptr(129472, 129488, 16), new Range32.ptr(129489, 129510, 1)]), 10);
  5987. _Sc = new RangeTable.ptr(new sliceType([new Range16.ptr(36, 162, 126), new Range16.ptr(163, 165, 1), new Range16.ptr(1423, 1547, 124), new Range16.ptr(2546, 2547, 1), new Range16.ptr(2555, 2801, 246), new Range16.ptr(3065, 3647, 582), new Range16.ptr(6107, 8352, 2245), new Range16.ptr(8353, 8383, 1), new Range16.ptr(43064, 65020, 21956), new Range16.ptr(65129, 65284, 155), new Range16.ptr(65504, 65505, 1), new Range16.ptr(65509, 65510, 1)]), sliceType$1.nil, 2);
  5988. _Sk = new RangeTable.ptr(new sliceType([new Range16.ptr(94, 96, 2), new Range16.ptr(168, 175, 7), new Range16.ptr(180, 184, 4), new Range16.ptr(706, 709, 1), new Range16.ptr(722, 735, 1), new Range16.ptr(741, 747, 1), new Range16.ptr(749, 751, 2), new Range16.ptr(752, 767, 1), new Range16.ptr(885, 900, 15), new Range16.ptr(901, 8125, 7224), new Range16.ptr(8127, 8129, 1), new Range16.ptr(8141, 8143, 1), new Range16.ptr(8157, 8159, 1), new Range16.ptr(8173, 8175, 1), new Range16.ptr(8189, 8190, 1), new Range16.ptr(12443, 12444, 1), new Range16.ptr(42752, 42774, 1), new Range16.ptr(42784, 42785, 1), new Range16.ptr(42889, 42890, 1), new Range16.ptr(43867, 64434, 20567), new Range16.ptr(64435, 64449, 1), new Range16.ptr(65342, 65344, 2), new Range16.ptr(65507, 65507, 1)]), new sliceType$1([new Range32.ptr(127995, 127995, 1), new Range32.ptr(127996, 127999, 1)]), 3);
  5989. _Sm = new RangeTable.ptr(new sliceType([new Range16.ptr(43, 60, 17), new Range16.ptr(61, 62, 1), new Range16.ptr(124, 126, 2), new Range16.ptr(172, 177, 5), new Range16.ptr(215, 247, 32), new Range16.ptr(1014, 1542, 528), new Range16.ptr(1543, 1544, 1), new Range16.ptr(8260, 8274, 14), new Range16.ptr(8314, 8316, 1), new Range16.ptr(8330, 8332, 1), new Range16.ptr(8472, 8512, 40), new Range16.ptr(8513, 8516, 1), new Range16.ptr(8523, 8592, 69), new Range16.ptr(8593, 8596, 1), new Range16.ptr(8602, 8603, 1), new Range16.ptr(8608, 8614, 3), new Range16.ptr(8622, 8654, 32), new Range16.ptr(8655, 8658, 3), new Range16.ptr(8660, 8692, 32), new Range16.ptr(8693, 8959, 1), new Range16.ptr(8992, 8993, 1), new Range16.ptr(9084, 9115, 31), new Range16.ptr(9116, 9139, 1), new Range16.ptr(9180, 9185, 1), new Range16.ptr(9655, 9665, 10), new Range16.ptr(9720, 9727, 1), new Range16.ptr(9839, 10176, 337), new Range16.ptr(10177, 10180, 1), new Range16.ptr(10183, 10213, 1), new Range16.ptr(10224, 10239, 1), new Range16.ptr(10496, 10626, 1), new Range16.ptr(10649, 10711, 1), new Range16.ptr(10716, 10747, 1), new Range16.ptr(10750, 11007, 1), new Range16.ptr(11056, 11076, 1), new Range16.ptr(11079, 11084, 1), new Range16.ptr(64297, 65122, 825), new Range16.ptr(65124, 65126, 1), new Range16.ptr(65291, 65308, 17), new Range16.ptr(65309, 65310, 1), new Range16.ptr(65372, 65374, 2), new Range16.ptr(65506, 65513, 7), new Range16.ptr(65514, 65516, 1)]), new sliceType$1([new Range32.ptr(120513, 120539, 26), new Range32.ptr(120571, 120597, 26), new Range32.ptr(120629, 120655, 26), new Range32.ptr(120687, 120713, 26), new Range32.ptr(120745, 120771, 26), new Range32.ptr(126704, 126705, 1)]), 5);
  5990. _So = new RangeTable.ptr(new sliceType([new Range16.ptr(166, 169, 3), new Range16.ptr(174, 176, 2), new Range16.ptr(1154, 1421, 267), new Range16.ptr(1422, 1550, 128), new Range16.ptr(1551, 1758, 207), new Range16.ptr(1769, 1789, 20), new Range16.ptr(1790, 2038, 248), new Range16.ptr(2554, 2928, 374), new Range16.ptr(3059, 3064, 1), new Range16.ptr(3066, 3199, 133), new Range16.ptr(3407, 3449, 42), new Range16.ptr(3841, 3843, 1), new Range16.ptr(3859, 3861, 2), new Range16.ptr(3862, 3863, 1), new Range16.ptr(3866, 3871, 1), new Range16.ptr(3892, 3896, 2), new Range16.ptr(4030, 4037, 1), new Range16.ptr(4039, 4044, 1), new Range16.ptr(4046, 4047, 1), new Range16.ptr(4053, 4056, 1), new Range16.ptr(4254, 4255, 1), new Range16.ptr(5008, 5017, 1), new Range16.ptr(6464, 6622, 158), new Range16.ptr(6623, 6655, 1), new Range16.ptr(7009, 7018, 1), new Range16.ptr(7028, 7036, 1), new Range16.ptr(8448, 8449, 1), new Range16.ptr(8451, 8454, 1), new Range16.ptr(8456, 8457, 1), new Range16.ptr(8468, 8470, 2), new Range16.ptr(8471, 8478, 7), new Range16.ptr(8479, 8483, 1), new Range16.ptr(8485, 8489, 2), new Range16.ptr(8494, 8506, 12), new Range16.ptr(8507, 8522, 15), new Range16.ptr(8524, 8525, 1), new Range16.ptr(8527, 8586, 59), new Range16.ptr(8587, 8597, 10), new Range16.ptr(8598, 8601, 1), new Range16.ptr(8604, 8607, 1), new Range16.ptr(8609, 8610, 1), new Range16.ptr(8612, 8613, 1), new Range16.ptr(8615, 8621, 1), new Range16.ptr(8623, 8653, 1), new Range16.ptr(8656, 8657, 1), new Range16.ptr(8659, 8661, 2), new Range16.ptr(8662, 8691, 1), new Range16.ptr(8960, 8967, 1), new Range16.ptr(8972, 8991, 1), new Range16.ptr(8994, 9000, 1), new Range16.ptr(9003, 9083, 1), new Range16.ptr(9085, 9114, 1), new Range16.ptr(9140, 9179, 1), new Range16.ptr(9186, 9254, 1), new Range16.ptr(9280, 9290, 1), new Range16.ptr(9372, 9449, 1), new Range16.ptr(9472, 9654, 1), new Range16.ptr(9656, 9664, 1), new Range16.ptr(9666, 9719, 1), new Range16.ptr(9728, 9838, 1), new Range16.ptr(9840, 10087, 1), new Range16.ptr(10132, 10175, 1), new Range16.ptr(10240, 10495, 1), new Range16.ptr(11008, 11055, 1), new Range16.ptr(11077, 11078, 1), new Range16.ptr(11085, 11123, 1), new Range16.ptr(11126, 11157, 1), new Range16.ptr(11160, 11193, 1), new Range16.ptr(11197, 11208, 1), new Range16.ptr(11210, 11218, 1), new Range16.ptr(11244, 11247, 1), new Range16.ptr(11493, 11498, 1), new Range16.ptr(11904, 11929, 1), new Range16.ptr(11931, 12019, 1), new Range16.ptr(12032, 12245, 1), new Range16.ptr(12272, 12283, 1), new Range16.ptr(12292, 12306, 14), new Range16.ptr(12307, 12320, 13), new Range16.ptr(12342, 12343, 1), new Range16.ptr(12350, 12351, 1), new Range16.ptr(12688, 12689, 1), new Range16.ptr(12694, 12703, 1), new Range16.ptr(12736, 12771, 1), new Range16.ptr(12800, 12830, 1), new Range16.ptr(12842, 12871, 1), new Range16.ptr(12880, 12896, 16), new Range16.ptr(12897, 12927, 1), new Range16.ptr(12938, 12976, 1), new Range16.ptr(12992, 13054, 1), new Range16.ptr(13056, 13311, 1), new Range16.ptr(19904, 19967, 1), new Range16.ptr(42128, 42182, 1), new Range16.ptr(43048, 43051, 1), new Range16.ptr(43062, 43063, 1), new Range16.ptr(43065, 43639, 574), new Range16.ptr(43640, 43641, 1), new Range16.ptr(65021, 65508, 487), new Range16.ptr(65512, 65517, 5), new Range16.ptr(65518, 65532, 14), new Range16.ptr(65533, 65533, 1)]), new sliceType$1([new Range32.ptr(65847, 65847, 1), new Range32.ptr(65848, 65855, 1), new Range32.ptr(65913, 65929, 1), new Range32.ptr(65932, 65934, 1), new Range32.ptr(65936, 65947, 1), new Range32.ptr(65952, 66000, 48), new Range32.ptr(66001, 66044, 1), new Range32.ptr(67703, 67704, 1), new Range32.ptr(68296, 71487, 3191), new Range32.ptr(92988, 92991, 1), new Range32.ptr(92997, 113820, 20823), new Range32.ptr(118784, 119029, 1), new Range32.ptr(119040, 119078, 1), new Range32.ptr(119081, 119140, 1), new Range32.ptr(119146, 119148, 1), new Range32.ptr(119171, 119172, 1), new Range32.ptr(119180, 119209, 1), new Range32.ptr(119214, 119272, 1), new Range32.ptr(119296, 119361, 1), new Range32.ptr(119365, 119552, 187), new Range32.ptr(119553, 119638, 1), new Range32.ptr(120832, 121343, 1), new Range32.ptr(121399, 121402, 1), new Range32.ptr(121453, 121460, 1), new Range32.ptr(121462, 121475, 1), new Range32.ptr(121477, 121478, 1), new Range32.ptr(126976, 127019, 1), new Range32.ptr(127024, 127123, 1), new Range32.ptr(127136, 127150, 1), new Range32.ptr(127153, 127167, 1), new Range32.ptr(127169, 127183, 1), new Range32.ptr(127185, 127221, 1), new Range32.ptr(127248, 127278, 1), new Range32.ptr(127280, 127339, 1), new Range32.ptr(127344, 127404, 1), new Range32.ptr(127462, 127490, 1), new Range32.ptr(127504, 127547, 1), new Range32.ptr(127552, 127560, 1), new Range32.ptr(127568, 127569, 1), new Range32.ptr(127584, 127589, 1), new Range32.ptr(127744, 127994, 1), new Range32.ptr(128000, 128724, 1), new Range32.ptr(128736, 128748, 1), new Range32.ptr(128752, 128760, 1), new Range32.ptr(128768, 128883, 1), new Range32.ptr(128896, 128980, 1), new Range32.ptr(129024, 129035, 1), new Range32.ptr(129040, 129095, 1), new Range32.ptr(129104, 129113, 1), new Range32.ptr(129120, 129159, 1), new Range32.ptr(129168, 129197, 1), new Range32.ptr(129280, 129291, 1), new Range32.ptr(129296, 129342, 1), new Range32.ptr(129344, 129356, 1), new Range32.ptr(129360, 129387, 1), new Range32.ptr(129408, 129431, 1), new Range32.ptr(129472, 129488, 16), new Range32.ptr(129489, 129510, 1)]), 2);
  5991. _Z = new RangeTable.ptr(new sliceType([new Range16.ptr(32, 160, 128), new Range16.ptr(5760, 8192, 2432), new Range16.ptr(8193, 8202, 1), new Range16.ptr(8232, 8233, 1), new Range16.ptr(8239, 8287, 48), new Range16.ptr(12288, 12288, 1)]), sliceType$1.nil, 1);
  5992. _Zl = new RangeTable.ptr(new sliceType([new Range16.ptr(8232, 8232, 1)]), sliceType$1.nil, 0);
  5993. _Zp = new RangeTable.ptr(new sliceType([new Range16.ptr(8233, 8233, 1)]), sliceType$1.nil, 0);
  5994. _Zs = new RangeTable.ptr(new sliceType([new Range16.ptr(32, 160, 128), new Range16.ptr(5760, 8192, 2432), new Range16.ptr(8193, 8202, 1), new Range16.ptr(8239, 8287, 48), new Range16.ptr(12288, 12288, 1)]), sliceType$1.nil, 1);
  5995. $pkg.Cc = _Cc;
  5996. $pkg.Cf = _Cf;
  5997. $pkg.Co = _Co;
  5998. $pkg.Cs = _Cs;
  5999. $pkg.Digit = _Nd;
  6000. $pkg.Nd = _Nd;
  6001. $pkg.Letter = _L;
  6002. $pkg.L = _L;
  6003. $pkg.Lm = _Lm;
  6004. $pkg.Lo = _Lo;
  6005. $pkg.Ll = _Ll;
  6006. $pkg.M = _M;
  6007. $pkg.Mc = _Mc;
  6008. $pkg.Me = _Me;
  6009. $pkg.Mn = _Mn;
  6010. $pkg.Nl = _Nl;
  6011. $pkg.No = _No;
  6012. $pkg.N = _N;
  6013. $pkg.C = _C;
  6014. $pkg.Pc = _Pc;
  6015. $pkg.Pd = _Pd;
  6016. $pkg.Pe = _Pe;
  6017. $pkg.Pf = _Pf;
  6018. $pkg.Pi = _Pi;
  6019. $pkg.Po = _Po;
  6020. $pkg.Ps = _Ps;
  6021. $pkg.P = _P;
  6022. $pkg.Sc = _Sc;
  6023. $pkg.Sk = _Sk;
  6024. $pkg.Sm = _Sm;
  6025. $pkg.So = _So;
  6026. $pkg.Z = _Z;
  6027. $pkg.S = _S;
  6028. $pkg.PrintRanges = new sliceType$2([$pkg.L, $pkg.M, $pkg.N, $pkg.P, $pkg.S]);
  6029. $pkg.Lt = _Lt;
  6030. $pkg.Lu = _Lu;
  6031. $pkg.Zl = _Zl;
  6032. $pkg.Zp = _Zp;
  6033. $pkg.Zs = _Zs;
  6034. $pkg.Categories = $makeMap($String.keyFor, [{ k: "C", v: $pkg.C }, { k: "Cc", v: $pkg.Cc }, { k: "Cf", v: $pkg.Cf }, { k: "Co", v: $pkg.Co }, { k: "Cs", v: $pkg.Cs }, { k: "L", v: $pkg.L }, { k: "Ll", v: $pkg.Ll }, { k: "Lm", v: $pkg.Lm }, { k: "Lo", v: $pkg.Lo }, { k: "Lt", v: $pkg.Lt }, { k: "Lu", v: $pkg.Lu }, { k: "M", v: $pkg.M }, { k: "Mc", v: $pkg.Mc }, { k: "Me", v: $pkg.Me }, { k: "Mn", v: $pkg.Mn }, { k: "N", v: $pkg.N }, { k: "Nd", v: $pkg.Nd }, { k: "Nl", v: $pkg.Nl }, { k: "No", v: $pkg.No }, { k: "P", v: $pkg.P }, { k: "Pc", v: $pkg.Pc }, { k: "Pd", v: $pkg.Pd }, { k: "Pe", v: $pkg.Pe }, { k: "Pf", v: $pkg.Pf }, { k: "Pi", v: $pkg.Pi }, { k: "Po", v: $pkg.Po }, { k: "Ps", v: $pkg.Ps }, { k: "S", v: $pkg.S }, { k: "Sc", v: $pkg.Sc }, { k: "Sk", v: $pkg.Sk }, { k: "Sm", v: $pkg.Sm }, { k: "So", v: $pkg.So }, { k: "Z", v: $pkg.Z }, { k: "Zl", v: $pkg.Zl }, { k: "Zp", v: $pkg.Zp }, { k: "Zs", v: $pkg.Zs }]);
  6035. _Adlam = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(125184, 125258, 1), new Range32.ptr(125264, 125273, 1), new Range32.ptr(125278, 125279, 1)]), 0);
  6036. _Ahom = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(71424, 71449, 1), new Range32.ptr(71453, 71467, 1), new Range32.ptr(71472, 71487, 1)]), 0);
  6037. _Anatolian_Hieroglyphs = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(82944, 83526, 1)]), 0);
  6038. _Arabic = new RangeTable.ptr(new sliceType([new Range16.ptr(1536, 1540, 1), new Range16.ptr(1542, 1547, 1), new Range16.ptr(1549, 1562, 1), new Range16.ptr(1564, 1564, 1), new Range16.ptr(1566, 1566, 1), new Range16.ptr(1568, 1599, 1), new Range16.ptr(1601, 1610, 1), new Range16.ptr(1622, 1647, 1), new Range16.ptr(1649, 1756, 1), new Range16.ptr(1758, 1791, 1), new Range16.ptr(1872, 1919, 1), new Range16.ptr(2208, 2228, 1), new Range16.ptr(2230, 2237, 1), new Range16.ptr(2260, 2273, 1), new Range16.ptr(2275, 2303, 1), new Range16.ptr(64336, 64449, 1), new Range16.ptr(64467, 64829, 1), new Range16.ptr(64848, 64911, 1), new Range16.ptr(64914, 64967, 1), new Range16.ptr(65008, 65021, 1), new Range16.ptr(65136, 65140, 1), new Range16.ptr(65142, 65276, 1)]), new sliceType$1([new Range32.ptr(69216, 69246, 1), new Range32.ptr(126464, 126467, 1), new Range32.ptr(126469, 126495, 1), new Range32.ptr(126497, 126498, 1), new Range32.ptr(126500, 126500, 1), new Range32.ptr(126503, 126503, 1), new Range32.ptr(126505, 126514, 1), new Range32.ptr(126516, 126519, 1), new Range32.ptr(126521, 126521, 1), new Range32.ptr(126523, 126523, 1), new Range32.ptr(126530, 126530, 1), new Range32.ptr(126535, 126535, 1), new Range32.ptr(126537, 126537, 1), new Range32.ptr(126539, 126539, 1), new Range32.ptr(126541, 126543, 1), new Range32.ptr(126545, 126546, 1), new Range32.ptr(126548, 126548, 1), new Range32.ptr(126551, 126551, 1), new Range32.ptr(126553, 126553, 1), new Range32.ptr(126555, 126555, 1), new Range32.ptr(126557, 126557, 1), new Range32.ptr(126559, 126559, 1), new Range32.ptr(126561, 126562, 1), new Range32.ptr(126564, 126564, 1), new Range32.ptr(126567, 126570, 1), new Range32.ptr(126572, 126578, 1), new Range32.ptr(126580, 126583, 1), new Range32.ptr(126585, 126588, 1), new Range32.ptr(126590, 126590, 1), new Range32.ptr(126592, 126601, 1), new Range32.ptr(126603, 126619, 1), new Range32.ptr(126625, 126627, 1), new Range32.ptr(126629, 126633, 1), new Range32.ptr(126635, 126651, 1), new Range32.ptr(126704, 126705, 1)]), 0);
  6039. _Armenian = new RangeTable.ptr(new sliceType([new Range16.ptr(1329, 1366, 1), new Range16.ptr(1369, 1375, 1), new Range16.ptr(1377, 1415, 1), new Range16.ptr(1418, 1418, 1), new Range16.ptr(1421, 1423, 1), new Range16.ptr(64275, 64279, 1)]), sliceType$1.nil, 0);
  6040. _Avestan = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68352, 68405, 1), new Range32.ptr(68409, 68415, 1)]), 0);
  6041. _Balinese = new RangeTable.ptr(new sliceType([new Range16.ptr(6912, 6987, 1), new Range16.ptr(6992, 7036, 1)]), sliceType$1.nil, 0);
  6042. _Bamum = new RangeTable.ptr(new sliceType([new Range16.ptr(42656, 42743, 1)]), new sliceType$1([new Range32.ptr(92160, 92728, 1)]), 0);
  6043. _Bassa_Vah = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(92880, 92909, 1), new Range32.ptr(92912, 92917, 1)]), 0);
  6044. _Batak = new RangeTable.ptr(new sliceType([new Range16.ptr(7104, 7155, 1), new Range16.ptr(7164, 7167, 1)]), sliceType$1.nil, 0);
  6045. _Bengali = new RangeTable.ptr(new sliceType([new Range16.ptr(2432, 2435, 1), new Range16.ptr(2437, 2444, 1), new Range16.ptr(2447, 2448, 1), new Range16.ptr(2451, 2472, 1), new Range16.ptr(2474, 2480, 1), new Range16.ptr(2482, 2482, 1), new Range16.ptr(2486, 2489, 1), new Range16.ptr(2492, 2500, 1), new Range16.ptr(2503, 2504, 1), new Range16.ptr(2507, 2510, 1), new Range16.ptr(2519, 2519, 1), new Range16.ptr(2524, 2525, 1), new Range16.ptr(2527, 2531, 1), new Range16.ptr(2534, 2557, 1)]), sliceType$1.nil, 0);
  6046. _Bhaiksuki = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(72704, 72712, 1), new Range32.ptr(72714, 72758, 1), new Range32.ptr(72760, 72773, 1), new Range32.ptr(72784, 72812, 1)]), 0);
  6047. _Bopomofo = new RangeTable.ptr(new sliceType([new Range16.ptr(746, 747, 1), new Range16.ptr(12549, 12590, 1), new Range16.ptr(12704, 12730, 1)]), sliceType$1.nil, 0);
  6048. _Brahmi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(69632, 69709, 1), new Range32.ptr(69714, 69743, 1), new Range32.ptr(69759, 69759, 1)]), 0);
  6049. _Braille = new RangeTable.ptr(new sliceType([new Range16.ptr(10240, 10495, 1)]), sliceType$1.nil, 0);
  6050. _Buginese = new RangeTable.ptr(new sliceType([new Range16.ptr(6656, 6683, 1), new Range16.ptr(6686, 6687, 1)]), sliceType$1.nil, 0);
  6051. _Buhid = new RangeTable.ptr(new sliceType([new Range16.ptr(5952, 5971, 1)]), sliceType$1.nil, 0);
  6052. _Canadian_Aboriginal = new RangeTable.ptr(new sliceType([new Range16.ptr(5120, 5759, 1), new Range16.ptr(6320, 6389, 1)]), sliceType$1.nil, 0);
  6053. _Carian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66208, 66256, 1)]), 0);
  6054. _Caucasian_Albanian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66864, 66915, 1), new Range32.ptr(66927, 66927, 1)]), 0);
  6055. _Chakma = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(69888, 69940, 1), new Range32.ptr(69942, 69955, 1)]), 0);
  6056. _Cham = new RangeTable.ptr(new sliceType([new Range16.ptr(43520, 43574, 1), new Range16.ptr(43584, 43597, 1), new Range16.ptr(43600, 43609, 1), new Range16.ptr(43612, 43615, 1)]), sliceType$1.nil, 0);
  6057. _Cherokee = new RangeTable.ptr(new sliceType([new Range16.ptr(5024, 5109, 1), new Range16.ptr(5112, 5117, 1), new Range16.ptr(43888, 43967, 1)]), sliceType$1.nil, 0);
  6058. _Common = new RangeTable.ptr(new sliceType([new Range16.ptr(0, 64, 1), new Range16.ptr(91, 96, 1), new Range16.ptr(123, 169, 1), new Range16.ptr(171, 185, 1), new Range16.ptr(187, 191, 1), new Range16.ptr(215, 215, 1), new Range16.ptr(247, 247, 1), new Range16.ptr(697, 735, 1), new Range16.ptr(741, 745, 1), new Range16.ptr(748, 767, 1), new Range16.ptr(884, 884, 1), new Range16.ptr(894, 894, 1), new Range16.ptr(901, 901, 1), new Range16.ptr(903, 903, 1), new Range16.ptr(1417, 1417, 1), new Range16.ptr(1541, 1541, 1), new Range16.ptr(1548, 1548, 1), new Range16.ptr(1563, 1563, 1), new Range16.ptr(1567, 1567, 1), new Range16.ptr(1600, 1600, 1), new Range16.ptr(1757, 1757, 1), new Range16.ptr(2274, 2274, 1), new Range16.ptr(2404, 2405, 1), new Range16.ptr(3647, 3647, 1), new Range16.ptr(4053, 4056, 1), new Range16.ptr(4347, 4347, 1), new Range16.ptr(5867, 5869, 1), new Range16.ptr(5941, 5942, 1), new Range16.ptr(6146, 6147, 1), new Range16.ptr(6149, 6149, 1), new Range16.ptr(7379, 7379, 1), new Range16.ptr(7393, 7393, 1), new Range16.ptr(7401, 7404, 1), new Range16.ptr(7406, 7411, 1), new Range16.ptr(7413, 7415, 1), new Range16.ptr(8192, 8203, 1), new Range16.ptr(8206, 8292, 1), new Range16.ptr(8294, 8304, 1), new Range16.ptr(8308, 8318, 1), new Range16.ptr(8320, 8334, 1), new Range16.ptr(8352, 8383, 1), new Range16.ptr(8448, 8485, 1), new Range16.ptr(8487, 8489, 1), new Range16.ptr(8492, 8497, 1), new Range16.ptr(8499, 8525, 1), new Range16.ptr(8527, 8543, 1), new Range16.ptr(8585, 8587, 1), new Range16.ptr(8592, 9254, 1), new Range16.ptr(9280, 9290, 1), new Range16.ptr(9312, 10239, 1), new Range16.ptr(10496, 11123, 1), new Range16.ptr(11126, 11157, 1), new Range16.ptr(11160, 11193, 1), new Range16.ptr(11197, 11208, 1), new Range16.ptr(11210, 11218, 1), new Range16.ptr(11244, 11247, 1), new Range16.ptr(11776, 11849, 1), new Range16.ptr(12272, 12283, 1), new Range16.ptr(12288, 12292, 1), new Range16.ptr(12294, 12294, 1), new Range16.ptr(12296, 12320, 1), new Range16.ptr(12336, 12343, 1), new Range16.ptr(12348, 12351, 1), new Range16.ptr(12443, 12444, 1), new Range16.ptr(12448, 12448, 1), new Range16.ptr(12539, 12540, 1), new Range16.ptr(12688, 12703, 1), new Range16.ptr(12736, 12771, 1), new Range16.ptr(12832, 12895, 1), new Range16.ptr(12927, 13007, 1), new Range16.ptr(13144, 13311, 1), new Range16.ptr(19904, 19967, 1), new Range16.ptr(42752, 42785, 1), new Range16.ptr(42888, 42890, 1), new Range16.ptr(43056, 43065, 1), new Range16.ptr(43310, 43310, 1), new Range16.ptr(43471, 43471, 1), new Range16.ptr(43867, 43867, 1), new Range16.ptr(64830, 64831, 1), new Range16.ptr(65040, 65049, 1), new Range16.ptr(65072, 65106, 1), new Range16.ptr(65108, 65126, 1), new Range16.ptr(65128, 65131, 1), new Range16.ptr(65279, 65279, 1), new Range16.ptr(65281, 65312, 1), new Range16.ptr(65339, 65344, 1), new Range16.ptr(65371, 65381, 1), new Range16.ptr(65392, 65392, 1), new Range16.ptr(65438, 65439, 1), new Range16.ptr(65504, 65510, 1), new Range16.ptr(65512, 65518, 1), new Range16.ptr(65529, 65533, 1)]), new sliceType$1([new Range32.ptr(65792, 65794, 1), new Range32.ptr(65799, 65843, 1), new Range32.ptr(65847, 65855, 1), new Range32.ptr(65936, 65947, 1), new Range32.ptr(66000, 66044, 1), new Range32.ptr(66273, 66299, 1), new Range32.ptr(113824, 113827, 1), new Range32.ptr(118784, 119029, 1), new Range32.ptr(119040, 119078, 1), new Range32.ptr(119081, 119142, 1), new Range32.ptr(119146, 119162, 1), new Range32.ptr(119171, 119172, 1), new Range32.ptr(119180, 119209, 1), new Range32.ptr(119214, 119272, 1), new Range32.ptr(119552, 119638, 1), new Range32.ptr(119648, 119665, 1), new Range32.ptr(119808, 119892, 1), new Range32.ptr(119894, 119964, 1), new Range32.ptr(119966, 119967, 1), new Range32.ptr(119970, 119970, 1), new Range32.ptr(119973, 119974, 1), new Range32.ptr(119977, 119980, 1), new Range32.ptr(119982, 119993, 1), new Range32.ptr(119995, 119995, 1), new Range32.ptr(119997, 120003, 1), new Range32.ptr(120005, 120069, 1), new Range32.ptr(120071, 120074, 1), new Range32.ptr(120077, 120084, 1), new Range32.ptr(120086, 120092, 1), new Range32.ptr(120094, 120121, 1), new Range32.ptr(120123, 120126, 1), new Range32.ptr(120128, 120132, 1), new Range32.ptr(120134, 120134, 1), new Range32.ptr(120138, 120144, 1), new Range32.ptr(120146, 120485, 1), new Range32.ptr(120488, 120779, 1), new Range32.ptr(120782, 120831, 1), new Range32.ptr(126976, 127019, 1), new Range32.ptr(127024, 127123, 1), new Range32.ptr(127136, 127150, 1), new Range32.ptr(127153, 127167, 1), new Range32.ptr(127169, 127183, 1), new Range32.ptr(127185, 127221, 1), new Range32.ptr(127232, 127244, 1), new Range32.ptr(127248, 127278, 1), new Range32.ptr(127280, 127339, 1), new Range32.ptr(127344, 127404, 1), new Range32.ptr(127462, 127487, 1), new Range32.ptr(127489, 127490, 1), new Range32.ptr(127504, 127547, 1), new Range32.ptr(127552, 127560, 1), new Range32.ptr(127568, 127569, 1), new Range32.ptr(127584, 127589, 1), new Range32.ptr(127744, 128724, 1), new Range32.ptr(128736, 128748, 1), new Range32.ptr(128752, 128760, 1), new Range32.ptr(128768, 128883, 1), new Range32.ptr(128896, 128980, 1), new Range32.ptr(129024, 129035, 1), new Range32.ptr(129040, 129095, 1), new Range32.ptr(129104, 129113, 1), new Range32.ptr(129120, 129159, 1), new Range32.ptr(129168, 129197, 1), new Range32.ptr(129280, 129291, 1), new Range32.ptr(129296, 129342, 1), new Range32.ptr(129344, 129356, 1), new Range32.ptr(129360, 129387, 1), new Range32.ptr(129408, 129431, 1), new Range32.ptr(129472, 129472, 1), new Range32.ptr(129488, 129510, 1), new Range32.ptr(917505, 917505, 1), new Range32.ptr(917536, 917631, 1)]), 7);
  6059. _Coptic = new RangeTable.ptr(new sliceType([new Range16.ptr(994, 1007, 1), new Range16.ptr(11392, 11507, 1), new Range16.ptr(11513, 11519, 1)]), sliceType$1.nil, 0);
  6060. _Cuneiform = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(73728, 74649, 1), new Range32.ptr(74752, 74862, 1), new Range32.ptr(74864, 74868, 1), new Range32.ptr(74880, 75075, 1)]), 0);
  6061. _Cypriot = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67584, 67589, 1), new Range32.ptr(67592, 67592, 1), new Range32.ptr(67594, 67637, 1), new Range32.ptr(67639, 67640, 1), new Range32.ptr(67644, 67644, 1), new Range32.ptr(67647, 67647, 1)]), 0);
  6062. _Cyrillic = new RangeTable.ptr(new sliceType([new Range16.ptr(1024, 1156, 1), new Range16.ptr(1159, 1327, 1), new Range16.ptr(7296, 7304, 1), new Range16.ptr(7467, 7467, 1), new Range16.ptr(7544, 7544, 1), new Range16.ptr(11744, 11775, 1), new Range16.ptr(42560, 42655, 1), new Range16.ptr(65070, 65071, 1)]), sliceType$1.nil, 0);
  6063. _Deseret = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66560, 66639, 1)]), 0);
  6064. _Devanagari = new RangeTable.ptr(new sliceType([new Range16.ptr(2304, 2384, 1), new Range16.ptr(2387, 2403, 1), new Range16.ptr(2406, 2431, 1), new Range16.ptr(43232, 43261, 1)]), sliceType$1.nil, 0);
  6065. _Duployan = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(113664, 113770, 1), new Range32.ptr(113776, 113788, 1), new Range32.ptr(113792, 113800, 1), new Range32.ptr(113808, 113817, 1), new Range32.ptr(113820, 113823, 1)]), 0);
  6066. _Egyptian_Hieroglyphs = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(77824, 78894, 1)]), 0);
  6067. _Elbasan = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66816, 66855, 1)]), 0);
  6068. _Ethiopic = new RangeTable.ptr(new sliceType([new Range16.ptr(4608, 4680, 1), new Range16.ptr(4682, 4685, 1), new Range16.ptr(4688, 4694, 1), new Range16.ptr(4696, 4696, 1), new Range16.ptr(4698, 4701, 1), new Range16.ptr(4704, 4744, 1), new Range16.ptr(4746, 4749, 1), new Range16.ptr(4752, 4784, 1), new Range16.ptr(4786, 4789, 1), new Range16.ptr(4792, 4798, 1), new Range16.ptr(4800, 4800, 1), new Range16.ptr(4802, 4805, 1), new Range16.ptr(4808, 4822, 1), new Range16.ptr(4824, 4880, 1), new Range16.ptr(4882, 4885, 1), new Range16.ptr(4888, 4954, 1), new Range16.ptr(4957, 4988, 1), new Range16.ptr(4992, 5017, 1), new Range16.ptr(11648, 11670, 1), new Range16.ptr(11680, 11686, 1), new Range16.ptr(11688, 11694, 1), new Range16.ptr(11696, 11702, 1), new Range16.ptr(11704, 11710, 1), new Range16.ptr(11712, 11718, 1), new Range16.ptr(11720, 11726, 1), new Range16.ptr(11728, 11734, 1), new Range16.ptr(11736, 11742, 1), new Range16.ptr(43777, 43782, 1), new Range16.ptr(43785, 43790, 1), new Range16.ptr(43793, 43798, 1), new Range16.ptr(43808, 43814, 1), new Range16.ptr(43816, 43822, 1)]), sliceType$1.nil, 0);
  6069. _Georgian = new RangeTable.ptr(new sliceType([new Range16.ptr(4256, 4293, 1), new Range16.ptr(4295, 4295, 1), new Range16.ptr(4301, 4301, 1), new Range16.ptr(4304, 4346, 1), new Range16.ptr(4348, 4351, 1), new Range16.ptr(11520, 11557, 1), new Range16.ptr(11559, 11559, 1), new Range16.ptr(11565, 11565, 1)]), sliceType$1.nil, 0);
  6070. _Glagolitic = new RangeTable.ptr(new sliceType([new Range16.ptr(11264, 11310, 1), new Range16.ptr(11312, 11358, 1)]), new sliceType$1([new Range32.ptr(122880, 122886, 1), new Range32.ptr(122888, 122904, 1), new Range32.ptr(122907, 122913, 1), new Range32.ptr(122915, 122916, 1), new Range32.ptr(122918, 122922, 1)]), 0);
  6071. _Gothic = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66352, 66378, 1)]), 0);
  6072. _Grantha = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(70400, 70403, 1), new Range32.ptr(70405, 70412, 1), new Range32.ptr(70415, 70416, 1), new Range32.ptr(70419, 70440, 1), new Range32.ptr(70442, 70448, 1), new Range32.ptr(70450, 70451, 1), new Range32.ptr(70453, 70457, 1), new Range32.ptr(70460, 70468, 1), new Range32.ptr(70471, 70472, 1), new Range32.ptr(70475, 70477, 1), new Range32.ptr(70480, 70480, 1), new Range32.ptr(70487, 70487, 1), new Range32.ptr(70493, 70499, 1), new Range32.ptr(70502, 70508, 1), new Range32.ptr(70512, 70516, 1)]), 0);
  6073. _Greek = new RangeTable.ptr(new sliceType([new Range16.ptr(880, 883, 1), new Range16.ptr(885, 887, 1), new Range16.ptr(890, 893, 1), new Range16.ptr(895, 895, 1), new Range16.ptr(900, 900, 1), new Range16.ptr(902, 902, 1), new Range16.ptr(904, 906, 1), new Range16.ptr(908, 908, 1), new Range16.ptr(910, 929, 1), new Range16.ptr(931, 993, 1), new Range16.ptr(1008, 1023, 1), new Range16.ptr(7462, 7466, 1), new Range16.ptr(7517, 7521, 1), new Range16.ptr(7526, 7530, 1), new Range16.ptr(7615, 7615, 1), new Range16.ptr(7936, 7957, 1), new Range16.ptr(7960, 7965, 1), new Range16.ptr(7968, 8005, 1), new Range16.ptr(8008, 8013, 1), new Range16.ptr(8016, 8023, 1), new Range16.ptr(8025, 8025, 1), new Range16.ptr(8027, 8027, 1), new Range16.ptr(8029, 8029, 1), new Range16.ptr(8031, 8061, 1), new Range16.ptr(8064, 8116, 1), new Range16.ptr(8118, 8132, 1), new Range16.ptr(8134, 8147, 1), new Range16.ptr(8150, 8155, 1), new Range16.ptr(8157, 8175, 1), new Range16.ptr(8178, 8180, 1), new Range16.ptr(8182, 8190, 1), new Range16.ptr(8486, 8486, 1), new Range16.ptr(43877, 43877, 1)]), new sliceType$1([new Range32.ptr(65856, 65934, 1), new Range32.ptr(65952, 65952, 1), new Range32.ptr(119296, 119365, 1)]), 0);
  6074. _Gujarati = new RangeTable.ptr(new sliceType([new Range16.ptr(2689, 2691, 1), new Range16.ptr(2693, 2701, 1), new Range16.ptr(2703, 2705, 1), new Range16.ptr(2707, 2728, 1), new Range16.ptr(2730, 2736, 1), new Range16.ptr(2738, 2739, 1), new Range16.ptr(2741, 2745, 1), new Range16.ptr(2748, 2757, 1), new Range16.ptr(2759, 2761, 1), new Range16.ptr(2763, 2765, 1), new Range16.ptr(2768, 2768, 1), new Range16.ptr(2784, 2787, 1), new Range16.ptr(2790, 2801, 1), new Range16.ptr(2809, 2815, 1)]), sliceType$1.nil, 0);
  6075. _Gurmukhi = new RangeTable.ptr(new sliceType([new Range16.ptr(2561, 2563, 1), new Range16.ptr(2565, 2570, 1), new Range16.ptr(2575, 2576, 1), new Range16.ptr(2579, 2600, 1), new Range16.ptr(2602, 2608, 1), new Range16.ptr(2610, 2611, 1), new Range16.ptr(2613, 2614, 1), new Range16.ptr(2616, 2617, 1), new Range16.ptr(2620, 2620, 1), new Range16.ptr(2622, 2626, 1), new Range16.ptr(2631, 2632, 1), new Range16.ptr(2635, 2637, 1), new Range16.ptr(2641, 2641, 1), new Range16.ptr(2649, 2652, 1), new Range16.ptr(2654, 2654, 1), new Range16.ptr(2662, 2677, 1)]), sliceType$1.nil, 0);
  6076. _Han = new RangeTable.ptr(new sliceType([new Range16.ptr(11904, 11929, 1), new Range16.ptr(11931, 12019, 1), new Range16.ptr(12032, 12245, 1), new Range16.ptr(12293, 12293, 1), new Range16.ptr(12295, 12295, 1), new Range16.ptr(12321, 12329, 1), new Range16.ptr(12344, 12347, 1), new Range16.ptr(13312, 19893, 1), new Range16.ptr(19968, 40938, 1), new Range16.ptr(63744, 64109, 1), new Range16.ptr(64112, 64217, 1)]), new sliceType$1([new Range32.ptr(131072, 173782, 1), new Range32.ptr(173824, 177972, 1), new Range32.ptr(177984, 178205, 1), new Range32.ptr(178208, 183969, 1), new Range32.ptr(183984, 191456, 1), new Range32.ptr(194560, 195101, 1)]), 0);
  6077. _Hangul = new RangeTable.ptr(new sliceType([new Range16.ptr(4352, 4607, 1), new Range16.ptr(12334, 12335, 1), new Range16.ptr(12593, 12686, 1), new Range16.ptr(12800, 12830, 1), new Range16.ptr(12896, 12926, 1), new Range16.ptr(43360, 43388, 1), new Range16.ptr(44032, 55203, 1), new Range16.ptr(55216, 55238, 1), new Range16.ptr(55243, 55291, 1), new Range16.ptr(65440, 65470, 1), new Range16.ptr(65474, 65479, 1), new Range16.ptr(65482, 65487, 1), new Range16.ptr(65490, 65495, 1), new Range16.ptr(65498, 65500, 1)]), sliceType$1.nil, 0);
  6078. _Hanunoo = new RangeTable.ptr(new sliceType([new Range16.ptr(5920, 5940, 1)]), sliceType$1.nil, 0);
  6079. _Hatran = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67808, 67826, 1), new Range32.ptr(67828, 67829, 1), new Range32.ptr(67835, 67839, 1)]), 0);
  6080. _Hebrew = new RangeTable.ptr(new sliceType([new Range16.ptr(1425, 1479, 1), new Range16.ptr(1488, 1514, 1), new Range16.ptr(1520, 1524, 1), new Range16.ptr(64285, 64310, 1), new Range16.ptr(64312, 64316, 1), new Range16.ptr(64318, 64318, 1), new Range16.ptr(64320, 64321, 1), new Range16.ptr(64323, 64324, 1), new Range16.ptr(64326, 64335, 1)]), sliceType$1.nil, 0);
  6081. _Hiragana = new RangeTable.ptr(new sliceType([new Range16.ptr(12353, 12438, 1), new Range16.ptr(12445, 12447, 1)]), new sliceType$1([new Range32.ptr(110593, 110878, 1), new Range32.ptr(127488, 127488, 1)]), 0);
  6082. _Imperial_Aramaic = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67648, 67669, 1), new Range32.ptr(67671, 67679, 1)]), 0);
  6083. _Inherited = new RangeTable.ptr(new sliceType([new Range16.ptr(768, 879, 1), new Range16.ptr(1157, 1158, 1), new Range16.ptr(1611, 1621, 1), new Range16.ptr(1648, 1648, 1), new Range16.ptr(2385, 2386, 1), new Range16.ptr(6832, 6846, 1), new Range16.ptr(7376, 7378, 1), new Range16.ptr(7380, 7392, 1), new Range16.ptr(7394, 7400, 1), new Range16.ptr(7405, 7405, 1), new Range16.ptr(7412, 7412, 1), new Range16.ptr(7416, 7417, 1), new Range16.ptr(7616, 7673, 1), new Range16.ptr(7675, 7679, 1), new Range16.ptr(8204, 8205, 1), new Range16.ptr(8400, 8432, 1), new Range16.ptr(12330, 12333, 1), new Range16.ptr(12441, 12442, 1), new Range16.ptr(65024, 65039, 1), new Range16.ptr(65056, 65069, 1)]), new sliceType$1([new Range32.ptr(66045, 66045, 1), new Range32.ptr(66272, 66272, 1), new Range32.ptr(119143, 119145, 1), new Range32.ptr(119163, 119170, 1), new Range32.ptr(119173, 119179, 1), new Range32.ptr(119210, 119213, 1), new Range32.ptr(917760, 917999, 1)]), 0);
  6084. _Inscriptional_Pahlavi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68448, 68466, 1), new Range32.ptr(68472, 68479, 1)]), 0);
  6085. _Inscriptional_Parthian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68416, 68437, 1), new Range32.ptr(68440, 68447, 1)]), 0);
  6086. _Javanese = new RangeTable.ptr(new sliceType([new Range16.ptr(43392, 43469, 1), new Range16.ptr(43472, 43481, 1), new Range16.ptr(43486, 43487, 1)]), sliceType$1.nil, 0);
  6087. _Kaithi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(69760, 69825, 1)]), 0);
  6088. _Kannada = new RangeTable.ptr(new sliceType([new Range16.ptr(3200, 3203, 1), new Range16.ptr(3205, 3212, 1), new Range16.ptr(3214, 3216, 1), new Range16.ptr(3218, 3240, 1), new Range16.ptr(3242, 3251, 1), new Range16.ptr(3253, 3257, 1), new Range16.ptr(3260, 3268, 1), new Range16.ptr(3270, 3272, 1), new Range16.ptr(3274, 3277, 1), new Range16.ptr(3285, 3286, 1), new Range16.ptr(3294, 3294, 1), new Range16.ptr(3296, 3299, 1), new Range16.ptr(3302, 3311, 1), new Range16.ptr(3313, 3314, 1)]), sliceType$1.nil, 0);
  6089. _Katakana = new RangeTable.ptr(new sliceType([new Range16.ptr(12449, 12538, 1), new Range16.ptr(12541, 12543, 1), new Range16.ptr(12784, 12799, 1), new Range16.ptr(13008, 13054, 1), new Range16.ptr(13056, 13143, 1), new Range16.ptr(65382, 65391, 1), new Range16.ptr(65393, 65437, 1)]), new sliceType$1([new Range32.ptr(110592, 110592, 1)]), 0);
  6090. _Kayah_Li = new RangeTable.ptr(new sliceType([new Range16.ptr(43264, 43309, 1), new Range16.ptr(43311, 43311, 1)]), sliceType$1.nil, 0);
  6091. _Kharoshthi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68096, 68099, 1), new Range32.ptr(68101, 68102, 1), new Range32.ptr(68108, 68115, 1), new Range32.ptr(68117, 68119, 1), new Range32.ptr(68121, 68147, 1), new Range32.ptr(68152, 68154, 1), new Range32.ptr(68159, 68167, 1), new Range32.ptr(68176, 68184, 1)]), 0);
  6092. _Khmer = new RangeTable.ptr(new sliceType([new Range16.ptr(6016, 6109, 1), new Range16.ptr(6112, 6121, 1), new Range16.ptr(6128, 6137, 1), new Range16.ptr(6624, 6655, 1)]), sliceType$1.nil, 0);
  6093. _Khojki = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(70144, 70161, 1), new Range32.ptr(70163, 70206, 1)]), 0);
  6094. _Khudawadi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(70320, 70378, 1), new Range32.ptr(70384, 70393, 1)]), 0);
  6095. _Lao = new RangeTable.ptr(new sliceType([new Range16.ptr(3713, 3714, 1), new Range16.ptr(3716, 3716, 1), new Range16.ptr(3719, 3720, 1), new Range16.ptr(3722, 3722, 1), new Range16.ptr(3725, 3725, 1), new Range16.ptr(3732, 3735, 1), new Range16.ptr(3737, 3743, 1), new Range16.ptr(3745, 3747, 1), new Range16.ptr(3749, 3749, 1), new Range16.ptr(3751, 3751, 1), new Range16.ptr(3754, 3755, 1), new Range16.ptr(3757, 3769, 1), new Range16.ptr(3771, 3773, 1), new Range16.ptr(3776, 3780, 1), new Range16.ptr(3782, 3782, 1), new Range16.ptr(3784, 3789, 1), new Range16.ptr(3792, 3801, 1), new Range16.ptr(3804, 3807, 1)]), sliceType$1.nil, 0);
  6096. _Latin = new RangeTable.ptr(new sliceType([new Range16.ptr(65, 90, 1), new Range16.ptr(97, 122, 1), new Range16.ptr(170, 170, 1), new Range16.ptr(186, 186, 1), new Range16.ptr(192, 214, 1), new Range16.ptr(216, 246, 1), new Range16.ptr(248, 696, 1), new Range16.ptr(736, 740, 1), new Range16.ptr(7424, 7461, 1), new Range16.ptr(7468, 7516, 1), new Range16.ptr(7522, 7525, 1), new Range16.ptr(7531, 7543, 1), new Range16.ptr(7545, 7614, 1), new Range16.ptr(7680, 7935, 1), new Range16.ptr(8305, 8305, 1), new Range16.ptr(8319, 8319, 1), new Range16.ptr(8336, 8348, 1), new Range16.ptr(8490, 8491, 1), new Range16.ptr(8498, 8498, 1), new Range16.ptr(8526, 8526, 1), new Range16.ptr(8544, 8584, 1), new Range16.ptr(11360, 11391, 1), new Range16.ptr(42786, 42887, 1), new Range16.ptr(42891, 42926, 1), new Range16.ptr(42928, 42935, 1), new Range16.ptr(42999, 43007, 1), new Range16.ptr(43824, 43866, 1), new Range16.ptr(43868, 43876, 1), new Range16.ptr(64256, 64262, 1), new Range16.ptr(65313, 65338, 1), new Range16.ptr(65345, 65370, 1)]), sliceType$1.nil, 6);
  6097. _Lepcha = new RangeTable.ptr(new sliceType([new Range16.ptr(7168, 7223, 1), new Range16.ptr(7227, 7241, 1), new Range16.ptr(7245, 7247, 1)]), sliceType$1.nil, 0);
  6098. _Limbu = new RangeTable.ptr(new sliceType([new Range16.ptr(6400, 6430, 1), new Range16.ptr(6432, 6443, 1), new Range16.ptr(6448, 6459, 1), new Range16.ptr(6464, 6464, 1), new Range16.ptr(6468, 6479, 1)]), sliceType$1.nil, 0);
  6099. _Linear_A = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67072, 67382, 1), new Range32.ptr(67392, 67413, 1), new Range32.ptr(67424, 67431, 1)]), 0);
  6100. _Linear_B = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(65536, 65547, 1), new Range32.ptr(65549, 65574, 1), new Range32.ptr(65576, 65594, 1), new Range32.ptr(65596, 65597, 1), new Range32.ptr(65599, 65613, 1), new Range32.ptr(65616, 65629, 1), new Range32.ptr(65664, 65786, 1)]), 0);
  6101. _Lisu = new RangeTable.ptr(new sliceType([new Range16.ptr(42192, 42239, 1)]), sliceType$1.nil, 0);
  6102. _Lycian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66176, 66204, 1)]), 0);
  6103. _Lydian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67872, 67897, 1), new Range32.ptr(67903, 67903, 1)]), 0);
  6104. _Mahajani = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(69968, 70006, 1)]), 0);
  6105. _Malayalam = new RangeTable.ptr(new sliceType([new Range16.ptr(3328, 3331, 1), new Range16.ptr(3333, 3340, 1), new Range16.ptr(3342, 3344, 1), new Range16.ptr(3346, 3396, 1), new Range16.ptr(3398, 3400, 1), new Range16.ptr(3402, 3407, 1), new Range16.ptr(3412, 3427, 1), new Range16.ptr(3430, 3455, 1)]), sliceType$1.nil, 0);
  6106. _Mandaic = new RangeTable.ptr(new sliceType([new Range16.ptr(2112, 2139, 1), new Range16.ptr(2142, 2142, 1)]), sliceType$1.nil, 0);
  6107. _Manichaean = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68288, 68326, 1), new Range32.ptr(68331, 68342, 1)]), 0);
  6108. _Marchen = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(72816, 72847, 1), new Range32.ptr(72850, 72871, 1), new Range32.ptr(72873, 72886, 1)]), 0);
  6109. _Masaram_Gondi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(72960, 72966, 1), new Range32.ptr(72968, 72969, 1), new Range32.ptr(72971, 73014, 1), new Range32.ptr(73018, 73018, 1), new Range32.ptr(73020, 73021, 1), new Range32.ptr(73023, 73031, 1), new Range32.ptr(73040, 73049, 1)]), 0);
  6110. _Meetei_Mayek = new RangeTable.ptr(new sliceType([new Range16.ptr(43744, 43766, 1), new Range16.ptr(43968, 44013, 1), new Range16.ptr(44016, 44025, 1)]), sliceType$1.nil, 0);
  6111. _Mende_Kikakui = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(124928, 125124, 1), new Range32.ptr(125127, 125142, 1)]), 0);
  6112. _Meroitic_Cursive = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68000, 68023, 1), new Range32.ptr(68028, 68047, 1), new Range32.ptr(68050, 68095, 1)]), 0);
  6113. _Meroitic_Hieroglyphs = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67968, 67999, 1)]), 0);
  6114. _Miao = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(93952, 94020, 1), new Range32.ptr(94032, 94078, 1), new Range32.ptr(94095, 94111, 1)]), 0);
  6115. _Modi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(71168, 71236, 1), new Range32.ptr(71248, 71257, 1)]), 0);
  6116. _Mongolian = new RangeTable.ptr(new sliceType([new Range16.ptr(6144, 6145, 1), new Range16.ptr(6148, 6148, 1), new Range16.ptr(6150, 6158, 1), new Range16.ptr(6160, 6169, 1), new Range16.ptr(6176, 6263, 1), new Range16.ptr(6272, 6314, 1)]), new sliceType$1([new Range32.ptr(71264, 71276, 1)]), 0);
  6117. _Mro = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(92736, 92766, 1), new Range32.ptr(92768, 92777, 1), new Range32.ptr(92782, 92783, 1)]), 0);
  6118. _Multani = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(70272, 70278, 1), new Range32.ptr(70280, 70280, 1), new Range32.ptr(70282, 70285, 1), new Range32.ptr(70287, 70301, 1), new Range32.ptr(70303, 70313, 1)]), 0);
  6119. _Myanmar = new RangeTable.ptr(new sliceType([new Range16.ptr(4096, 4255, 1), new Range16.ptr(43488, 43518, 1), new Range16.ptr(43616, 43647, 1)]), sliceType$1.nil, 0);
  6120. _Nabataean = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67712, 67742, 1), new Range32.ptr(67751, 67759, 1)]), 0);
  6121. _New_Tai_Lue = new RangeTable.ptr(new sliceType([new Range16.ptr(6528, 6571, 1), new Range16.ptr(6576, 6601, 1), new Range16.ptr(6608, 6618, 1), new Range16.ptr(6622, 6623, 1)]), sliceType$1.nil, 0);
  6122. _Newa = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(70656, 70745, 1), new Range32.ptr(70747, 70747, 1), new Range32.ptr(70749, 70749, 1)]), 0);
  6123. _Nko = new RangeTable.ptr(new sliceType([new Range16.ptr(1984, 2042, 1)]), sliceType$1.nil, 0);
  6124. _Nushu = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(94177, 94177, 1), new Range32.ptr(110960, 111355, 1)]), 0);
  6125. _Ogham = new RangeTable.ptr(new sliceType([new Range16.ptr(5760, 5788, 1)]), sliceType$1.nil, 0);
  6126. _Ol_Chiki = new RangeTable.ptr(new sliceType([new Range16.ptr(7248, 7295, 1)]), sliceType$1.nil, 0);
  6127. _Old_Hungarian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68736, 68786, 1), new Range32.ptr(68800, 68850, 1), new Range32.ptr(68858, 68863, 1)]), 0);
  6128. _Old_Italic = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66304, 66339, 1), new Range32.ptr(66349, 66351, 1)]), 0);
  6129. _Old_North_Arabian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68224, 68255, 1)]), 0);
  6130. _Old_Permic = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66384, 66426, 1)]), 0);
  6131. _Old_Persian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66464, 66499, 1), new Range32.ptr(66504, 66517, 1)]), 0);
  6132. _Old_South_Arabian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68192, 68223, 1)]), 0);
  6133. _Old_Turkic = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68608, 68680, 1)]), 0);
  6134. _Oriya = new RangeTable.ptr(new sliceType([new Range16.ptr(2817, 2819, 1), new Range16.ptr(2821, 2828, 1), new Range16.ptr(2831, 2832, 1), new Range16.ptr(2835, 2856, 1), new Range16.ptr(2858, 2864, 1), new Range16.ptr(2866, 2867, 1), new Range16.ptr(2869, 2873, 1), new Range16.ptr(2876, 2884, 1), new Range16.ptr(2887, 2888, 1), new Range16.ptr(2891, 2893, 1), new Range16.ptr(2902, 2903, 1), new Range16.ptr(2908, 2909, 1), new Range16.ptr(2911, 2915, 1), new Range16.ptr(2918, 2935, 1)]), sliceType$1.nil, 0);
  6135. _Osage = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66736, 66771, 1), new Range32.ptr(66776, 66811, 1)]), 0);
  6136. _Osmanya = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66688, 66717, 1), new Range32.ptr(66720, 66729, 1)]), 0);
  6137. _Pahawh_Hmong = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(92928, 92997, 1), new Range32.ptr(93008, 93017, 1), new Range32.ptr(93019, 93025, 1), new Range32.ptr(93027, 93047, 1), new Range32.ptr(93053, 93071, 1)]), 0);
  6138. _Palmyrene = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67680, 67711, 1)]), 0);
  6139. _Pau_Cin_Hau = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(72384, 72440, 1)]), 0);
  6140. _Phags_Pa = new RangeTable.ptr(new sliceType([new Range16.ptr(43072, 43127, 1)]), sliceType$1.nil, 0);
  6141. _Phoenician = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67840, 67867, 1), new Range32.ptr(67871, 67871, 1)]), 0);
  6142. _Psalter_Pahlavi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68480, 68497, 1), new Range32.ptr(68505, 68508, 1), new Range32.ptr(68521, 68527, 1)]), 0);
  6143. _Rejang = new RangeTable.ptr(new sliceType([new Range16.ptr(43312, 43347, 1), new Range16.ptr(43359, 43359, 1)]), sliceType$1.nil, 0);
  6144. _Runic = new RangeTable.ptr(new sliceType([new Range16.ptr(5792, 5866, 1), new Range16.ptr(5870, 5880, 1)]), sliceType$1.nil, 0);
  6145. _Samaritan = new RangeTable.ptr(new sliceType([new Range16.ptr(2048, 2093, 1), new Range16.ptr(2096, 2110, 1)]), sliceType$1.nil, 0);
  6146. _Saurashtra = new RangeTable.ptr(new sliceType([new Range16.ptr(43136, 43205, 1), new Range16.ptr(43214, 43225, 1)]), sliceType$1.nil, 0);
  6147. _Sharada = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(70016, 70093, 1), new Range32.ptr(70096, 70111, 1)]), 0);
  6148. _Shavian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66640, 66687, 1)]), 0);
  6149. _Siddham = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(71040, 71093, 1), new Range32.ptr(71096, 71133, 1)]), 0);
  6150. _SignWriting = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(120832, 121483, 1), new Range32.ptr(121499, 121503, 1), new Range32.ptr(121505, 121519, 1)]), 0);
  6151. _Sinhala = new RangeTable.ptr(new sliceType([new Range16.ptr(3458, 3459, 1), new Range16.ptr(3461, 3478, 1), new Range16.ptr(3482, 3505, 1), new Range16.ptr(3507, 3515, 1), new Range16.ptr(3517, 3517, 1), new Range16.ptr(3520, 3526, 1), new Range16.ptr(3530, 3530, 1), new Range16.ptr(3535, 3540, 1), new Range16.ptr(3542, 3542, 1), new Range16.ptr(3544, 3551, 1), new Range16.ptr(3558, 3567, 1), new Range16.ptr(3570, 3572, 1)]), new sliceType$1([new Range32.ptr(70113, 70132, 1)]), 0);
  6152. _Sora_Sompeng = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(69840, 69864, 1), new Range32.ptr(69872, 69881, 1)]), 0);
  6153. _Soyombo = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(72272, 72323, 1), new Range32.ptr(72326, 72348, 1), new Range32.ptr(72350, 72354, 1)]), 0);
  6154. _Sundanese = new RangeTable.ptr(new sliceType([new Range16.ptr(7040, 7103, 1), new Range16.ptr(7360, 7367, 1)]), sliceType$1.nil, 0);
  6155. _Syloti_Nagri = new RangeTable.ptr(new sliceType([new Range16.ptr(43008, 43051, 1)]), sliceType$1.nil, 0);
  6156. _Syriac = new RangeTable.ptr(new sliceType([new Range16.ptr(1792, 1805, 1), new Range16.ptr(1807, 1866, 1), new Range16.ptr(1869, 1871, 1), new Range16.ptr(2144, 2154, 1)]), sliceType$1.nil, 0);
  6157. _Tagalog = new RangeTable.ptr(new sliceType([new Range16.ptr(5888, 5900, 1), new Range16.ptr(5902, 5908, 1)]), sliceType$1.nil, 0);
  6158. _Tagbanwa = new RangeTable.ptr(new sliceType([new Range16.ptr(5984, 5996, 1), new Range16.ptr(5998, 6000, 1), new Range16.ptr(6002, 6003, 1)]), sliceType$1.nil, 0);
  6159. _Tai_Le = new RangeTable.ptr(new sliceType([new Range16.ptr(6480, 6509, 1), new Range16.ptr(6512, 6516, 1)]), sliceType$1.nil, 0);
  6160. _Tai_Tham = new RangeTable.ptr(new sliceType([new Range16.ptr(6688, 6750, 1), new Range16.ptr(6752, 6780, 1), new Range16.ptr(6783, 6793, 1), new Range16.ptr(6800, 6809, 1), new Range16.ptr(6816, 6829, 1)]), sliceType$1.nil, 0);
  6161. _Tai_Viet = new RangeTable.ptr(new sliceType([new Range16.ptr(43648, 43714, 1), new Range16.ptr(43739, 43743, 1)]), sliceType$1.nil, 0);
  6162. _Takri = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(71296, 71351, 1), new Range32.ptr(71360, 71369, 1)]), 0);
  6163. _Tamil = new RangeTable.ptr(new sliceType([new Range16.ptr(2946, 2947, 1), new Range16.ptr(2949, 2954, 1), new Range16.ptr(2958, 2960, 1), new Range16.ptr(2962, 2965, 1), new Range16.ptr(2969, 2970, 1), new Range16.ptr(2972, 2972, 1), new Range16.ptr(2974, 2975, 1), new Range16.ptr(2979, 2980, 1), new Range16.ptr(2984, 2986, 1), new Range16.ptr(2990, 3001, 1), new Range16.ptr(3006, 3010, 1), new Range16.ptr(3014, 3016, 1), new Range16.ptr(3018, 3021, 1), new Range16.ptr(3024, 3024, 1), new Range16.ptr(3031, 3031, 1), new Range16.ptr(3046, 3066, 1)]), sliceType$1.nil, 0);
  6164. _Tangut = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(94176, 94176, 1), new Range32.ptr(94208, 100332, 1), new Range32.ptr(100352, 101106, 1)]), 0);
  6165. _Telugu = new RangeTable.ptr(new sliceType([new Range16.ptr(3072, 3075, 1), new Range16.ptr(3077, 3084, 1), new Range16.ptr(3086, 3088, 1), new Range16.ptr(3090, 3112, 1), new Range16.ptr(3114, 3129, 1), new Range16.ptr(3133, 3140, 1), new Range16.ptr(3142, 3144, 1), new Range16.ptr(3146, 3149, 1), new Range16.ptr(3157, 3158, 1), new Range16.ptr(3160, 3162, 1), new Range16.ptr(3168, 3171, 1), new Range16.ptr(3174, 3183, 1), new Range16.ptr(3192, 3199, 1)]), sliceType$1.nil, 0);
  6166. _Thaana = new RangeTable.ptr(new sliceType([new Range16.ptr(1920, 1969, 1)]), sliceType$1.nil, 0);
  6167. _Thai = new RangeTable.ptr(new sliceType([new Range16.ptr(3585, 3642, 1), new Range16.ptr(3648, 3675, 1)]), sliceType$1.nil, 0);
  6168. _Tibetan = new RangeTable.ptr(new sliceType([new Range16.ptr(3840, 3911, 1), new Range16.ptr(3913, 3948, 1), new Range16.ptr(3953, 3991, 1), new Range16.ptr(3993, 4028, 1), new Range16.ptr(4030, 4044, 1), new Range16.ptr(4046, 4052, 1), new Range16.ptr(4057, 4058, 1)]), sliceType$1.nil, 0);
  6169. _Tifinagh = new RangeTable.ptr(new sliceType([new Range16.ptr(11568, 11623, 1), new Range16.ptr(11631, 11632, 1), new Range16.ptr(11647, 11647, 1)]), sliceType$1.nil, 0);
  6170. _Tirhuta = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(70784, 70855, 1), new Range32.ptr(70864, 70873, 1)]), 0);
  6171. _Ugaritic = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66432, 66461, 1), new Range32.ptr(66463, 66463, 1)]), 0);
  6172. _Vai = new RangeTable.ptr(new sliceType([new Range16.ptr(42240, 42539, 1)]), sliceType$1.nil, 0);
  6173. _Warang_Citi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(71840, 71922, 1), new Range32.ptr(71935, 71935, 1)]), 0);
  6174. _Yi = new RangeTable.ptr(new sliceType([new Range16.ptr(40960, 42124, 1), new Range16.ptr(42128, 42182, 1)]), sliceType$1.nil, 0);
  6175. _Zanabazar_Square = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(72192, 72263, 1)]), 0);
  6176. $pkg.Adlam = _Adlam;
  6177. $pkg.Ahom = _Ahom;
  6178. $pkg.Anatolian_Hieroglyphs = _Anatolian_Hieroglyphs;
  6179. $pkg.Arabic = _Arabic;
  6180. $pkg.Armenian = _Armenian;
  6181. $pkg.Avestan = _Avestan;
  6182. $pkg.Balinese = _Balinese;
  6183. $pkg.Bamum = _Bamum;
  6184. $pkg.Bassa_Vah = _Bassa_Vah;
  6185. $pkg.Batak = _Batak;
  6186. $pkg.Bengali = _Bengali;
  6187. $pkg.Bhaiksuki = _Bhaiksuki;
  6188. $pkg.Bopomofo = _Bopomofo;
  6189. $pkg.Brahmi = _Brahmi;
  6190. $pkg.Braille = _Braille;
  6191. $pkg.Buginese = _Buginese;
  6192. $pkg.Buhid = _Buhid;
  6193. $pkg.Canadian_Aboriginal = _Canadian_Aboriginal;
  6194. $pkg.Carian = _Carian;
  6195. $pkg.Caucasian_Albanian = _Caucasian_Albanian;
  6196. $pkg.Chakma = _Chakma;
  6197. $pkg.Cham = _Cham;
  6198. $pkg.Cherokee = _Cherokee;
  6199. $pkg.Common = _Common;
  6200. $pkg.Coptic = _Coptic;
  6201. $pkg.Cuneiform = _Cuneiform;
  6202. $pkg.Cypriot = _Cypriot;
  6203. $pkg.Cyrillic = _Cyrillic;
  6204. $pkg.Deseret = _Deseret;
  6205. $pkg.Devanagari = _Devanagari;
  6206. $pkg.Duployan = _Duployan;
  6207. $pkg.Egyptian_Hieroglyphs = _Egyptian_Hieroglyphs;
  6208. $pkg.Elbasan = _Elbasan;
  6209. $pkg.Ethiopic = _Ethiopic;
  6210. $pkg.Georgian = _Georgian;
  6211. $pkg.Glagolitic = _Glagolitic;
  6212. $pkg.Gothic = _Gothic;
  6213. $pkg.Grantha = _Grantha;
  6214. $pkg.Greek = _Greek;
  6215. $pkg.Gujarati = _Gujarati;
  6216. $pkg.Gurmukhi = _Gurmukhi;
  6217. $pkg.Han = _Han;
  6218. $pkg.Hangul = _Hangul;
  6219. $pkg.Hanunoo = _Hanunoo;
  6220. $pkg.Hatran = _Hatran;
  6221. $pkg.Hebrew = _Hebrew;
  6222. $pkg.Hiragana = _Hiragana;
  6223. $pkg.Imperial_Aramaic = _Imperial_Aramaic;
  6224. $pkg.Inherited = _Inherited;
  6225. $pkg.Inscriptional_Pahlavi = _Inscriptional_Pahlavi;
  6226. $pkg.Inscriptional_Parthian = _Inscriptional_Parthian;
  6227. $pkg.Javanese = _Javanese;
  6228. $pkg.Kaithi = _Kaithi;
  6229. $pkg.Kannada = _Kannada;
  6230. $pkg.Katakana = _Katakana;
  6231. $pkg.Kayah_Li = _Kayah_Li;
  6232. $pkg.Kharoshthi = _Kharoshthi;
  6233. $pkg.Khmer = _Khmer;
  6234. $pkg.Khojki = _Khojki;
  6235. $pkg.Khudawadi = _Khudawadi;
  6236. $pkg.Lao = _Lao;
  6237. $pkg.Latin = _Latin;
  6238. $pkg.Lepcha = _Lepcha;
  6239. $pkg.Limbu = _Limbu;
  6240. $pkg.Linear_A = _Linear_A;
  6241. $pkg.Linear_B = _Linear_B;
  6242. $pkg.Lisu = _Lisu;
  6243. $pkg.Lycian = _Lycian;
  6244. $pkg.Lydian = _Lydian;
  6245. $pkg.Mahajani = _Mahajani;
  6246. $pkg.Malayalam = _Malayalam;
  6247. $pkg.Mandaic = _Mandaic;
  6248. $pkg.Manichaean = _Manichaean;
  6249. $pkg.Marchen = _Marchen;
  6250. $pkg.Masaram_Gondi = _Masaram_Gondi;
  6251. $pkg.Meetei_Mayek = _Meetei_Mayek;
  6252. $pkg.Mende_Kikakui = _Mende_Kikakui;
  6253. $pkg.Meroitic_Cursive = _Meroitic_Cursive;
  6254. $pkg.Meroitic_Hieroglyphs = _Meroitic_Hieroglyphs;
  6255. $pkg.Miao = _Miao;
  6256. $pkg.Modi = _Modi;
  6257. $pkg.Mongolian = _Mongolian;
  6258. $pkg.Mro = _Mro;
  6259. $pkg.Multani = _Multani;
  6260. $pkg.Myanmar = _Myanmar;
  6261. $pkg.Nabataean = _Nabataean;
  6262. $pkg.New_Tai_Lue = _New_Tai_Lue;
  6263. $pkg.Newa = _Newa;
  6264. $pkg.Nko = _Nko;
  6265. $pkg.Nushu = _Nushu;
  6266. $pkg.Ogham = _Ogham;
  6267. $pkg.Ol_Chiki = _Ol_Chiki;
  6268. $pkg.Old_Hungarian = _Old_Hungarian;
  6269. $pkg.Old_Italic = _Old_Italic;
  6270. $pkg.Old_North_Arabian = _Old_North_Arabian;
  6271. $pkg.Old_Permic = _Old_Permic;
  6272. $pkg.Old_Persian = _Old_Persian;
  6273. $pkg.Old_South_Arabian = _Old_South_Arabian;
  6274. $pkg.Old_Turkic = _Old_Turkic;
  6275. $pkg.Oriya = _Oriya;
  6276. $pkg.Osage = _Osage;
  6277. $pkg.Osmanya = _Osmanya;
  6278. $pkg.Pahawh_Hmong = _Pahawh_Hmong;
  6279. $pkg.Palmyrene = _Palmyrene;
  6280. $pkg.Pau_Cin_Hau = _Pau_Cin_Hau;
  6281. $pkg.Phags_Pa = _Phags_Pa;
  6282. $pkg.Phoenician = _Phoenician;
  6283. $pkg.Psalter_Pahlavi = _Psalter_Pahlavi;
  6284. $pkg.Rejang = _Rejang;
  6285. $pkg.Runic = _Runic;
  6286. $pkg.Samaritan = _Samaritan;
  6287. $pkg.Saurashtra = _Saurashtra;
  6288. $pkg.Sharada = _Sharada;
  6289. $pkg.Shavian = _Shavian;
  6290. $pkg.Siddham = _Siddham;
  6291. $pkg.SignWriting = _SignWriting;
  6292. $pkg.Sinhala = _Sinhala;
  6293. $pkg.Sora_Sompeng = _Sora_Sompeng;
  6294. $pkg.Soyombo = _Soyombo;
  6295. $pkg.Sundanese = _Sundanese;
  6296. $pkg.Syloti_Nagri = _Syloti_Nagri;
  6297. $pkg.Syriac = _Syriac;
  6298. $pkg.Tagalog = _Tagalog;
  6299. $pkg.Tagbanwa = _Tagbanwa;
  6300. $pkg.Tai_Le = _Tai_Le;
  6301. $pkg.Tai_Tham = _Tai_Tham;
  6302. $pkg.Tai_Viet = _Tai_Viet;
  6303. $pkg.Takri = _Takri;
  6304. $pkg.Tamil = _Tamil;
  6305. $pkg.Tangut = _Tangut;
  6306. $pkg.Telugu = _Telugu;
  6307. $pkg.Thaana = _Thaana;
  6308. $pkg.Thai = _Thai;
  6309. $pkg.Tibetan = _Tibetan;
  6310. $pkg.Tifinagh = _Tifinagh;
  6311. $pkg.Tirhuta = _Tirhuta;
  6312. $pkg.Ugaritic = _Ugaritic;
  6313. $pkg.Vai = _Vai;
  6314. $pkg.Warang_Citi = _Warang_Citi;
  6315. $pkg.Yi = _Yi;
  6316. $pkg.Zanabazar_Square = _Zanabazar_Square;
  6317. $pkg.Scripts = $makeMap($String.keyFor, [{ k: "Adlam", v: $pkg.Adlam }, { k: "Ahom", v: $pkg.Ahom }, { k: "Anatolian_Hieroglyphs", v: $pkg.Anatolian_Hieroglyphs }, { k: "Arabic", v: $pkg.Arabic }, { k: "Armenian", v: $pkg.Armenian }, { k: "Avestan", v: $pkg.Avestan }, { k: "Balinese", v: $pkg.Balinese }, { k: "Bamum", v: $pkg.Bamum }, { k: "Bassa_Vah", v: $pkg.Bassa_Vah }, { k: "Batak", v: $pkg.Batak }, { k: "Bengali", v: $pkg.Bengali }, { k: "Bhaiksuki", v: $pkg.Bhaiksuki }, { k: "Bopomofo", v: $pkg.Bopomofo }, { k: "Brahmi", v: $pkg.Brahmi }, { k: "Braille", v: $pkg.Braille }, { k: "Buginese", v: $pkg.Buginese }, { k: "Buhid", v: $pkg.Buhid }, { k: "Canadian_Aboriginal", v: $pkg.Canadian_Aboriginal }, { k: "Carian", v: $pkg.Carian }, { k: "Caucasian_Albanian", v: $pkg.Caucasian_Albanian }, { k: "Chakma", v: $pkg.Chakma }, { k: "Cham", v: $pkg.Cham }, { k: "Cherokee", v: $pkg.Cherokee }, { k: "Common", v: $pkg.Common }, { k: "Coptic", v: $pkg.Coptic }, { k: "Cuneiform", v: $pkg.Cuneiform }, { k: "Cypriot", v: $pkg.Cypriot }, { k: "Cyrillic", v: $pkg.Cyrillic }, { k: "Deseret", v: $pkg.Deseret }, { k: "Devanagari", v: $pkg.Devanagari }, { k: "Duployan", v: $pkg.Duployan }, { k: "Egyptian_Hieroglyphs", v: $pkg.Egyptian_Hieroglyphs }, { k: "Elbasan", v: $pkg.Elbasan }, { k: "Ethiopic", v: $pkg.Ethiopic }, { k: "Georgian", v: $pkg.Georgian }, { k: "Glagolitic", v: $pkg.Glagolitic }, { k: "Gothic", v: $pkg.Gothic }, { k: "Grantha", v: $pkg.Grantha }, { k: "Greek", v: $pkg.Greek }, { k: "Gujarati", v: $pkg.Gujarati }, { k: "Gurmukhi", v: $pkg.Gurmukhi }, { k: "Han", v: $pkg.Han }, { k: "Hangul", v: $pkg.Hangul }, { k: "Hanunoo", v: $pkg.Hanunoo }, { k: "Hatran", v: $pkg.Hatran }, { k: "Hebrew", v: $pkg.Hebrew }, { k: "Hiragana", v: $pkg.Hiragana }, { k: "Imperial_Aramaic", v: $pkg.Imperial_Aramaic }, { k: "Inherited", v: $pkg.Inherited }, { k: "Inscriptional_Pahlavi", v: $pkg.Inscriptional_Pahlavi }, { k: "Inscriptional_Parthian", v: $pkg.Inscriptional_Parthian }, { k: "Javanese", v: $pkg.Javanese }, { k: "Kaithi", v: $pkg.Kaithi }, { k: "Kannada", v: $pkg.Kannada }, { k: "Katakana", v: $pkg.Katakana }, { k: "Kayah_Li", v: $pkg.Kayah_Li }, { k: "Kharoshthi", v: $pkg.Kharoshthi }, { k: "Khmer", v: $pkg.Khmer }, { k: "Khojki", v: $pkg.Khojki }, { k: "Khudawadi", v: $pkg.Khudawadi }, { k: "Lao", v: $pkg.Lao }, { k: "Latin", v: $pkg.Latin }, { k: "Lepcha", v: $pkg.Lepcha }, { k: "Limbu", v: $pkg.Limbu }, { k: "Linear_A", v: $pkg.Linear_A }, { k: "Linear_B", v: $pkg.Linear_B }, { k: "Lisu", v: $pkg.Lisu }, { k: "Lycian", v: $pkg.Lycian }, { k: "Lydian", v: $pkg.Lydian }, { k: "Mahajani", v: $pkg.Mahajani }, { k: "Malayalam", v: $pkg.Malayalam }, { k: "Mandaic", v: $pkg.Mandaic }, { k: "Manichaean", v: $pkg.Manichaean }, { k: "Marchen", v: $pkg.Marchen }, { k: "Masaram_Gondi", v: $pkg.Masaram_Gondi }, { k: "Meetei_Mayek", v: $pkg.Meetei_Mayek }, { k: "Mende_Kikakui", v: $pkg.Mende_Kikakui }, { k: "Meroitic_Cursive", v: $pkg.Meroitic_Cursive }, { k: "Meroitic_Hieroglyphs", v: $pkg.Meroitic_Hieroglyphs }, { k: "Miao", v: $pkg.Miao }, { k: "Modi", v: $pkg.Modi }, { k: "Mongolian", v: $pkg.Mongolian }, { k: "Mro", v: $pkg.Mro }, { k: "Multani", v: $pkg.Multani }, { k: "Myanmar", v: $pkg.Myanmar }, { k: "Nabataean", v: $pkg.Nabataean }, { k: "New_Tai_Lue", v: $pkg.New_Tai_Lue }, { k: "Newa", v: $pkg.Newa }, { k: "Nko", v: $pkg.Nko }, { k: "Nushu", v: $pkg.Nushu }, { k: "Ogham", v: $pkg.Ogham }, { k: "Ol_Chiki", v: $pkg.Ol_Chiki }, { k: "Old_Hungarian", v: $pkg.Old_Hungarian }, { k: "Old_Italic", v: $pkg.Old_Italic }, { k: "Old_North_Arabian", v: $pkg.Old_North_Arabian }, { k: "Old_Permic", v: $pkg.Old_Permic }, { k: "Old_Persian", v: $pkg.Old_Persian }, { k: "Old_South_Arabian", v: $pkg.Old_South_Arabian }, { k: "Old_Turkic", v: $pkg.Old_Turkic }, { k: "Oriya", v: $pkg.Oriya }, { k: "Osage", v: $pkg.Osage }, { k: "Osmanya", v: $pkg.Osmanya }, { k: "Pahawh_Hmong", v: $pkg.Pahawh_Hmong }, { k: "Palmyrene", v: $pkg.Palmyrene }, { k: "Pau_Cin_Hau", v: $pkg.Pau_Cin_Hau }, { k: "Phags_Pa", v: $pkg.Phags_Pa }, { k: "Phoenician", v: $pkg.Phoenician }, { k: "Psalter_Pahlavi", v: $pkg.Psalter_Pahlavi }, { k: "Rejang", v: $pkg.Rejang }, { k: "Runic", v: $pkg.Runic }, { k: "Samaritan", v: $pkg.Samaritan }, { k: "Saurashtra", v: $pkg.Saurashtra }, { k: "Sharada", v: $pkg.Sharada }, { k: "Shavian", v: $pkg.Shavian }, { k: "Siddham", v: $pkg.Siddham }, { k: "SignWriting", v: $pkg.SignWriting }, { k: "Sinhala", v: $pkg.Sinhala }, { k: "Sora_Sompeng", v: $pkg.Sora_Sompeng }, { k: "Soyombo", v: $pkg.Soyombo }, { k: "Sundanese", v: $pkg.Sundanese }, { k: "Syloti_Nagri", v: $pkg.Syloti_Nagri }, { k: "Syriac", v: $pkg.Syriac }, { k: "Tagalog", v: $pkg.Tagalog }, { k: "Tagbanwa", v: $pkg.Tagbanwa }, { k: "Tai_Le", v: $pkg.Tai_Le }, { k: "Tai_Tham", v: $pkg.Tai_Tham }, { k: "Tai_Viet", v: $pkg.Tai_Viet }, { k: "Takri", v: $pkg.Takri }, { k: "Tamil", v: $pkg.Tamil }, { k: "Tangut", v: $pkg.Tangut }, { k: "Telugu", v: $pkg.Telugu }, { k: "Thaana", v: $pkg.Thaana }, { k: "Thai", v: $pkg.Thai }, { k: "Tibetan", v: $pkg.Tibetan }, { k: "Tifinagh", v: $pkg.Tifinagh }, { k: "Tirhuta", v: $pkg.Tirhuta }, { k: "Ugaritic", v: $pkg.Ugaritic }, { k: "Vai", v: $pkg.Vai }, { k: "Warang_Citi", v: $pkg.Warang_Citi }, { k: "Yi", v: $pkg.Yi }, { k: "Zanabazar_Square", v: $pkg.Zanabazar_Square }]);
  6318. _CaseRanges = new sliceType$3([new CaseRange.ptr(65, 90, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(97, 122, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(181, 181, $toNativeArray($kindInt32, [743, 0, 743])), new CaseRange.ptr(192, 214, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(216, 222, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(224, 246, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(248, 254, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(255, 255, $toNativeArray($kindInt32, [121, 0, 121])), new CaseRange.ptr(256, 303, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(304, 304, $toNativeArray($kindInt32, [0, -199, 0])), new CaseRange.ptr(305, 305, $toNativeArray($kindInt32, [-232, 0, -232])), new CaseRange.ptr(306, 311, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(313, 328, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(330, 375, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(376, 376, $toNativeArray($kindInt32, [0, -121, 0])), new CaseRange.ptr(377, 382, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(383, 383, $toNativeArray($kindInt32, [-300, 0, -300])), new CaseRange.ptr(384, 384, $toNativeArray($kindInt32, [195, 0, 195])), new CaseRange.ptr(385, 385, $toNativeArray($kindInt32, [0, 210, 0])), new CaseRange.ptr(386, 389, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(390, 390, $toNativeArray($kindInt32, [0, 206, 0])), new CaseRange.ptr(391, 392, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(393, 394, $toNativeArray($kindInt32, [0, 205, 0])), new CaseRange.ptr(395, 396, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(398, 398, $toNativeArray($kindInt32, [0, 79, 0])), new CaseRange.ptr(399, 399, $toNativeArray($kindInt32, [0, 202, 0])), new CaseRange.ptr(400, 400, $toNativeArray($kindInt32, [0, 203, 0])), new CaseRange.ptr(401, 402, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(403, 403, $toNativeArray($kindInt32, [0, 205, 0])), new CaseRange.ptr(404, 404, $toNativeArray($kindInt32, [0, 207, 0])), new CaseRange.ptr(405, 405, $toNativeArray($kindInt32, [97, 0, 97])), new CaseRange.ptr(406, 406, $toNativeArray($kindInt32, [0, 211, 0])), new CaseRange.ptr(407, 407, $toNativeArray($kindInt32, [0, 209, 0])), new CaseRange.ptr(408, 409, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(410, 410, $toNativeArray($kindInt32, [163, 0, 163])), new CaseRange.ptr(412, 412, $toNativeArray($kindInt32, [0, 211, 0])), new CaseRange.ptr(413, 413, $toNativeArray($kindInt32, [0, 213, 0])), new CaseRange.ptr(414, 414, $toNativeArray($kindInt32, [130, 0, 130])), new CaseRange.ptr(415, 415, $toNativeArray($kindInt32, [0, 214, 0])), new CaseRange.ptr(416, 421, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(422, 422, $toNativeArray($kindInt32, [0, 218, 0])), new CaseRange.ptr(423, 424, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(425, 425, $toNativeArray($kindInt32, [0, 218, 0])), new CaseRange.ptr(428, 429, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(430, 430, $toNativeArray($kindInt32, [0, 218, 0])), new CaseRange.ptr(431, 432, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(433, 434, $toNativeArray($kindInt32, [0, 217, 0])), new CaseRange.ptr(435, 438, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(439, 439, $toNativeArray($kindInt32, [0, 219, 0])), new CaseRange.ptr(440, 441, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(444, 445, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(447, 447, $toNativeArray($kindInt32, [56, 0, 56])), new CaseRange.ptr(452, 452, $toNativeArray($kindInt32, [0, 2, 1])), new CaseRange.ptr(453, 453, $toNativeArray($kindInt32, [-1, 1, 0])), new CaseRange.ptr(454, 454, $toNativeArray($kindInt32, [-2, 0, -1])), new CaseRange.ptr(455, 455, $toNativeArray($kindInt32, [0, 2, 1])), new CaseRange.ptr(456, 456, $toNativeArray($kindInt32, [-1, 1, 0])), new CaseRange.ptr(457, 457, $toNativeArray($kindInt32, [-2, 0, -1])), new CaseRange.ptr(458, 458, $toNativeArray($kindInt32, [0, 2, 1])), new CaseRange.ptr(459, 459, $toNativeArray($kindInt32, [-1, 1, 0])), new CaseRange.ptr(460, 460, $toNativeArray($kindInt32, [-2, 0, -1])), new CaseRange.ptr(461, 476, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(477, 477, $toNativeArray($kindInt32, [-79, 0, -79])), new CaseRange.ptr(478, 495, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(497, 497, $toNativeArray($kindInt32, [0, 2, 1])), new CaseRange.ptr(498, 498, $toNativeArray($kindInt32, [-1, 1, 0])), new CaseRange.ptr(499, 499, $toNativeArray($kindInt32, [-2, 0, -1])), new CaseRange.ptr(500, 501, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(502, 502, $toNativeArray($kindInt32, [0, -97, 0])), new CaseRange.ptr(503, 503, $toNativeArray($kindInt32, [0, -56, 0])), new CaseRange.ptr(504, 543, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(544, 544, $toNativeArray($kindInt32, [0, -130, 0])), new CaseRange.ptr(546, 563, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(570, 570, $toNativeArray($kindInt32, [0, 10795, 0])), new CaseRange.ptr(571, 572, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(573, 573, $toNativeArray($kindInt32, [0, -163, 0])), new CaseRange.ptr(574, 574, $toNativeArray($kindInt32, [0, 10792, 0])), new CaseRange.ptr(575, 576, $toNativeArray($kindInt32, [10815, 0, 10815])), new CaseRange.ptr(577, 578, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(579, 579, $toNativeArray($kindInt32, [0, -195, 0])), new CaseRange.ptr(580, 580, $toNativeArray($kindInt32, [0, 69, 0])), new CaseRange.ptr(581, 581, $toNativeArray($kindInt32, [0, 71, 0])), new CaseRange.ptr(582, 591, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(592, 592, $toNativeArray($kindInt32, [10783, 0, 10783])), new CaseRange.ptr(593, 593, $toNativeArray($kindInt32, [10780, 0, 10780])), new CaseRange.ptr(594, 594, $toNativeArray($kindInt32, [10782, 0, 10782])), new CaseRange.ptr(595, 595, $toNativeArray($kindInt32, [-210, 0, -210])), new CaseRange.ptr(596, 596, $toNativeArray($kindInt32, [-206, 0, -206])), new CaseRange.ptr(598, 599, $toNativeArray($kindInt32, [-205, 0, -205])), new CaseRange.ptr(601, 601, $toNativeArray($kindInt32, [-202, 0, -202])), new CaseRange.ptr(603, 603, $toNativeArray($kindInt32, [-203, 0, -203])), new CaseRange.ptr(604, 604, $toNativeArray($kindInt32, [42319, 0, 42319])), new CaseRange.ptr(608, 608, $toNativeArray($kindInt32, [-205, 0, -205])), new CaseRange.ptr(609, 609, $toNativeArray($kindInt32, [42315, 0, 42315])), new CaseRange.ptr(611, 611, $toNativeArray($kindInt32, [-207, 0, -207])), new CaseRange.ptr(613, 613, $toNativeArray($kindInt32, [42280, 0, 42280])), new CaseRange.ptr(614, 614, $toNativeArray($kindInt32, [42308, 0, 42308])), new CaseRange.ptr(616, 616, $toNativeArray($kindInt32, [-209, 0, -209])), new CaseRange.ptr(617, 617, $toNativeArray($kindInt32, [-211, 0, -211])), new CaseRange.ptr(618, 618, $toNativeArray($kindInt32, [42308, 0, 42308])), new CaseRange.ptr(619, 619, $toNativeArray($kindInt32, [10743, 0, 10743])), new CaseRange.ptr(620, 620, $toNativeArray($kindInt32, [42305, 0, 42305])), new CaseRange.ptr(623, 623, $toNativeArray($kindInt32, [-211, 0, -211])), new CaseRange.ptr(625, 625, $toNativeArray($kindInt32, [10749, 0, 10749])), new CaseRange.ptr(626, 626, $toNativeArray($kindInt32, [-213, 0, -213])), new CaseRange.ptr(629, 629, $toNativeArray($kindInt32, [-214, 0, -214])), new CaseRange.ptr(637, 637, $toNativeArray($kindInt32, [10727, 0, 10727])), new CaseRange.ptr(640, 640, $toNativeArray($kindInt32, [-218, 0, -218])), new CaseRange.ptr(643, 643, $toNativeArray($kindInt32, [-218, 0, -218])), new CaseRange.ptr(647, 647, $toNativeArray($kindInt32, [42282, 0, 42282])), new CaseRange.ptr(648, 648, $toNativeArray($kindInt32, [-218, 0, -218])), new CaseRange.ptr(649, 649, $toNativeArray($kindInt32, [-69, 0, -69])), new CaseRange.ptr(650, 651, $toNativeArray($kindInt32, [-217, 0, -217])), new CaseRange.ptr(652, 652, $toNativeArray($kindInt32, [-71, 0, -71])), new CaseRange.ptr(658, 658, $toNativeArray($kindInt32, [-219, 0, -219])), new CaseRange.ptr(669, 669, $toNativeArray($kindInt32, [42261, 0, 42261])), new CaseRange.ptr(670, 670, $toNativeArray($kindInt32, [42258, 0, 42258])), new CaseRange.ptr(837, 837, $toNativeArray($kindInt32, [84, 0, 84])), new CaseRange.ptr(880, 883, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(886, 887, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(891, 893, $toNativeArray($kindInt32, [130, 0, 130])), new CaseRange.ptr(895, 895, $toNativeArray($kindInt32, [0, 116, 0])), new CaseRange.ptr(902, 902, $toNativeArray($kindInt32, [0, 38, 0])), new CaseRange.ptr(904, 906, $toNativeArray($kindInt32, [0, 37, 0])), new CaseRange.ptr(908, 908, $toNativeArray($kindInt32, [0, 64, 0])), new CaseRange.ptr(910, 911, $toNativeArray($kindInt32, [0, 63, 0])), new CaseRange.ptr(913, 929, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(931, 939, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(940, 940, $toNativeArray($kindInt32, [-38, 0, -38])), new CaseRange.ptr(941, 943, $toNativeArray($kindInt32, [-37, 0, -37])), new CaseRange.ptr(945, 961, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(962, 962, $toNativeArray($kindInt32, [-31, 0, -31])), new CaseRange.ptr(963, 971, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(972, 972, $toNativeArray($kindInt32, [-64, 0, -64])), new CaseRange.ptr(973, 974, $toNativeArray($kindInt32, [-63, 0, -63])), new CaseRange.ptr(975, 975, $toNativeArray($kindInt32, [0, 8, 0])), new CaseRange.ptr(976, 976, $toNativeArray($kindInt32, [-62, 0, -62])), new CaseRange.ptr(977, 977, $toNativeArray($kindInt32, [-57, 0, -57])), new CaseRange.ptr(981, 981, $toNativeArray($kindInt32, [-47, 0, -47])), new CaseRange.ptr(982, 982, $toNativeArray($kindInt32, [-54, 0, -54])), new CaseRange.ptr(983, 983, $toNativeArray($kindInt32, [-8, 0, -8])), new CaseRange.ptr(984, 1007, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1008, 1008, $toNativeArray($kindInt32, [-86, 0, -86])), new CaseRange.ptr(1009, 1009, $toNativeArray($kindInt32, [-80, 0, -80])), new CaseRange.ptr(1010, 1010, $toNativeArray($kindInt32, [7, 0, 7])), new CaseRange.ptr(1011, 1011, $toNativeArray($kindInt32, [-116, 0, -116])), new CaseRange.ptr(1012, 1012, $toNativeArray($kindInt32, [0, -60, 0])), new CaseRange.ptr(1013, 1013, $toNativeArray($kindInt32, [-96, 0, -96])), new CaseRange.ptr(1015, 1016, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1017, 1017, $toNativeArray($kindInt32, [0, -7, 0])), new CaseRange.ptr(1018, 1019, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1021, 1023, $toNativeArray($kindInt32, [0, -130, 0])), new CaseRange.ptr(1024, 1039, $toNativeArray($kindInt32, [0, 80, 0])), new CaseRange.ptr(1040, 1071, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(1072, 1103, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(1104, 1119, $toNativeArray($kindInt32, [-80, 0, -80])), new CaseRange.ptr(1120, 1153, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1162, 1215, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1216, 1216, $toNativeArray($kindInt32, [0, 15, 0])), new CaseRange.ptr(1217, 1230, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1231, 1231, $toNativeArray($kindInt32, [-15, 0, -15])), new CaseRange.ptr(1232, 1327, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1329, 1366, $toNativeArray($kindInt32, [0, 48, 0])), new CaseRange.ptr(1377, 1414, $toNativeArray($kindInt32, [-48, 0, -48])), new CaseRange.ptr(4256, 4293, $toNativeArray($kindInt32, [0, 7264, 0])), new CaseRange.ptr(4295, 4295, $toNativeArray($kindInt32, [0, 7264, 0])), new CaseRange.ptr(4301, 4301, $toNativeArray($kindInt32, [0, 7264, 0])), new CaseRange.ptr(5024, 5103, $toNativeArray($kindInt32, [0, 38864, 0])), new CaseRange.ptr(5104, 5109, $toNativeArray($kindInt32, [0, 8, 0])), new CaseRange.ptr(5112, 5117, $toNativeArray($kindInt32, [-8, 0, -8])), new CaseRange.ptr(7296, 7296, $toNativeArray($kindInt32, [-6254, 0, -6254])), new CaseRange.ptr(7297, 7297, $toNativeArray($kindInt32, [-6253, 0, -6253])), new CaseRange.ptr(7298, 7298, $toNativeArray($kindInt32, [-6244, 0, -6244])), new CaseRange.ptr(7299, 7300, $toNativeArray($kindInt32, [-6242, 0, -6242])), new CaseRange.ptr(7301, 7301, $toNativeArray($kindInt32, [-6243, 0, -6243])), new CaseRange.ptr(7302, 7302, $toNativeArray($kindInt32, [-6236, 0, -6236])), new CaseRange.ptr(7303, 7303, $toNativeArray($kindInt32, [-6181, 0, -6181])), new CaseRange.ptr(7304, 7304, $toNativeArray($kindInt32, [35266, 0, 35266])), new CaseRange.ptr(7545, 7545, $toNativeArray($kindInt32, [35332, 0, 35332])), new CaseRange.ptr(7549, 7549, $toNativeArray($kindInt32, [3814, 0, 3814])), new CaseRange.ptr(7680, 7829, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(7835, 7835, $toNativeArray($kindInt32, [-59, 0, -59])), new CaseRange.ptr(7838, 7838, $toNativeArray($kindInt32, [0, -7615, 0])), new CaseRange.ptr(7840, 7935, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(7936, 7943, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(7944, 7951, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(7952, 7957, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(7960, 7965, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(7968, 7975, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(7976, 7983, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(7984, 7991, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(7992, 7999, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8000, 8005, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8008, 8013, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8017, 8017, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8019, 8019, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8021, 8021, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8023, 8023, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8025, 8025, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8027, 8027, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8029, 8029, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8031, 8031, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8032, 8039, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8040, 8047, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8048, 8049, $toNativeArray($kindInt32, [74, 0, 74])), new CaseRange.ptr(8050, 8053, $toNativeArray($kindInt32, [86, 0, 86])), new CaseRange.ptr(8054, 8055, $toNativeArray($kindInt32, [100, 0, 100])), new CaseRange.ptr(8056, 8057, $toNativeArray($kindInt32, [128, 0, 128])), new CaseRange.ptr(8058, 8059, $toNativeArray($kindInt32, [112, 0, 112])), new CaseRange.ptr(8060, 8061, $toNativeArray($kindInt32, [126, 0, 126])), new CaseRange.ptr(8064, 8071, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8072, 8079, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8080, 8087, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8088, 8095, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8096, 8103, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8104, 8111, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8112, 8113, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8115, 8115, $toNativeArray($kindInt32, [9, 0, 9])), new CaseRange.ptr(8120, 8121, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8122, 8123, $toNativeArray($kindInt32, [0, -74, 0])), new CaseRange.ptr(8124, 8124, $toNativeArray($kindInt32, [0, -9, 0])), new CaseRange.ptr(8126, 8126, $toNativeArray($kindInt32, [-7205, 0, -7205])), new CaseRange.ptr(8131, 8131, $toNativeArray($kindInt32, [9, 0, 9])), new CaseRange.ptr(8136, 8139, $toNativeArray($kindInt32, [0, -86, 0])), new CaseRange.ptr(8140, 8140, $toNativeArray($kindInt32, [0, -9, 0])), new CaseRange.ptr(8144, 8145, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8152, 8153, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8154, 8155, $toNativeArray($kindInt32, [0, -100, 0])), new CaseRange.ptr(8160, 8161, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8165, 8165, $toNativeArray($kindInt32, [7, 0, 7])), new CaseRange.ptr(8168, 8169, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8170, 8171, $toNativeArray($kindInt32, [0, -112, 0])), new CaseRange.ptr(8172, 8172, $toNativeArray($kindInt32, [0, -7, 0])), new CaseRange.ptr(8179, 8179, $toNativeArray($kindInt32, [9, 0, 9])), new CaseRange.ptr(8184, 8185, $toNativeArray($kindInt32, [0, -128, 0])), new CaseRange.ptr(8186, 8187, $toNativeArray($kindInt32, [0, -126, 0])), new CaseRange.ptr(8188, 8188, $toNativeArray($kindInt32, [0, -9, 0])), new CaseRange.ptr(8486, 8486, $toNativeArray($kindInt32, [0, -7517, 0])), new CaseRange.ptr(8490, 8490, $toNativeArray($kindInt32, [0, -8383, 0])), new CaseRange.ptr(8491, 8491, $toNativeArray($kindInt32, [0, -8262, 0])), new CaseRange.ptr(8498, 8498, $toNativeArray($kindInt32, [0, 28, 0])), new CaseRange.ptr(8526, 8526, $toNativeArray($kindInt32, [-28, 0, -28])), new CaseRange.ptr(8544, 8559, $toNativeArray($kindInt32, [0, 16, 0])), new CaseRange.ptr(8560, 8575, $toNativeArray($kindInt32, [-16, 0, -16])), new CaseRange.ptr(8579, 8580, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(9398, 9423, $toNativeArray($kindInt32, [0, 26, 0])), new CaseRange.ptr(9424, 9449, $toNativeArray($kindInt32, [-26, 0, -26])), new CaseRange.ptr(11264, 11310, $toNativeArray($kindInt32, [0, 48, 0])), new CaseRange.ptr(11312, 11358, $toNativeArray($kindInt32, [-48, 0, -48])), new CaseRange.ptr(11360, 11361, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11362, 11362, $toNativeArray($kindInt32, [0, -10743, 0])), new CaseRange.ptr(11363, 11363, $toNativeArray($kindInt32, [0, -3814, 0])), new CaseRange.ptr(11364, 11364, $toNativeArray($kindInt32, [0, -10727, 0])), new CaseRange.ptr(11365, 11365, $toNativeArray($kindInt32, [-10795, 0, -10795])), new CaseRange.ptr(11366, 11366, $toNativeArray($kindInt32, [-10792, 0, -10792])), new CaseRange.ptr(11367, 11372, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11373, 11373, $toNativeArray($kindInt32, [0, -10780, 0])), new CaseRange.ptr(11374, 11374, $toNativeArray($kindInt32, [0, -10749, 0])), new CaseRange.ptr(11375, 11375, $toNativeArray($kindInt32, [0, -10783, 0])), new CaseRange.ptr(11376, 11376, $toNativeArray($kindInt32, [0, -10782, 0])), new CaseRange.ptr(11378, 11379, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11381, 11382, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11390, 11391, $toNativeArray($kindInt32, [0, -10815, 0])), new CaseRange.ptr(11392, 11491, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11499, 11502, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11506, 11507, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11520, 11557, $toNativeArray($kindInt32, [-7264, 0, -7264])), new CaseRange.ptr(11559, 11559, $toNativeArray($kindInt32, [-7264, 0, -7264])), new CaseRange.ptr(11565, 11565, $toNativeArray($kindInt32, [-7264, 0, -7264])), new CaseRange.ptr(42560, 42605, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42624, 42651, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42786, 42799, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42802, 42863, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42873, 42876, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42877, 42877, $toNativeArray($kindInt32, [0, -35332, 0])), new CaseRange.ptr(42878, 42887, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42891, 42892, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42893, 42893, $toNativeArray($kindInt32, [0, -42280, 0])), new CaseRange.ptr(42896, 42899, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42902, 42921, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42922, 42922, $toNativeArray($kindInt32, [0, -42308, 0])), new CaseRange.ptr(42923, 42923, $toNativeArray($kindInt32, [0, -42319, 0])), new CaseRange.ptr(42924, 42924, $toNativeArray($kindInt32, [0, -42315, 0])), new CaseRange.ptr(42925, 42925, $toNativeArray($kindInt32, [0, -42305, 0])), new CaseRange.ptr(42926, 42926, $toNativeArray($kindInt32, [0, -42308, 0])), new CaseRange.ptr(42928, 42928, $toNativeArray($kindInt32, [0, -42258, 0])), new CaseRange.ptr(42929, 42929, $toNativeArray($kindInt32, [0, -42282, 0])), new CaseRange.ptr(42930, 42930, $toNativeArray($kindInt32, [0, -42261, 0])), new CaseRange.ptr(42931, 42931, $toNativeArray($kindInt32, [0, 928, 0])), new CaseRange.ptr(42932, 42935, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(43859, 43859, $toNativeArray($kindInt32, [-928, 0, -928])), new CaseRange.ptr(43888, 43967, $toNativeArray($kindInt32, [-38864, 0, -38864])), new CaseRange.ptr(65313, 65338, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(65345, 65370, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(66560, 66599, $toNativeArray($kindInt32, [0, 40, 0])), new CaseRange.ptr(66600, 66639, $toNativeArray($kindInt32, [-40, 0, -40])), new CaseRange.ptr(66736, 66771, $toNativeArray($kindInt32, [0, 40, 0])), new CaseRange.ptr(66776, 66811, $toNativeArray($kindInt32, [-40, 0, -40])), new CaseRange.ptr(68736, 68786, $toNativeArray($kindInt32, [0, 64, 0])), new CaseRange.ptr(68800, 68850, $toNativeArray($kindInt32, [-64, 0, -64])), new CaseRange.ptr(71840, 71871, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(71872, 71903, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(125184, 125217, $toNativeArray($kindInt32, [0, 34, 0])), new CaseRange.ptr(125218, 125251, $toNativeArray($kindInt32, [-34, 0, -34]))]);
  6319. $pkg.CaseRanges = _CaseRanges;
  6320. properties = $toNativeArray($kindUint8, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 144, 130, 130, 130, 136, 130, 130, 130, 130, 130, 130, 136, 130, 130, 130, 130, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 130, 130, 136, 136, 136, 130, 130, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 130, 130, 130, 136, 130, 136, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 130, 136, 130, 136, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 130, 136, 136, 136, 136, 136, 130, 136, 136, 224, 130, 136, 0, 136, 136, 136, 136, 132, 132, 136, 192, 130, 130, 136, 132, 224, 130, 132, 132, 132, 130, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 136, 160, 160, 160, 160, 160, 160, 160, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 136, 192, 192, 192, 192, 192, 192, 192, 192]);
  6321. asciiFold = $toNativeArray($kindUint16, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 91, 92, 93, 94, 95, 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 8490, 76, 77, 78, 79, 80, 81, 82, 383, 84, 85, 86, 87, 88, 89, 90, 123, 124, 125, 126, 127]);
  6322. caseOrbit = new sliceType$4([new foldPair.ptr(75, 107), new foldPair.ptr(83, 115), new foldPair.ptr(107, 8490), new foldPair.ptr(115, 383), new foldPair.ptr(181, 924), new foldPair.ptr(197, 229), new foldPair.ptr(223, 7838), new foldPair.ptr(229, 8491), new foldPair.ptr(304, 304), new foldPair.ptr(305, 305), new foldPair.ptr(383, 83), new foldPair.ptr(452, 453), new foldPair.ptr(453, 454), new foldPair.ptr(454, 452), new foldPair.ptr(455, 456), new foldPair.ptr(456, 457), new foldPair.ptr(457, 455), new foldPair.ptr(458, 459), new foldPair.ptr(459, 460), new foldPair.ptr(460, 458), new foldPair.ptr(497, 498), new foldPair.ptr(498, 499), new foldPair.ptr(499, 497), new foldPair.ptr(837, 921), new foldPair.ptr(914, 946), new foldPair.ptr(917, 949), new foldPair.ptr(920, 952), new foldPair.ptr(921, 953), new foldPair.ptr(922, 954), new foldPair.ptr(924, 956), new foldPair.ptr(928, 960), new foldPair.ptr(929, 961), new foldPair.ptr(931, 962), new foldPair.ptr(934, 966), new foldPair.ptr(937, 969), new foldPair.ptr(946, 976), new foldPair.ptr(949, 1013), new foldPair.ptr(952, 977), new foldPair.ptr(953, 8126), new foldPair.ptr(954, 1008), new foldPair.ptr(956, 181), new foldPair.ptr(960, 982), new foldPair.ptr(961, 1009), new foldPair.ptr(962, 963), new foldPair.ptr(963, 931), new foldPair.ptr(966, 981), new foldPair.ptr(969, 8486), new foldPair.ptr(976, 914), new foldPair.ptr(977, 1012), new foldPair.ptr(981, 934), new foldPair.ptr(982, 928), new foldPair.ptr(1008, 922), new foldPair.ptr(1009, 929), new foldPair.ptr(1012, 920), new foldPair.ptr(1013, 917), new foldPair.ptr(1042, 1074), new foldPair.ptr(1044, 1076), new foldPair.ptr(1054, 1086), new foldPair.ptr(1057, 1089), new foldPair.ptr(1058, 1090), new foldPair.ptr(1066, 1098), new foldPair.ptr(1074, 7296), new foldPair.ptr(1076, 7297), new foldPair.ptr(1086, 7298), new foldPair.ptr(1089, 7299), new foldPair.ptr(1090, 7300), new foldPair.ptr(1098, 7302), new foldPair.ptr(1122, 1123), new foldPair.ptr(1123, 7303), new foldPair.ptr(7296, 1042), new foldPair.ptr(7297, 1044), new foldPair.ptr(7298, 1054), new foldPair.ptr(7299, 1057), new foldPair.ptr(7300, 7301), new foldPair.ptr(7301, 1058), new foldPair.ptr(7302, 1066), new foldPair.ptr(7303, 1122), new foldPair.ptr(7304, 42570), new foldPair.ptr(7776, 7777), new foldPair.ptr(7777, 7835), new foldPair.ptr(7835, 7776), new foldPair.ptr(7838, 223), new foldPair.ptr(8126, 837), new foldPair.ptr(8486, 937), new foldPair.ptr(8490, 75), new foldPair.ptr(8491, 197), new foldPair.ptr(42570, 42571), new foldPair.ptr(42571, 7304)]);
  6323. foldL = new RangeTable.ptr(new sliceType([new Range16.ptr(837, 837, 1)]), sliceType$1.nil, 0);
  6324. foldLl = new RangeTable.ptr(new sliceType([new Range16.ptr(65, 90, 1), new Range16.ptr(192, 214, 1), new Range16.ptr(216, 222, 1), new Range16.ptr(256, 302, 2), new Range16.ptr(306, 310, 2), new Range16.ptr(313, 327, 2), new Range16.ptr(330, 376, 2), new Range16.ptr(377, 381, 2), new Range16.ptr(385, 386, 1), new Range16.ptr(388, 390, 2), new Range16.ptr(391, 393, 2), new Range16.ptr(394, 395, 1), new Range16.ptr(398, 401, 1), new Range16.ptr(403, 404, 1), new Range16.ptr(406, 408, 1), new Range16.ptr(412, 413, 1), new Range16.ptr(415, 416, 1), new Range16.ptr(418, 422, 2), new Range16.ptr(423, 425, 2), new Range16.ptr(428, 430, 2), new Range16.ptr(431, 433, 2), new Range16.ptr(434, 435, 1), new Range16.ptr(437, 439, 2), new Range16.ptr(440, 444, 4), new Range16.ptr(452, 453, 1), new Range16.ptr(455, 456, 1), new Range16.ptr(458, 459, 1), new Range16.ptr(461, 475, 2), new Range16.ptr(478, 494, 2), new Range16.ptr(497, 498, 1), new Range16.ptr(500, 502, 2), new Range16.ptr(503, 504, 1), new Range16.ptr(506, 562, 2), new Range16.ptr(570, 571, 1), new Range16.ptr(573, 574, 1), new Range16.ptr(577, 579, 2), new Range16.ptr(580, 582, 1), new Range16.ptr(584, 590, 2), new Range16.ptr(837, 880, 43), new Range16.ptr(882, 886, 4), new Range16.ptr(895, 902, 7), new Range16.ptr(904, 906, 1), new Range16.ptr(908, 910, 2), new Range16.ptr(911, 913, 2), new Range16.ptr(914, 929, 1), new Range16.ptr(931, 939, 1), new Range16.ptr(975, 984, 9), new Range16.ptr(986, 1006, 2), new Range16.ptr(1012, 1015, 3), new Range16.ptr(1017, 1018, 1), new Range16.ptr(1021, 1071, 1), new Range16.ptr(1120, 1152, 2), new Range16.ptr(1162, 1216, 2), new Range16.ptr(1217, 1229, 2), new Range16.ptr(1232, 1326, 2), new Range16.ptr(1329, 1366, 1), new Range16.ptr(4256, 4293, 1), new Range16.ptr(4295, 4301, 6), new Range16.ptr(5024, 5109, 1), new Range16.ptr(7680, 7828, 2), new Range16.ptr(7838, 7934, 2), new Range16.ptr(7944, 7951, 1), new Range16.ptr(7960, 7965, 1), new Range16.ptr(7976, 7983, 1), new Range16.ptr(7992, 7999, 1), new Range16.ptr(8008, 8013, 1), new Range16.ptr(8025, 8031, 2), new Range16.ptr(8040, 8047, 1), new Range16.ptr(8072, 8079, 1), new Range16.ptr(8088, 8095, 1), new Range16.ptr(8104, 8111, 1), new Range16.ptr(8120, 8124, 1), new Range16.ptr(8136, 8140, 1), new Range16.ptr(8152, 8155, 1), new Range16.ptr(8168, 8172, 1), new Range16.ptr(8184, 8188, 1), new Range16.ptr(8486, 8490, 4), new Range16.ptr(8491, 8498, 7), new Range16.ptr(8579, 11264, 2685), new Range16.ptr(11265, 11310, 1), new Range16.ptr(11360, 11362, 2), new Range16.ptr(11363, 11364, 1), new Range16.ptr(11367, 11373, 2), new Range16.ptr(11374, 11376, 1), new Range16.ptr(11378, 11381, 3), new Range16.ptr(11390, 11392, 1), new Range16.ptr(11394, 11490, 2), new Range16.ptr(11499, 11501, 2), new Range16.ptr(11506, 42560, 31054), new Range16.ptr(42562, 42604, 2), new Range16.ptr(42624, 42650, 2), new Range16.ptr(42786, 42798, 2), new Range16.ptr(42802, 42862, 2), new Range16.ptr(42873, 42877, 2), new Range16.ptr(42878, 42886, 2), new Range16.ptr(42891, 42893, 2), new Range16.ptr(42896, 42898, 2), new Range16.ptr(42902, 42922, 2), new Range16.ptr(42923, 42926, 1), new Range16.ptr(42928, 42932, 1), new Range16.ptr(42934, 65313, 22379), new Range16.ptr(65314, 65338, 1)]), new sliceType$1([new Range32.ptr(66560, 66599, 1), new Range32.ptr(66736, 66771, 1), new Range32.ptr(68736, 68786, 1), new Range32.ptr(71840, 71871, 1), new Range32.ptr(125184, 125217, 1)]), 3);
  6325. foldLt = new RangeTable.ptr(new sliceType([new Range16.ptr(452, 454, 2), new Range16.ptr(455, 457, 2), new Range16.ptr(458, 460, 2), new Range16.ptr(497, 499, 2), new Range16.ptr(8064, 8071, 1), new Range16.ptr(8080, 8087, 1), new Range16.ptr(8096, 8103, 1), new Range16.ptr(8115, 8131, 16), new Range16.ptr(8179, 8179, 1)]), sliceType$1.nil, 0);
  6326. foldLu = new RangeTable.ptr(new sliceType([new Range16.ptr(97, 122, 1), new Range16.ptr(181, 223, 42), new Range16.ptr(224, 246, 1), new Range16.ptr(248, 255, 1), new Range16.ptr(257, 303, 2), new Range16.ptr(307, 311, 2), new Range16.ptr(314, 328, 2), new Range16.ptr(331, 375, 2), new Range16.ptr(378, 382, 2), new Range16.ptr(383, 384, 1), new Range16.ptr(387, 389, 2), new Range16.ptr(392, 396, 4), new Range16.ptr(402, 405, 3), new Range16.ptr(409, 410, 1), new Range16.ptr(414, 417, 3), new Range16.ptr(419, 421, 2), new Range16.ptr(424, 429, 5), new Range16.ptr(432, 436, 4), new Range16.ptr(438, 441, 3), new Range16.ptr(445, 447, 2), new Range16.ptr(453, 454, 1), new Range16.ptr(456, 457, 1), new Range16.ptr(459, 460, 1), new Range16.ptr(462, 476, 2), new Range16.ptr(477, 495, 2), new Range16.ptr(498, 499, 1), new Range16.ptr(501, 505, 4), new Range16.ptr(507, 543, 2), new Range16.ptr(547, 563, 2), new Range16.ptr(572, 575, 3), new Range16.ptr(576, 578, 2), new Range16.ptr(583, 591, 2), new Range16.ptr(592, 596, 1), new Range16.ptr(598, 599, 1), new Range16.ptr(601, 603, 2), new Range16.ptr(604, 608, 4), new Range16.ptr(609, 613, 2), new Range16.ptr(614, 616, 2), new Range16.ptr(617, 620, 1), new Range16.ptr(623, 625, 2), new Range16.ptr(626, 629, 3), new Range16.ptr(637, 643, 3), new Range16.ptr(647, 652, 1), new Range16.ptr(658, 669, 11), new Range16.ptr(670, 837, 167), new Range16.ptr(881, 883, 2), new Range16.ptr(887, 891, 4), new Range16.ptr(892, 893, 1), new Range16.ptr(940, 943, 1), new Range16.ptr(945, 974, 1), new Range16.ptr(976, 977, 1), new Range16.ptr(981, 983, 1), new Range16.ptr(985, 1007, 2), new Range16.ptr(1008, 1011, 1), new Range16.ptr(1013, 1019, 3), new Range16.ptr(1072, 1119, 1), new Range16.ptr(1121, 1153, 2), new Range16.ptr(1163, 1215, 2), new Range16.ptr(1218, 1230, 2), new Range16.ptr(1231, 1327, 2), new Range16.ptr(1377, 1414, 1), new Range16.ptr(5112, 5117, 1), new Range16.ptr(7296, 7304, 1), new Range16.ptr(7545, 7549, 4), new Range16.ptr(7681, 7829, 2), new Range16.ptr(7835, 7841, 6), new Range16.ptr(7843, 7935, 2), new Range16.ptr(7936, 7943, 1), new Range16.ptr(7952, 7957, 1), new Range16.ptr(7968, 7975, 1), new Range16.ptr(7984, 7991, 1), new Range16.ptr(8000, 8005, 1), new Range16.ptr(8017, 8023, 2), new Range16.ptr(8032, 8039, 1), new Range16.ptr(8048, 8061, 1), new Range16.ptr(8112, 8113, 1), new Range16.ptr(8126, 8144, 18), new Range16.ptr(8145, 8160, 15), new Range16.ptr(8161, 8165, 4), new Range16.ptr(8526, 8580, 54), new Range16.ptr(11312, 11358, 1), new Range16.ptr(11361, 11365, 4), new Range16.ptr(11366, 11372, 2), new Range16.ptr(11379, 11382, 3), new Range16.ptr(11393, 11491, 2), new Range16.ptr(11500, 11502, 2), new Range16.ptr(11507, 11520, 13), new Range16.ptr(11521, 11557, 1), new Range16.ptr(11559, 11565, 6), new Range16.ptr(42561, 42605, 2), new Range16.ptr(42625, 42651, 2), new Range16.ptr(42787, 42799, 2), new Range16.ptr(42803, 42863, 2), new Range16.ptr(42874, 42876, 2), new Range16.ptr(42879, 42887, 2), new Range16.ptr(42892, 42897, 5), new Range16.ptr(42899, 42903, 4), new Range16.ptr(42905, 42921, 2), new Range16.ptr(42933, 42935, 2), new Range16.ptr(43859, 43888, 29), new Range16.ptr(43889, 43967, 1), new Range16.ptr(65345, 65370, 1)]), new sliceType$1([new Range32.ptr(66600, 66639, 1), new Range32.ptr(66776, 66811, 1), new Range32.ptr(68800, 68850, 1), new Range32.ptr(71872, 71903, 1), new Range32.ptr(125218, 125251, 1)]), 4);
  6327. foldM = new RangeTable.ptr(new sliceType([new Range16.ptr(921, 953, 32), new Range16.ptr(8126, 8126, 1)]), sliceType$1.nil, 0);
  6328. foldMn = new RangeTable.ptr(new sliceType([new Range16.ptr(921, 953, 32), new Range16.ptr(8126, 8126, 1)]), sliceType$1.nil, 0);
  6329. $pkg.FoldCategory = $makeMap($String.keyFor, [{ k: "L", v: foldL }, { k: "Ll", v: foldLl }, { k: "Lt", v: foldLt }, { k: "Lu", v: foldLu }, { k: "M", v: foldM }, { k: "Mn", v: foldMn }]);
  6330. foldCommon = new RangeTable.ptr(new sliceType([new Range16.ptr(924, 956, 32)]), sliceType$1.nil, 0);
  6331. foldGreek = new RangeTable.ptr(new sliceType([new Range16.ptr(181, 837, 656)]), sliceType$1.nil, 0);
  6332. foldInherited = new RangeTable.ptr(new sliceType([new Range16.ptr(921, 953, 32), new Range16.ptr(8126, 8126, 1)]), sliceType$1.nil, 0);
  6333. $pkg.FoldScript = $makeMap($String.keyFor, [{ k: "Common", v: foldCommon }, { k: "Greek", v: foldGreek }, { k: "Inherited", v: foldInherited }]);
  6334. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  6335. };
  6336. $pkg.$init = $init;
  6337. return $pkg;
  6338. })();
  6339. $packages["reflect"] = (function() {
  6340. var $pkg = {}, $init, errors, js, math, runtime, strconv, sync, unicode, utf8, uncommonType, funcType, name, nameData, mapIter, Type, Kind, tflag, rtype, typeAlg, method, ChanDir, arrayType, chanType, imethod, interfaceType, mapType, ptrType, sliceType, structField, structType, Method, nameOff, typeOff, textOff, StructField, StructTag, fieldScan, Value, flag, ValueError, MapIter, sliceType$1, ptrType$1, sliceType$2, sliceType$3, ptrType$2, funcType$1, sliceType$4, ptrType$3, ptrType$4, sliceType$5, sliceType$6, sliceType$7, ptrType$5, ptrType$6, structType$3, sliceType$8, sliceType$9, ptrType$7, ptrType$8, sliceType$10, sliceType$11, ptrType$9, ptrType$10, sliceType$13, sliceType$14, ptrType$11, sliceType$15, ptrType$17, sliceType$18, funcType$3, funcType$4, funcType$5, ptrType$18, arrayType$8, ptrType$19, ptrType$20, initialized, uncommonTypeMap, nameMap, nameOffList, typeOffList, callHelper, jsObjectPtr, selectHelper, kindNames, uint8Type, init, jsType, reflectType, setKindType, newName, newNameOff, newTypeOff, internalStr, isWrapped, copyStruct, makeValue, MakeSlice, TypeOf, ValueOf, FuncOf, SliceOf, Zero, unsafe_New, makeInt, typedmemmove, keyFor, mapaccess, mapassign, mapdelete, mapiterinit, mapiterkey, mapitervalue, mapiternext, maplen, cvtDirect, methodReceiver, valueInterface, ifaceE2I, methodName, makeMethodValue, wrapJsObject, unwrapJsObject, getJsTag, chanrecv, chansend, PtrTo, implements$1, directlyAssignable, haveIdenticalType, haveIdenticalUnderlyingType, toType, ifaceIndir, copyVal, overflowFloat32, Indirect, New, convertOp, makeFloat, makeComplex, makeString, makeBytes, makeRunes, cvtInt, cvtUint, cvtFloatInt, cvtFloatUint, cvtIntFloat, cvtUintFloat, cvtFloat, cvtComplex, cvtIntString, cvtUintString, cvtBytesString, cvtStringBytes, cvtRunesString, cvtStringRunes, cvtT2I, cvtI2I;
  6341. errors = $packages["errors"];
  6342. js = $packages["github.com/gopherjs/gopherjs/js"];
  6343. math = $packages["math"];
  6344. runtime = $packages["runtime"];
  6345. strconv = $packages["strconv"];
  6346. sync = $packages["sync"];
  6347. unicode = $packages["unicode"];
  6348. utf8 = $packages["unicode/utf8"];
  6349. uncommonType = $pkg.uncommonType = $newType(0, $kindStruct, "reflect.uncommonType", true, "reflect", false, function(pkgPath_, mcount_, xcount_, moff_, _methods_) {
  6350. this.$val = this;
  6351. if (arguments.length === 0) {
  6352. this.pkgPath = 0;
  6353. this.mcount = 0;
  6354. this.xcount = 0;
  6355. this.moff = 0;
  6356. this._methods = sliceType$5.nil;
  6357. return;
  6358. }
  6359. this.pkgPath = pkgPath_;
  6360. this.mcount = mcount_;
  6361. this.xcount = xcount_;
  6362. this.moff = moff_;
  6363. this._methods = _methods_;
  6364. });
  6365. funcType = $pkg.funcType = $newType(0, $kindStruct, "reflect.funcType", true, "reflect", false, function(rtype_, inCount_, outCount_, _in_, _out_) {
  6366. this.$val = this;
  6367. if (arguments.length === 0) {
  6368. this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0);
  6369. this.inCount = 0;
  6370. this.outCount = 0;
  6371. this._in = sliceType$2.nil;
  6372. this._out = sliceType$2.nil;
  6373. return;
  6374. }
  6375. this.rtype = rtype_;
  6376. this.inCount = inCount_;
  6377. this.outCount = outCount_;
  6378. this._in = _in_;
  6379. this._out = _out_;
  6380. });
  6381. name = $pkg.name = $newType(0, $kindStruct, "reflect.name", true, "reflect", false, function(bytes_) {
  6382. this.$val = this;
  6383. if (arguments.length === 0) {
  6384. this.bytes = ptrType$4.nil;
  6385. return;
  6386. }
  6387. this.bytes = bytes_;
  6388. });
  6389. nameData = $pkg.nameData = $newType(0, $kindStruct, "reflect.nameData", true, "reflect", false, function(name_, tag_, exported_) {
  6390. this.$val = this;
  6391. if (arguments.length === 0) {
  6392. this.name = "";
  6393. this.tag = "";
  6394. this.exported = false;
  6395. return;
  6396. }
  6397. this.name = name_;
  6398. this.tag = tag_;
  6399. this.exported = exported_;
  6400. });
  6401. mapIter = $pkg.mapIter = $newType(0, $kindStruct, "reflect.mapIter", true, "reflect", false, function(t_, m_, keys_, i_, last_) {
  6402. this.$val = this;
  6403. if (arguments.length === 0) {
  6404. this.t = $ifaceNil;
  6405. this.m = null;
  6406. this.keys = null;
  6407. this.i = 0;
  6408. this.last = null;
  6409. return;
  6410. }
  6411. this.t = t_;
  6412. this.m = m_;
  6413. this.keys = keys_;
  6414. this.i = i_;
  6415. this.last = last_;
  6416. });
  6417. Type = $pkg.Type = $newType(8, $kindInterface, "reflect.Type", true, "reflect", true, null);
  6418. Kind = $pkg.Kind = $newType(4, $kindUint, "reflect.Kind", true, "reflect", true, null);
  6419. tflag = $pkg.tflag = $newType(1, $kindUint8, "reflect.tflag", true, "reflect", false, null);
  6420. rtype = $pkg.rtype = $newType(0, $kindStruct, "reflect.rtype", true, "reflect", false, function(size_, ptrdata_, hash_, tflag_, align_, fieldAlign_, kind_, alg_, gcdata_, str_, ptrToThis_) {
  6421. this.$val = this;
  6422. if (arguments.length === 0) {
  6423. this.size = 0;
  6424. this.ptrdata = 0;
  6425. this.hash = 0;
  6426. this.tflag = 0;
  6427. this.align = 0;
  6428. this.fieldAlign = 0;
  6429. this.kind = 0;
  6430. this.alg = ptrType$3.nil;
  6431. this.gcdata = ptrType$4.nil;
  6432. this.str = 0;
  6433. this.ptrToThis = 0;
  6434. return;
  6435. }
  6436. this.size = size_;
  6437. this.ptrdata = ptrdata_;
  6438. this.hash = hash_;
  6439. this.tflag = tflag_;
  6440. this.align = align_;
  6441. this.fieldAlign = fieldAlign_;
  6442. this.kind = kind_;
  6443. this.alg = alg_;
  6444. this.gcdata = gcdata_;
  6445. this.str = str_;
  6446. this.ptrToThis = ptrToThis_;
  6447. });
  6448. typeAlg = $pkg.typeAlg = $newType(0, $kindStruct, "reflect.typeAlg", true, "reflect", false, function(hash_, equal_) {
  6449. this.$val = this;
  6450. if (arguments.length === 0) {
  6451. this.hash = $throwNilPointerError;
  6452. this.equal = $throwNilPointerError;
  6453. return;
  6454. }
  6455. this.hash = hash_;
  6456. this.equal = equal_;
  6457. });
  6458. method = $pkg.method = $newType(0, $kindStruct, "reflect.method", true, "reflect", false, function(name_, mtyp_, ifn_, tfn_) {
  6459. this.$val = this;
  6460. if (arguments.length === 0) {
  6461. this.name = 0;
  6462. this.mtyp = 0;
  6463. this.ifn = 0;
  6464. this.tfn = 0;
  6465. return;
  6466. }
  6467. this.name = name_;
  6468. this.mtyp = mtyp_;
  6469. this.ifn = ifn_;
  6470. this.tfn = tfn_;
  6471. });
  6472. ChanDir = $pkg.ChanDir = $newType(4, $kindInt, "reflect.ChanDir", true, "reflect", true, null);
  6473. arrayType = $pkg.arrayType = $newType(0, $kindStruct, "reflect.arrayType", true, "reflect", false, function(rtype_, elem_, slice_, len_) {
  6474. this.$val = this;
  6475. if (arguments.length === 0) {
  6476. this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0);
  6477. this.elem = ptrType$1.nil;
  6478. this.slice = ptrType$1.nil;
  6479. this.len = 0;
  6480. return;
  6481. }
  6482. this.rtype = rtype_;
  6483. this.elem = elem_;
  6484. this.slice = slice_;
  6485. this.len = len_;
  6486. });
  6487. chanType = $pkg.chanType = $newType(0, $kindStruct, "reflect.chanType", true, "reflect", false, function(rtype_, elem_, dir_) {
  6488. this.$val = this;
  6489. if (arguments.length === 0) {
  6490. this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0);
  6491. this.elem = ptrType$1.nil;
  6492. this.dir = 0;
  6493. return;
  6494. }
  6495. this.rtype = rtype_;
  6496. this.elem = elem_;
  6497. this.dir = dir_;
  6498. });
  6499. imethod = $pkg.imethod = $newType(0, $kindStruct, "reflect.imethod", true, "reflect", false, function(name_, typ_) {
  6500. this.$val = this;
  6501. if (arguments.length === 0) {
  6502. this.name = 0;
  6503. this.typ = 0;
  6504. return;
  6505. }
  6506. this.name = name_;
  6507. this.typ = typ_;
  6508. });
  6509. interfaceType = $pkg.interfaceType = $newType(0, $kindStruct, "reflect.interfaceType", true, "reflect", false, function(rtype_, pkgPath_, methods_) {
  6510. this.$val = this;
  6511. if (arguments.length === 0) {
  6512. this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0);
  6513. this.pkgPath = new name.ptr(ptrType$4.nil);
  6514. this.methods = sliceType$6.nil;
  6515. return;
  6516. }
  6517. this.rtype = rtype_;
  6518. this.pkgPath = pkgPath_;
  6519. this.methods = methods_;
  6520. });
  6521. mapType = $pkg.mapType = $newType(0, $kindStruct, "reflect.mapType", true, "reflect", false, function(rtype_, key_, elem_, bucket_, keysize_, valuesize_, bucketsize_, flags_) {
  6522. this.$val = this;
  6523. if (arguments.length === 0) {
  6524. this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0);
  6525. this.key = ptrType$1.nil;
  6526. this.elem = ptrType$1.nil;
  6527. this.bucket = ptrType$1.nil;
  6528. this.keysize = 0;
  6529. this.valuesize = 0;
  6530. this.bucketsize = 0;
  6531. this.flags = 0;
  6532. return;
  6533. }
  6534. this.rtype = rtype_;
  6535. this.key = key_;
  6536. this.elem = elem_;
  6537. this.bucket = bucket_;
  6538. this.keysize = keysize_;
  6539. this.valuesize = valuesize_;
  6540. this.bucketsize = bucketsize_;
  6541. this.flags = flags_;
  6542. });
  6543. ptrType = $pkg.ptrType = $newType(0, $kindStruct, "reflect.ptrType", true, "reflect", false, function(rtype_, elem_) {
  6544. this.$val = this;
  6545. if (arguments.length === 0) {
  6546. this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0);
  6547. this.elem = ptrType$1.nil;
  6548. return;
  6549. }
  6550. this.rtype = rtype_;
  6551. this.elem = elem_;
  6552. });
  6553. sliceType = $pkg.sliceType = $newType(0, $kindStruct, "reflect.sliceType", true, "reflect", false, function(rtype_, elem_) {
  6554. this.$val = this;
  6555. if (arguments.length === 0) {
  6556. this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0);
  6557. this.elem = ptrType$1.nil;
  6558. return;
  6559. }
  6560. this.rtype = rtype_;
  6561. this.elem = elem_;
  6562. });
  6563. structField = $pkg.structField = $newType(0, $kindStruct, "reflect.structField", true, "reflect", false, function(name_, typ_, offsetEmbed_) {
  6564. this.$val = this;
  6565. if (arguments.length === 0) {
  6566. this.name = new name.ptr(ptrType$4.nil);
  6567. this.typ = ptrType$1.nil;
  6568. this.offsetEmbed = 0;
  6569. return;
  6570. }
  6571. this.name = name_;
  6572. this.typ = typ_;
  6573. this.offsetEmbed = offsetEmbed_;
  6574. });
  6575. structType = $pkg.structType = $newType(0, $kindStruct, "reflect.structType", true, "reflect", false, function(rtype_, pkgPath_, fields_) {
  6576. this.$val = this;
  6577. if (arguments.length === 0) {
  6578. this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0);
  6579. this.pkgPath = new name.ptr(ptrType$4.nil);
  6580. this.fields = sliceType$7.nil;
  6581. return;
  6582. }
  6583. this.rtype = rtype_;
  6584. this.pkgPath = pkgPath_;
  6585. this.fields = fields_;
  6586. });
  6587. Method = $pkg.Method = $newType(0, $kindStruct, "reflect.Method", true, "reflect", true, function(Name_, PkgPath_, Type_, Func_, Index_) {
  6588. this.$val = this;
  6589. if (arguments.length === 0) {
  6590. this.Name = "";
  6591. this.PkgPath = "";
  6592. this.Type = $ifaceNil;
  6593. this.Func = new Value.ptr(ptrType$1.nil, 0, 0);
  6594. this.Index = 0;
  6595. return;
  6596. }
  6597. this.Name = Name_;
  6598. this.PkgPath = PkgPath_;
  6599. this.Type = Type_;
  6600. this.Func = Func_;
  6601. this.Index = Index_;
  6602. });
  6603. nameOff = $pkg.nameOff = $newType(4, $kindInt32, "reflect.nameOff", true, "reflect", false, null);
  6604. typeOff = $pkg.typeOff = $newType(4, $kindInt32, "reflect.typeOff", true, "reflect", false, null);
  6605. textOff = $pkg.textOff = $newType(4, $kindInt32, "reflect.textOff", true, "reflect", false, null);
  6606. StructField = $pkg.StructField = $newType(0, $kindStruct, "reflect.StructField", true, "reflect", true, function(Name_, PkgPath_, Type_, Tag_, Offset_, Index_, Anonymous_) {
  6607. this.$val = this;
  6608. if (arguments.length === 0) {
  6609. this.Name = "";
  6610. this.PkgPath = "";
  6611. this.Type = $ifaceNil;
  6612. this.Tag = "";
  6613. this.Offset = 0;
  6614. this.Index = sliceType$13.nil;
  6615. this.Anonymous = false;
  6616. return;
  6617. }
  6618. this.Name = Name_;
  6619. this.PkgPath = PkgPath_;
  6620. this.Type = Type_;
  6621. this.Tag = Tag_;
  6622. this.Offset = Offset_;
  6623. this.Index = Index_;
  6624. this.Anonymous = Anonymous_;
  6625. });
  6626. StructTag = $pkg.StructTag = $newType(8, $kindString, "reflect.StructTag", true, "reflect", true, null);
  6627. fieldScan = $pkg.fieldScan = $newType(0, $kindStruct, "reflect.fieldScan", true, "reflect", false, function(typ_, index_) {
  6628. this.$val = this;
  6629. if (arguments.length === 0) {
  6630. this.typ = ptrType$11.nil;
  6631. this.index = sliceType$13.nil;
  6632. return;
  6633. }
  6634. this.typ = typ_;
  6635. this.index = index_;
  6636. });
  6637. Value = $pkg.Value = $newType(0, $kindStruct, "reflect.Value", true, "reflect", true, function(typ_, ptr_, flag_) {
  6638. this.$val = this;
  6639. if (arguments.length === 0) {
  6640. this.typ = ptrType$1.nil;
  6641. this.ptr = 0;
  6642. this.flag = 0;
  6643. return;
  6644. }
  6645. this.typ = typ_;
  6646. this.ptr = ptr_;
  6647. this.flag = flag_;
  6648. });
  6649. flag = $pkg.flag = $newType(4, $kindUintptr, "reflect.flag", true, "reflect", false, null);
  6650. ValueError = $pkg.ValueError = $newType(0, $kindStruct, "reflect.ValueError", true, "reflect", true, function(Method_, Kind_) {
  6651. this.$val = this;
  6652. if (arguments.length === 0) {
  6653. this.Method = "";
  6654. this.Kind = 0;
  6655. return;
  6656. }
  6657. this.Method = Method_;
  6658. this.Kind = Kind_;
  6659. });
  6660. MapIter = $pkg.MapIter = $newType(0, $kindStruct, "reflect.MapIter", true, "reflect", true, function(m_, it_) {
  6661. this.$val = this;
  6662. if (arguments.length === 0) {
  6663. this.m = new Value.ptr(ptrType$1.nil, 0, 0);
  6664. this.it = 0;
  6665. return;
  6666. }
  6667. this.m = m_;
  6668. this.it = it_;
  6669. });
  6670. sliceType$1 = $sliceType(name);
  6671. ptrType$1 = $ptrType(rtype);
  6672. sliceType$2 = $sliceType(ptrType$1);
  6673. sliceType$3 = $sliceType($emptyInterface);
  6674. ptrType$2 = $ptrType(js.Object);
  6675. funcType$1 = $funcType([sliceType$3], [ptrType$2], true);
  6676. sliceType$4 = $sliceType($String);
  6677. ptrType$3 = $ptrType(typeAlg);
  6678. ptrType$4 = $ptrType($Uint8);
  6679. sliceType$5 = $sliceType(method);
  6680. sliceType$6 = $sliceType(imethod);
  6681. sliceType$7 = $sliceType(structField);
  6682. ptrType$5 = $ptrType(uncommonType);
  6683. ptrType$6 = $ptrType(nameData);
  6684. structType$3 = $structType("reflect", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]);
  6685. sliceType$8 = $sliceType(ptrType$2);
  6686. sliceType$9 = $sliceType(Value);
  6687. ptrType$7 = $ptrType(mapIter);
  6688. ptrType$8 = $ptrType(funcType);
  6689. sliceType$10 = $sliceType(Type);
  6690. sliceType$11 = $sliceType(sliceType$8);
  6691. ptrType$9 = $ptrType(interfaceType);
  6692. ptrType$10 = $ptrType(imethod);
  6693. sliceType$13 = $sliceType($Int);
  6694. sliceType$14 = $sliceType(fieldScan);
  6695. ptrType$11 = $ptrType(structType);
  6696. sliceType$15 = $sliceType($Uint8);
  6697. ptrType$17 = $ptrType($UnsafePointer);
  6698. sliceType$18 = $sliceType($Int32);
  6699. funcType$3 = $funcType([$String], [$Bool], false);
  6700. funcType$4 = $funcType([$UnsafePointer, $Uintptr], [$Uintptr], false);
  6701. funcType$5 = $funcType([$UnsafePointer, $UnsafePointer], [$Bool], false);
  6702. ptrType$18 = $ptrType(structField);
  6703. arrayType$8 = $arrayType($Uintptr, 2);
  6704. ptrType$19 = $ptrType(MapIter);
  6705. ptrType$20 = $ptrType(ValueError);
  6706. init = function() {
  6707. var used, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r;
  6708. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; used = $f.used; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  6709. used = (function(i) {
  6710. var i;
  6711. });
  6712. $r = used((x = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  6713. $r = used((x$1 = new uncommonType.ptr(0, 0, 0, 0, sliceType$5.nil), new x$1.constructor.elem(x$1))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  6714. $r = used((x$2 = new method.ptr(0, 0, 0, 0), new x$2.constructor.elem(x$2))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  6715. $r = used((x$3 = new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil, ptrType$1.nil, 0), new x$3.constructor.elem(x$3))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  6716. $r = used((x$4 = new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil, 0), new x$4.constructor.elem(x$4))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  6717. $r = used((x$5 = new funcType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), 0, 0, sliceType$2.nil, sliceType$2.nil), new x$5.constructor.elem(x$5))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  6718. $r = used((x$6 = new interfaceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), new name.ptr(ptrType$4.nil), sliceType$6.nil), new x$6.constructor.elem(x$6))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  6719. $r = used((x$7 = new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil, ptrType$1.nil, ptrType$1.nil, 0, 0, 0, 0), new x$7.constructor.elem(x$7))); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  6720. $r = used((x$8 = new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil), new x$8.constructor.elem(x$8))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  6721. $r = used((x$9 = new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil), new x$9.constructor.elem(x$9))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  6722. $r = used((x$10 = new structType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), new name.ptr(ptrType$4.nil), sliceType$7.nil), new x$10.constructor.elem(x$10))); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  6723. $r = used((x$11 = new imethod.ptr(0, 0), new x$11.constructor.elem(x$11))); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  6724. $r = used((x$12 = new structField.ptr(new name.ptr(ptrType$4.nil), ptrType$1.nil, 0), new x$12.constructor.elem(x$12))); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  6725. initialized = true;
  6726. uint8Type = $assertType(TypeOf(new $Uint8(0)), ptrType$1);
  6727. $s = -1; return;
  6728. /* */ } return; } if ($f === undefined) { $f = { $blk: init }; } $f.used = used; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.$s = $s; $f.$r = $r; return $f;
  6729. };
  6730. jsType = function(typ) {
  6731. var typ;
  6732. return typ.jsType;
  6733. };
  6734. reflectType = function(typ) {
  6735. var _1, _i, _i$1, _i$2, _i$3, _key, _ref, _ref$1, _ref$2, _ref$3, dir, exported, exported$1, f, fields, i, i$1, i$2, i$3, i$4, i$5, imethods, in$1, m, m$1, m$2, methodSet, methods, offsetEmbed, out, outCount, params, reflectFields, reflectMethods, results, rt, typ, ut, xcount;
  6736. if (typ.reflectType === undefined) {
  6737. rt = new rtype.ptr(((($parseInt(typ.size) >> 0) >>> 0)), 0, 0, 0, 0, 0, ((($parseInt(typ.kind) >> 0) << 24 >>> 24)), ptrType$3.nil, ptrType$4.nil, newNameOff($clone(newName(internalStr(typ.string), "", !!(typ.exported)), name)), 0);
  6738. rt.jsType = typ;
  6739. typ.reflectType = rt;
  6740. methodSet = $methodSet(typ);
  6741. if (!(($parseInt(methodSet.length) === 0)) || !!(typ.named)) {
  6742. rt.tflag = (rt.tflag | (1)) >>> 0;
  6743. if (!!(typ.named)) {
  6744. rt.tflag = (rt.tflag | (4)) >>> 0;
  6745. }
  6746. reflectMethods = sliceType$5.nil;
  6747. i = 0;
  6748. while (true) {
  6749. if (!(i < $parseInt(methodSet.length))) { break; }
  6750. m = methodSet[i];
  6751. exported = internalStr(m.pkg) === "";
  6752. if (!exported) {
  6753. i = i + (1) >> 0;
  6754. continue;
  6755. }
  6756. reflectMethods = $append(reflectMethods, new method.ptr(newNameOff($clone(newName(internalStr(m.name), "", exported), name)), newTypeOff(reflectType(m.typ)), 0, 0));
  6757. i = i + (1) >> 0;
  6758. }
  6759. xcount = ((reflectMethods.$length << 16 >>> 16));
  6760. i$1 = 0;
  6761. while (true) {
  6762. if (!(i$1 < $parseInt(methodSet.length))) { break; }
  6763. m$1 = methodSet[i$1];
  6764. exported$1 = internalStr(m$1.pkg) === "";
  6765. if (exported$1) {
  6766. i$1 = i$1 + (1) >> 0;
  6767. continue;
  6768. }
  6769. reflectMethods = $append(reflectMethods, new method.ptr(newNameOff($clone(newName(internalStr(m$1.name), "", exported$1), name)), newTypeOff(reflectType(m$1.typ)), 0, 0));
  6770. i$1 = i$1 + (1) >> 0;
  6771. }
  6772. ut = new uncommonType.ptr(newNameOff($clone(newName(internalStr(typ.pkg), "", false), name)), (($parseInt(methodSet.length) << 16 >>> 16)), xcount, 0, reflectMethods);
  6773. _key = rt; (uncommonTypeMap || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key)] = { k: _key, v: ut };
  6774. ut.jsType = typ;
  6775. }
  6776. _1 = rt.Kind();
  6777. if (_1 === (17)) {
  6778. setKindType(rt, new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.elem), ptrType$1.nil, ((($parseInt(typ.len) >> 0) >>> 0))));
  6779. } else if (_1 === (18)) {
  6780. dir = 3;
  6781. if (!!(typ.sendOnly)) {
  6782. dir = 2;
  6783. }
  6784. if (!!(typ.recvOnly)) {
  6785. dir = 1;
  6786. }
  6787. setKindType(rt, new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.elem), ((dir >>> 0))));
  6788. } else if (_1 === (19)) {
  6789. params = typ.params;
  6790. in$1 = $makeSlice(sliceType$2, $parseInt(params.length));
  6791. _ref = in$1;
  6792. _i = 0;
  6793. while (true) {
  6794. if (!(_i < _ref.$length)) { break; }
  6795. i$2 = _i;
  6796. ((i$2 < 0 || i$2 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i$2] = reflectType(params[i$2]));
  6797. _i++;
  6798. }
  6799. results = typ.results;
  6800. out = $makeSlice(sliceType$2, $parseInt(results.length));
  6801. _ref$1 = out;
  6802. _i$1 = 0;
  6803. while (true) {
  6804. if (!(_i$1 < _ref$1.$length)) { break; }
  6805. i$3 = _i$1;
  6806. ((i$3 < 0 || i$3 >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i$3] = reflectType(results[i$3]));
  6807. _i$1++;
  6808. }
  6809. outCount = (($parseInt(results.length) << 16 >>> 16));
  6810. if (!!(typ.variadic)) {
  6811. outCount = (outCount | (32768)) >>> 0;
  6812. }
  6813. setKindType(rt, new funcType.ptr($clone(rt, rtype), (($parseInt(params.length) << 16 >>> 16)), outCount, in$1, out));
  6814. } else if (_1 === (20)) {
  6815. methods = typ.methods;
  6816. imethods = $makeSlice(sliceType$6, $parseInt(methods.length));
  6817. _ref$2 = imethods;
  6818. _i$2 = 0;
  6819. while (true) {
  6820. if (!(_i$2 < _ref$2.$length)) { break; }
  6821. i$4 = _i$2;
  6822. m$2 = methods[i$4];
  6823. imethod.copy(((i$4 < 0 || i$4 >= imethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : imethods.$array[imethods.$offset + i$4]), new imethod.ptr(newNameOff($clone(newName(internalStr(m$2.name), "", internalStr(m$2.pkg) === ""), name)), newTypeOff(reflectType(m$2.typ))));
  6824. _i$2++;
  6825. }
  6826. setKindType(rt, new interfaceType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkg), "", false), name), imethods));
  6827. } else if (_1 === (21)) {
  6828. setKindType(rt, new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.key), reflectType(typ.elem), ptrType$1.nil, 0, 0, 0, 0));
  6829. } else if (_1 === (22)) {
  6830. setKindType(rt, new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.elem)));
  6831. } else if (_1 === (23)) {
  6832. setKindType(rt, new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.elem)));
  6833. } else if (_1 === (25)) {
  6834. fields = typ.fields;
  6835. reflectFields = $makeSlice(sliceType$7, $parseInt(fields.length));
  6836. _ref$3 = reflectFields;
  6837. _i$3 = 0;
  6838. while (true) {
  6839. if (!(_i$3 < _ref$3.$length)) { break; }
  6840. i$5 = _i$3;
  6841. f = fields[i$5];
  6842. offsetEmbed = ((i$5 >>> 0)) << 1 >>> 0;
  6843. if (!!(f.embedded)) {
  6844. offsetEmbed = (offsetEmbed | (1)) >>> 0;
  6845. }
  6846. structField.copy(((i$5 < 0 || i$5 >= reflectFields.$length) ? ($throwRuntimeError("index out of range"), undefined) : reflectFields.$array[reflectFields.$offset + i$5]), new structField.ptr($clone(newName(internalStr(f.name), internalStr(f.tag), !!(f.exported)), name), reflectType(f.typ), offsetEmbed));
  6847. _i$3++;
  6848. }
  6849. setKindType(rt, new structType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkgPath), "", false), name), reflectFields));
  6850. }
  6851. }
  6852. return ((typ.reflectType));
  6853. };
  6854. setKindType = function(rt, kindType) {
  6855. var kindType, rt;
  6856. rt.kindType = kindType;
  6857. kindType.rtype = rt;
  6858. };
  6859. uncommonType.ptr.prototype.methods = function() {
  6860. var t;
  6861. t = this;
  6862. return t._methods;
  6863. };
  6864. uncommonType.prototype.methods = function() { return this.$val.methods(); };
  6865. uncommonType.ptr.prototype.exportedMethods = function() {
  6866. var t;
  6867. t = this;
  6868. return $subslice(t._methods, 0, t.xcount, t.xcount);
  6869. };
  6870. uncommonType.prototype.exportedMethods = function() { return this.$val.exportedMethods(); };
  6871. rtype.ptr.prototype.uncommon = function() {
  6872. var _entry, t;
  6873. t = this;
  6874. return (_entry = uncommonTypeMap[ptrType$1.keyFor(t)], _entry !== undefined ? _entry.v : ptrType$5.nil);
  6875. };
  6876. rtype.prototype.uncommon = function() { return this.$val.uncommon(); };
  6877. funcType.ptr.prototype.in$ = function() {
  6878. var t;
  6879. t = this;
  6880. return t._in;
  6881. };
  6882. funcType.prototype.in$ = function() { return this.$val.in$(); };
  6883. funcType.ptr.prototype.out = function() {
  6884. var t;
  6885. t = this;
  6886. return t._out;
  6887. };
  6888. funcType.prototype.out = function() { return this.$val.out(); };
  6889. name.ptr.prototype.name = function() {
  6890. var _entry, n, s;
  6891. s = "";
  6892. n = this;
  6893. s = (_entry = nameMap[ptrType$4.keyFor(n.bytes)], _entry !== undefined ? _entry.v : ptrType$6.nil).name;
  6894. return s;
  6895. };
  6896. name.prototype.name = function() { return this.$val.name(); };
  6897. name.ptr.prototype.tag = function() {
  6898. var _entry, n, s;
  6899. s = "";
  6900. n = this;
  6901. s = (_entry = nameMap[ptrType$4.keyFor(n.bytes)], _entry !== undefined ? _entry.v : ptrType$6.nil).tag;
  6902. return s;
  6903. };
  6904. name.prototype.tag = function() { return this.$val.tag(); };
  6905. name.ptr.prototype.pkgPath = function() {
  6906. var n;
  6907. n = this;
  6908. return "";
  6909. };
  6910. name.prototype.pkgPath = function() { return this.$val.pkgPath(); };
  6911. name.ptr.prototype.isExported = function() {
  6912. var _entry, n;
  6913. n = this;
  6914. return (_entry = nameMap[ptrType$4.keyFor(n.bytes)], _entry !== undefined ? _entry.v : ptrType$6.nil).exported;
  6915. };
  6916. name.prototype.isExported = function() { return this.$val.isExported(); };
  6917. newName = function(n, tag, exported) {
  6918. var _key, b, exported, n, tag;
  6919. b = $newDataPointer(0, ptrType$4);
  6920. _key = b; (nameMap || $throwRuntimeError("assignment to entry in nil map"))[ptrType$4.keyFor(_key)] = { k: _key, v: new nameData.ptr(n, tag, exported) };
  6921. return new name.ptr(b);
  6922. };
  6923. rtype.ptr.prototype.nameOff = function(off) {
  6924. var off, t, x;
  6925. t = this;
  6926. return (x = ((off >> 0)), ((x < 0 || x >= nameOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : nameOffList.$array[nameOffList.$offset + x]));
  6927. };
  6928. rtype.prototype.nameOff = function(off) { return this.$val.nameOff(off); };
  6929. newNameOff = function(n) {
  6930. var i, n;
  6931. i = nameOffList.$length;
  6932. nameOffList = $append(nameOffList, n);
  6933. return ((i >> 0));
  6934. };
  6935. rtype.ptr.prototype.typeOff = function(off) {
  6936. var off, t, x;
  6937. t = this;
  6938. return (x = ((off >> 0)), ((x < 0 || x >= typeOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : typeOffList.$array[typeOffList.$offset + x]));
  6939. };
  6940. rtype.prototype.typeOff = function(off) { return this.$val.typeOff(off); };
  6941. newTypeOff = function(t) {
  6942. var i, t;
  6943. i = typeOffList.$length;
  6944. typeOffList = $append(typeOffList, t);
  6945. return ((i >> 0));
  6946. };
  6947. internalStr = function(strObj) {
  6948. var c, strObj;
  6949. c = new structType$3.ptr("");
  6950. c.str = strObj;
  6951. return c.str;
  6952. };
  6953. isWrapped = function(typ) {
  6954. var typ;
  6955. return !!(jsType(typ).wrapped);
  6956. };
  6957. copyStruct = function(dst, src, typ) {
  6958. var dst, fields, i, prop, src, typ;
  6959. fields = jsType(typ).fields;
  6960. i = 0;
  6961. while (true) {
  6962. if (!(i < $parseInt(fields.length))) { break; }
  6963. prop = $internalize(fields[i].prop, $String);
  6964. dst[$externalize(prop, $String)] = src[$externalize(prop, $String)];
  6965. i = i + (1) >> 0;
  6966. }
  6967. };
  6968. makeValue = function(t, v, fl) {
  6969. var _r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, fl, rt, t, v, $s, $r;
  6970. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _v = $f._v; _v$1 = $f._v$1; fl = $f.fl; rt = $f.rt; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  6971. _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  6972. rt = _r;
  6973. _r$1 = t.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  6974. if (_r$1 === 17) { _v$1 = true; $s = 5; continue s; }
  6975. _r$2 = t.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  6976. _v$1 = _r$2 === 25; case 5:
  6977. if (_v$1) { _v = true; $s = 4; continue s; }
  6978. _r$3 = t.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  6979. _v = _r$3 === 22; case 4:
  6980. /* */ if (_v) { $s = 2; continue; }
  6981. /* */ $s = 3; continue;
  6982. /* if (_v) { */ case 2:
  6983. _r$4 = t.Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  6984. $s = -1; return new Value.ptr(rt, (v), (fl | ((_r$4 >>> 0))) >>> 0);
  6985. /* } */ case 3:
  6986. _r$5 = t.Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  6987. $s = -1; return new Value.ptr(rt, ($newDataPointer(v, jsType(rt.ptrTo()))), (((fl | ((_r$5 >>> 0))) >>> 0) | 128) >>> 0);
  6988. /* */ } return; } if ($f === undefined) { $f = { $blk: makeValue }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._v = _v; $f._v$1 = _v$1; $f.fl = fl; $f.rt = rt; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  6989. };
  6990. MakeSlice = function(typ, len, cap) {
  6991. var _r, _r$1, cap, len, typ, $s, $r;
  6992. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; cap = $f.cap; len = $f.len; typ = $f.typ; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  6993. typ = [typ];
  6994. _r = typ[0].Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  6995. /* */ if (!((_r === 23))) { $s = 1; continue; }
  6996. /* */ $s = 2; continue;
  6997. /* if (!((_r === 23))) { */ case 1:
  6998. $panic(new $String("reflect.MakeSlice of non-slice type"));
  6999. /* } */ case 2:
  7000. if (len < 0) {
  7001. $panic(new $String("reflect.MakeSlice: negative len"));
  7002. }
  7003. if (cap < 0) {
  7004. $panic(new $String("reflect.MakeSlice: negative cap"));
  7005. }
  7006. if (len > cap) {
  7007. $panic(new $String("reflect.MakeSlice: len > cap"));
  7008. }
  7009. _r$1 = makeValue(typ[0], $makeSlice(jsType(typ[0]), len, cap, (function(typ) { return function $b() {
  7010. var _r$1, _r$2, $s, $r;
  7011. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; _r$2 = $f._r$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  7012. _r$1 = typ[0].Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  7013. _r$2 = jsType(_r$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  7014. $s = -1; return _r$2.zero();
  7015. /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$1 = _r$1; $f._r$2 = _r$2; $f.$s = $s; $f.$r = $r; return $f;
  7016. }; })(typ)), 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  7017. $s = -1; return _r$1;
  7018. /* */ } return; } if ($f === undefined) { $f = { $blk: MakeSlice }; } $f._r = _r; $f._r$1 = _r$1; $f.cap = cap; $f.len = len; $f.typ = typ; $f.$s = $s; $f.$r = $r; return $f;
  7019. };
  7020. $pkg.MakeSlice = MakeSlice;
  7021. TypeOf = function(i) {
  7022. var i;
  7023. if (!initialized) {
  7024. return new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0);
  7025. }
  7026. if ($interfaceIsEqual(i, $ifaceNil)) {
  7027. return $ifaceNil;
  7028. }
  7029. return reflectType(i.constructor);
  7030. };
  7031. $pkg.TypeOf = TypeOf;
  7032. ValueOf = function(i) {
  7033. var _r, i, $s, $r;
  7034. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; i = $f.i; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  7035. if ($interfaceIsEqual(i, $ifaceNil)) {
  7036. $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
  7037. }
  7038. _r = makeValue(reflectType(i.constructor), i.$val, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  7039. $s = -1; return _r;
  7040. /* */ } return; } if ($f === undefined) { $f = { $blk: ValueOf }; } $f._r = _r; $f.i = i; $f.$s = $s; $f.$r = $r; return $f;
  7041. };
  7042. $pkg.ValueOf = ValueOf;
  7043. FuncOf = function(in$1, out, variadic) {
  7044. var _i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$1, jsIn, jsOut, out, v, v$1, variadic, x, $s, $r;
  7045. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _ref = $f._ref; _ref$1 = $f._ref$1; _v = $f._v; _v$1 = $f._v$1; i = $f.i; i$1 = $f.i$1; in$1 = $f.in$1; jsIn = $f.jsIn; jsOut = $f.jsOut; out = $f.out; v = $f.v; v$1 = $f.v$1; variadic = $f.variadic; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  7046. if (!(variadic)) { _v = false; $s = 3; continue s; }
  7047. if (in$1.$length === 0) { _v$1 = true; $s = 4; continue s; }
  7048. _r = (x = in$1.$length - 1 >> 0, ((x < 0 || x >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + x])).Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  7049. _v$1 = !((_r === 23)); case 4:
  7050. _v = _v$1; case 3:
  7051. /* */ if (_v) { $s = 1; continue; }
  7052. /* */ $s = 2; continue;
  7053. /* if (_v) { */ case 1:
  7054. $panic(new $String("reflect.FuncOf: last arg of variadic func must be slice"));
  7055. /* } */ case 2:
  7056. jsIn = $makeSlice(sliceType$8, in$1.$length);
  7057. _ref = in$1;
  7058. _i = 0;
  7059. while (true) {
  7060. if (!(_i < _ref.$length)) { break; }
  7061. i = _i;
  7062. v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  7063. ((i < 0 || i >= jsIn.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsIn.$array[jsIn.$offset + i] = jsType(v));
  7064. _i++;
  7065. }
  7066. jsOut = $makeSlice(sliceType$8, out.$length);
  7067. _ref$1 = out;
  7068. _i$1 = 0;
  7069. while (true) {
  7070. if (!(_i$1 < _ref$1.$length)) { break; }
  7071. i$1 = _i$1;
  7072. v$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]);
  7073. ((i$1 < 0 || i$1 >= jsOut.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsOut.$array[jsOut.$offset + i$1] = jsType(v$1));
  7074. _i$1++;
  7075. }
  7076. $s = -1; return reflectType($funcType($externalize(jsIn, sliceType$8), $externalize(jsOut, sliceType$8), $externalize(variadic, $Bool)));
  7077. /* */ } return; } if ($f === undefined) { $f = { $blk: FuncOf }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._ref = _ref; $f._ref$1 = _ref$1; $f._v = _v; $f._v$1 = _v$1; $f.i = i; $f.i$1 = i$1; $f.in$1 = in$1; $f.jsIn = jsIn; $f.jsOut = jsOut; $f.out = out; $f.v = v; $f.v$1 = v$1; $f.variadic = variadic; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  7078. };
  7079. $pkg.FuncOf = FuncOf;
  7080. rtype.ptr.prototype.ptrTo = function() {
  7081. var t;
  7082. t = this;
  7083. return reflectType($ptrType(jsType(t)));
  7084. };
  7085. rtype.prototype.ptrTo = function() { return this.$val.ptrTo(); };
  7086. SliceOf = function(t) {
  7087. var t;
  7088. return reflectType($sliceType(jsType(t)));
  7089. };
  7090. $pkg.SliceOf = SliceOf;
  7091. Zero = function(typ) {
  7092. var _r, typ, $s, $r;
  7093. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; typ = $f.typ; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  7094. _r = makeValue(typ, jsType(typ).zero(), 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  7095. $s = -1; return _r;
  7096. /* */ } return; } if ($f === undefined) { $f = { $blk: Zero }; } $f._r = _r; $f.typ = typ; $f.$s = $s; $f.$r = $r; return $f;
  7097. };
  7098. $pkg.Zero = Zero;
  7099. unsafe_New = function(typ) {
  7100. var _1, typ;
  7101. _1 = typ.Kind();
  7102. if (_1 === (25)) {
  7103. return (new (jsType(typ).ptr)());
  7104. } else if (_1 === (17)) {
  7105. return (jsType(typ).zero());
  7106. } else {
  7107. return ($newDataPointer(jsType(typ).zero(), jsType(typ.ptrTo())));
  7108. }
  7109. };
  7110. makeInt = function(f, bits, t) {
  7111. var _1, _r, bits, f, ptr, t, typ, $s, $r;
  7112. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; bits = $f.bits; f = $f.f; ptr = $f.ptr; t = $f.t; typ = $f.typ; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  7113. _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  7114. typ = _r;
  7115. ptr = unsafe_New(typ);
  7116. _1 = typ.Kind();
  7117. if (_1 === (3)) {
  7118. (ptr).$set(((bits.$low << 24 >> 24)));
  7119. } else if (_1 === (4)) {
  7120. (ptr).$set(((bits.$low << 16 >> 16)));
  7121. } else if ((_1 === (2)) || (_1 === (5))) {
  7122. (ptr).$set(((bits.$low >> 0)));
  7123. } else if (_1 === (6)) {
  7124. (ptr).$set((new $Int64(bits.$high, bits.$low)));
  7125. } else if (_1 === (8)) {
  7126. (ptr).$set(((bits.$low << 24 >>> 24)));
  7127. } else if (_1 === (9)) {
  7128. (ptr).$set(((bits.$low << 16 >>> 16)));
  7129. } else if ((_1 === (7)) || (_1 === (10)) || (_1 === (12))) {
  7130. (ptr).$set(((bits.$low >>> 0)));
  7131. } else if (_1 === (11)) {
  7132. (ptr).$set((bits));
  7133. }
  7134. $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0);
  7135. /* */ } return; } if ($f === undefined) { $f = { $blk: makeInt }; } $f._1 = _1; $f._r = _r; $f.bits = bits; $f.f = f; $f.ptr = ptr; $f.t = t; $f.typ = typ; $f.$s = $s; $f.$r = $r; return $f;
  7136. };
  7137. typedmemmove = function(t, dst, src) {
  7138. var dst, src, t;
  7139. dst.$set(src.$get());
  7140. };
  7141. keyFor = function(t, key) {
  7142. var k, key, kv, t;
  7143. kv = key;
  7144. if (!(kv.$get === undefined)) {
  7145. kv = kv.$get();
  7146. }
  7147. k = $internalize(jsType(t.Key()).keyFor(kv), $String);
  7148. return [kv, k];
  7149. };
  7150. mapaccess = function(t, m, key) {
  7151. var _tuple, entry, k, key, m, t;
  7152. _tuple = keyFor(t, key);
  7153. k = _tuple[1];
  7154. entry = m[$externalize(k, $String)];
  7155. if (entry === undefined) {
  7156. return 0;
  7157. }
  7158. return ($newDataPointer(entry.v, jsType(PtrTo(t.Elem()))));
  7159. };
  7160. mapassign = function(t, m, key, val) {
  7161. var _r, _tuple, entry, et, jsVal, k, key, kv, m, newVal, t, val, $s, $r;
  7162. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; entry = $f.entry; et = $f.et; jsVal = $f.jsVal; k = $f.k; key = $f.key; kv = $f.kv; m = $f.m; newVal = $f.newVal; t = $f.t; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  7163. _tuple = keyFor(t, key);
  7164. kv = _tuple[0];
  7165. k = _tuple[1];
  7166. jsVal = val.$get();
  7167. et = t.Elem();
  7168. _r = et.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  7169. /* */ if (_r === 25) { $s = 1; continue; }
  7170. /* */ $s = 2; continue;
  7171. /* if (_r === 25) { */ case 1:
  7172. newVal = jsType(et).zero();
  7173. copyStruct(newVal, jsVal, et);
  7174. jsVal = newVal;
  7175. /* } */ case 2:
  7176. entry = new ($global.Object)();
  7177. entry.k = kv;
  7178. entry.v = jsVal;
  7179. m[$externalize(k, $String)] = entry;
  7180. $s = -1; return;
  7181. /* */ } return; } if ($f === undefined) { $f = { $blk: mapassign }; } $f._r = _r; $f._tuple = _tuple; $f.entry = entry; $f.et = et; $f.jsVal = jsVal; $f.k = k; $f.key = key; $f.kv = kv; $f.m = m; $f.newVal = newVal; $f.t = t; $f.val = val; $f.$s = $s; $f.$r = $r; return $f;
  7182. };
  7183. mapdelete = function(t, m, key) {
  7184. var _tuple, k, key, m, t;
  7185. _tuple = keyFor(t, key);
  7186. k = _tuple[1];
  7187. delete m[$externalize(k, $String)];
  7188. };
  7189. mapIter.ptr.prototype.skipUntilValidKey = function() {
  7190. var iter, k;
  7191. iter = this;
  7192. while (true) {
  7193. if (!(iter.i < $parseInt(iter.keys.length))) { break; }
  7194. k = iter.keys[iter.i];
  7195. if (!(iter.m[$externalize($internalize(k, $String), $String)] === undefined)) {
  7196. break;
  7197. }
  7198. iter.i = iter.i + (1) >> 0;
  7199. }
  7200. };
  7201. mapIter.prototype.skipUntilValidKey = function() { return this.$val.skipUntilValidKey(); };
  7202. mapiterinit = function(t, m) {
  7203. var m, t;
  7204. return (new mapIter.ptr(t, m, $keys(m), 0, null));
  7205. };
  7206. mapiterkey = function(it) {
  7207. var _r, _r$1, _r$2, it, iter, k, kv, $s, $r;
  7208. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; it = $f.it; iter = $f.iter; k = $f.k; kv = $f.kv; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  7209. iter = ($pointerOfStructConversion(it, ptrType$7));
  7210. kv = null;
  7211. if (!(iter.last === null)) {
  7212. kv = iter.last;
  7213. } else {
  7214. iter.skipUntilValidKey();
  7215. if (iter.i === $parseInt(iter.keys.length)) {
  7216. $s = -1; return 0;
  7217. }
  7218. k = iter.keys[iter.i];
  7219. kv = iter.m[$externalize($internalize(k, $String), $String)];
  7220. iter.last = kv;
  7221. }
  7222. _r = iter.t.Key(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  7223. _r$1 = PtrTo(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  7224. _r$2 = jsType(_r$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  7225. $s = -1; return ($newDataPointer(kv.k, _r$2));
  7226. /* */ } return; } if ($f === undefined) { $f = { $blk: mapiterkey }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.it = it; $f.iter = iter; $f.k = k; $f.kv = kv; $f.$s = $s; $f.$r = $r; return $f;
  7227. };
  7228. mapitervalue = function(it) {
  7229. var _r, _r$1, _r$2, it, iter, k, kv, $s, $r;
  7230. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; it = $f.it; iter = $f.iter; k = $f.k; kv = $f.kv; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  7231. iter = ($pointerOfStructConversion(it, ptrType$7));
  7232. kv = null;
  7233. if (!(iter.last === null)) {
  7234. kv = iter.last;
  7235. } else {
  7236. iter.skipUntilValidKey();
  7237. if (iter.i === $parseInt(iter.keys.length)) {
  7238. $s = -1; return 0;
  7239. }
  7240. k = iter.keys[iter.i];
  7241. kv = iter.m[$externalize($internalize(k, $String), $String)];
  7242. iter.last = kv;
  7243. }
  7244. _r = iter.t.Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  7245. _r$1 = PtrTo(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  7246. _r$2 = jsType(_r$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  7247. $s = -1; return ($newDataPointer(kv.v, _r$2));
  7248. /* */ } return; } if ($f === undefined) { $f = { $blk: mapitervalue }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.it = it; $f.iter = iter; $f.k = k; $f.kv = kv; $f.$s = $s; $f.$r = $r; return $f;
  7249. };
  7250. mapiternext = function(it) {
  7251. var it, iter;
  7252. iter = ($pointerOfStructConversion(it, ptrType$7));
  7253. iter.last = null;
  7254. iter.i = iter.i + (1) >> 0;
  7255. };
  7256. maplen = function(m) {
  7257. var m;
  7258. return $parseInt($keys(m).length);
  7259. };
  7260. cvtDirect = function(v, typ) {
  7261. var _1, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, k, slice, srcVal, typ, v, val, $s, $r;
  7262. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; k = $f.k; slice = $f.slice; srcVal = $f.srcVal; typ = $f.typ; v = $f.v; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  7263. srcVal = $clone(v, Value).object();
  7264. /* */ if (srcVal === jsType(v.typ).nil) { $s = 1; continue; }
  7265. /* */ $s = 2; continue;
  7266. /* if (srcVal === jsType(v.typ).nil) { */ case 1:
  7267. _r = makeValue(typ, jsType(typ).nil, v.flag); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  7268. $s = -1; return _r;
  7269. /* } */ case 2:
  7270. val = null;
  7271. _r$1 = typ.Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  7272. k = _r$1;
  7273. _1 = k;
  7274. /* */ if (_1 === (23)) { $s = 6; continue; }
  7275. /* */ if (_1 === (22)) { $s = 7; continue; }
  7276. /* */ if (_1 === (25)) { $s = 8; continue; }
  7277. /* */ if ((_1 === (17)) || (_1 === (1)) || (_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (24))) { $s = 9; continue; }
  7278. /* */ $s = 10; continue;
  7279. /* if (_1 === (23)) { */ case 6:
  7280. slice = new (jsType(typ))(srcVal.$array);
  7281. slice.$offset = srcVal.$offset;
  7282. slice.$length = srcVal.$length;
  7283. slice.$capacity = srcVal.$capacity;
  7284. val = $newDataPointer(slice, jsType(PtrTo(typ)));
  7285. $s = 11; continue;
  7286. /* } else if (_1 === (22)) { */ case 7:
  7287. _r$2 = typ.Elem(); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  7288. _r$3 = _r$2.Kind(); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  7289. /* */ if (_r$3 === 25) { $s = 12; continue; }
  7290. /* */ $s = 13; continue;
  7291. /* if (_r$3 === 25) { */ case 12:
  7292. _r$4 = typ.Elem(); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  7293. /* */ if ($interfaceIsEqual(_r$4, v.typ.Elem())) { $s = 16; continue; }
  7294. /* */ $s = 17; continue;
  7295. /* if ($interfaceIsEqual(_r$4, v.typ.Elem())) { */ case 16:
  7296. val = srcVal;
  7297. /* break; */ $s = 4; continue;
  7298. /* } */ case 17:
  7299. val = new (jsType(typ))();
  7300. _arg = val;
  7301. _arg$1 = srcVal;
  7302. _r$5 = typ.Elem(); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  7303. _arg$2 = _r$5;
  7304. $r = copyStruct(_arg, _arg$1, _arg$2); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  7305. /* break; */ $s = 4; continue;
  7306. /* } */ case 13:
  7307. val = new (jsType(typ))(srcVal.$get, srcVal.$set);
  7308. $s = 11; continue;
  7309. /* } else if (_1 === (25)) { */ case 8:
  7310. val = new (jsType(typ).ptr)();
  7311. copyStruct(val, srcVal, typ);
  7312. $s = 11; continue;
  7313. /* } else if ((_1 === (17)) || (_1 === (1)) || (_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (24))) { */ case 9:
  7314. val = v.ptr;
  7315. $s = 11; continue;
  7316. /* } else { */ case 10:
  7317. $panic(new ValueError.ptr("reflect.Convert", k));
  7318. /* } */ case 11:
  7319. case 4:
  7320. _r$6 = typ.common(); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  7321. _r$7 = typ.Kind(); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
  7322. $s = -1; return new Value.ptr(_r$6, (val), (((new flag(v.flag).ro() | ((v.flag & 128) >>> 0)) >>> 0) | ((_r$7 >>> 0))) >>> 0);
  7323. /* */ } return; } if ($f === undefined) { $f = { $blk: cvtDirect }; } $f._1 = _1; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f.k = k; $f.slice = slice; $f.srcVal = srcVal; $f.typ = typ; $f.v = v; $f.val = val; $f.$s = $s; $f.$r = $r; return $f;
  7324. };
  7325. methodReceiver = function(op, v, i) {
  7326. var _$39, fn, i, m, m$1, ms, op, prop, rcvr, t, tt, v, x;
  7327. _$39 = ptrType$1.nil;
  7328. t = ptrType$8.nil;
  7329. fn = 0;
  7330. prop = "";
  7331. if (v.typ.Kind() === 20) {
  7332. tt = (v.typ.kindType);
  7333. if (i < 0 || i >= tt.methods.$length) {
  7334. $panic(new $String("reflect: internal error: invalid method index"));
  7335. }
  7336. m = (x = tt.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]));
  7337. if (!$clone(tt.rtype.nameOff(m.name), name).isExported()) {
  7338. $panic(new $String("reflect: " + op + " of unexported method"));
  7339. }
  7340. t = (tt.rtype.typeOff(m.typ).kindType);
  7341. prop = $clone(tt.rtype.nameOff(m.name), name).name();
  7342. } else {
  7343. ms = v.typ.exportedMethods();
  7344. if (((i >>> 0)) >= ((ms.$length >>> 0))) {
  7345. $panic(new $String("reflect: internal error: invalid method index"));
  7346. }
  7347. m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), method);
  7348. if (!$clone(v.typ.nameOff(m$1.name), name).isExported()) {
  7349. $panic(new $String("reflect: " + op + " of unexported method"));
  7350. }
  7351. t = (v.typ.typeOff(m$1.mtyp).kindType);
  7352. prop = $internalize($methodSet(jsType(v.typ))[i].prop, $String);
  7353. }
  7354. rcvr = $clone(v, Value).object();
  7355. if (isWrapped(v.typ)) {
  7356. rcvr = new (jsType(v.typ))(rcvr);
  7357. }
  7358. fn = (rcvr[$externalize(prop, $String)]);
  7359. return [_$39, t, fn];
  7360. };
  7361. valueInterface = function(v, safe) {
  7362. var _r, safe, v, $s, $r;
  7363. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; safe = $f.safe; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  7364. if (v.flag === 0) {
  7365. $panic(new ValueError.ptr("reflect.Value.Interface", 0));
  7366. }
  7367. if (safe && !((((v.flag & 96) >>> 0) === 0))) {
  7368. $panic(new $String("reflect.Value.Interface: cannot return value obtained from unexported field or method"));
  7369. }
  7370. /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; }
  7371. /* */ $s = 2; continue;
  7372. /* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1:
  7373. _r = makeMethodValue("Interface", $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  7374. v = _r;
  7375. /* } */ case 2:
  7376. if (isWrapped(v.typ)) {
  7377. $s = -1; return ((new (jsType(v.typ))($clone(v, Value).object())));
  7378. }
  7379. $s = -1; return (($clone(v, Value).object()));
  7380. /* */ } return; } if ($f === undefined) { $f = { $blk: valueInterface }; } $f._r = _r; $f.safe = safe; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  7381. };
  7382. ifaceE2I = function(t, src, dst) {
  7383. var dst, src, t;
  7384. dst.$set(src);
  7385. };
  7386. methodName = function() {
  7387. return "?FIXME?";
  7388. };
  7389. makeMethodValue = function(op, v) {
  7390. var _r, _tuple, fn, fv, op, rcvr, v, $s, $r;
  7391. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; fn = $f.fn; fv = $f.fv; op = $f.op; rcvr = $f.rcvr; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  7392. fn = [fn];
  7393. rcvr = [rcvr];
  7394. if (((v.flag & 512) >>> 0) === 0) {
  7395. $panic(new $String("reflect: internal error: invalid use of makePartialFunc"));
  7396. }
  7397. _tuple = methodReceiver(op, $clone(v, Value), ((v.flag >> 0)) >> 10 >> 0);
  7398. fn[0] = _tuple[2];
  7399. rcvr[0] = $clone(v, Value).object();
  7400. if (isWrapped(v.typ)) {
  7401. rcvr[0] = new (jsType(v.typ))(rcvr[0]);
  7402. }
  7403. fv = js.MakeFunc((function(fn, rcvr) { return function(this$1, arguments$1) {
  7404. var arguments$1, this$1;
  7405. return new $jsObjectPtr(fn[0].apply(rcvr[0], $externalize(arguments$1, sliceType$8)));
  7406. }; })(fn, rcvr));
  7407. _r = $clone(v, Value).Type().common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  7408. $s = -1; return new Value.ptr(_r, (fv), (new flag(v.flag).ro() | 19) >>> 0);
  7409. /* */ } return; } if ($f === undefined) { $f = { $blk: makeMethodValue }; } $f._r = _r; $f._tuple = _tuple; $f.fn = fn; $f.fv = fv; $f.op = op; $f.rcvr = rcvr; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  7410. };
  7411. rtype.ptr.prototype.pointers = function() {
  7412. var _1, t;
  7413. t = this;
  7414. _1 = t.Kind();
  7415. if ((_1 === (22)) || (_1 === (21)) || (_1 === (18)) || (_1 === (19)) || (_1 === (25)) || (_1 === (17))) {
  7416. return true;
  7417. } else {
  7418. return false;
  7419. }
  7420. };
  7421. rtype.prototype.pointers = function() { return this.$val.pointers(); };
  7422. rtype.ptr.prototype.Comparable = function() {
  7423. var _1, _r, _r$1, i, t, $s, $r;
  7424. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; i = $f.i; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  7425. t = this;
  7426. _1 = t.Kind();
  7427. /* */ if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { $s = 2; continue; }
  7428. /* */ if (_1 === (17)) { $s = 3; continue; }
  7429. /* */ if (_1 === (25)) { $s = 4; continue; }
  7430. /* */ $s = 5; continue;
  7431. /* if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { */ case 2:
  7432. $s = -1; return false;
  7433. /* } else if (_1 === (17)) { */ case 3:
  7434. _r = t.Elem().Comparable(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  7435. $s = -1; return _r;
  7436. /* } else if (_1 === (25)) { */ case 4:
  7437. i = 0;
  7438. /* while (true) { */ case 7:
  7439. /* if (!(i < t.NumField())) { break; } */ if(!(i < t.NumField())) { $s = 8; continue; }
  7440. _r$1 = t.Field(i).Type.Comparable(); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  7441. /* */ if (!_r$1) { $s = 9; continue; }
  7442. /* */ $s = 10; continue;
  7443. /* if (!_r$1) { */ case 9:
  7444. $s = -1; return false;
  7445. /* } */ case 10:
  7446. i = i + (1) >> 0;
  7447. /* } */ $s = 7; continue; case 8:
  7448. /* } */ case 5:
  7449. case 1:
  7450. $s = -1; return true;
  7451. /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.Comparable }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f.i = i; $f.t = t; $f.$s = $s; $f.$r = $r; return $f;
  7452. };
  7453. rtype.prototype.Comparable = function() { return this.$val.Comparable(); };
  7454. rtype.ptr.prototype.Method = function(i) {
  7455. var _i, _i$1, _r, _ref, _ref$1, arg, fl, fn, ft, i, in$1, m, methods, mt, mtyp, out, p, pname, prop, ret, t, tt, $s, $r;
  7456. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _ref = $f._ref; _ref$1 = $f._ref$1; arg = $f.arg; fl = $f.fl; fn = $f.fn; ft = $f.ft; i = $f.i; in$1 = $f.in$1; m = $f.m; methods = $f.methods; mt = $f.mt; mtyp = $f.mtyp; out = $f.out; p = $f.p; pname = $f.pname; prop = $f.prop; ret = $f.ret; t = $f.t; tt = $f.tt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  7457. prop = [prop];
  7458. m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0);
  7459. t = this;
  7460. if (t.Kind() === 20) {
  7461. tt = (t.kindType);
  7462. Method.copy(m, tt.Method(i));
  7463. $s = -1; return m;
  7464. }
  7465. methods = t.exportedMethods();
  7466. if (i < 0 || i >= methods.$length) {
  7467. $panic(new $String("reflect: Method index out of range"));
  7468. }
  7469. p = $clone(((i < 0 || i >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + i]), method);
  7470. pname = $clone(t.nameOff(p.name), name);
  7471. m.Name = $clone(pname, name).name();
  7472. fl = 19;
  7473. mtyp = t.typeOff(p.mtyp);
  7474. ft = (mtyp.kindType);
  7475. in$1 = $makeSlice(sliceType$10, 0, (1 + ft.in$().$length >> 0));
  7476. in$1 = $append(in$1, t);
  7477. _ref = ft.in$();
  7478. _i = 0;
  7479. while (true) {
  7480. if (!(_i < _ref.$length)) { break; }
  7481. arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  7482. in$1 = $append(in$1, arg);
  7483. _i++;
  7484. }
  7485. out = $makeSlice(sliceType$10, 0, ft.out().$length);
  7486. _ref$1 = ft.out();
  7487. _i$1 = 0;
  7488. while (true) {
  7489. if (!(_i$1 < _ref$1.$length)) { break; }
  7490. ret = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]);
  7491. out = $append(out, ret);
  7492. _i$1++;
  7493. }
  7494. _r = FuncOf(in$1, out, ft.rtype.IsVariadic()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  7495. mt = _r;
  7496. m.Type = mt;
  7497. prop[0] = $internalize($methodSet(t.jsType)[i].prop, $String);
  7498. fn = js.MakeFunc((function(prop) { return function(this$1, arguments$1) {
  7499. var arguments$1, rcvr, this$1;
  7500. rcvr = (0 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 0]);
  7501. return new $jsObjectPtr(rcvr[$externalize(prop[0], $String)].apply(rcvr, $externalize($subslice(arguments$1, 1), sliceType$8)));
  7502. }; })(prop));
  7503. m.Func = new Value.ptr($assertType(mt, ptrType$1), (fn), fl);
  7504. m.Index = i;
  7505. Method.copy(m, m);
  7506. $s = -1; return m;
  7507. /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.Method }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._ref = _ref; $f._ref$1 = _ref$1; $f.arg = arg; $f.fl = fl; $f.fn = fn; $f.ft = ft; $f.i = i; $f.in$1 = in$1; $f.m = m; $f.methods = methods; $f.mt = mt; $f.mtyp = mtyp; $f.out = out; $f.p = p; $f.pname = pname; $f.prop = prop; $f.ret = ret; $f.t = t; $f.tt = tt; $f.$s = $s; $f.$r = $r; return $f;
  7508. };
  7509. rtype.prototype.Method = function(i) { return this.$val.Method(i); };
  7510. Value.ptr.prototype.object = function() {
  7511. var _1, newVal, v, val;
  7512. v = this;
  7513. if ((v.typ.Kind() === 17) || (v.typ.Kind() === 25)) {
  7514. return v.ptr;
  7515. }
  7516. if (!((((v.flag & 128) >>> 0) === 0))) {
  7517. val = v.ptr.$get();
  7518. if (!(val === $ifaceNil) && !(val.constructor === jsType(v.typ))) {
  7519. switch (0) { default:
  7520. _1 = v.typ.Kind();
  7521. if ((_1 === (11)) || (_1 === (6))) {
  7522. val = new (jsType(v.typ))(val.$high, val.$low);
  7523. } else if ((_1 === (15)) || (_1 === (16))) {
  7524. val = new (jsType(v.typ))(val.$real, val.$imag);
  7525. } else if (_1 === (23)) {
  7526. if (val === val.constructor.nil) {
  7527. val = jsType(v.typ).nil;
  7528. break;
  7529. }
  7530. newVal = new (jsType(v.typ))(val.$array);
  7531. newVal.$offset = val.$offset;
  7532. newVal.$length = val.$length;
  7533. newVal.$capacity = val.$capacity;
  7534. val = newVal;
  7535. }
  7536. }
  7537. }
  7538. return val;
  7539. }
  7540. return v.ptr;
  7541. };
  7542. Value.prototype.object = function() { return this.$val.object(); };
  7543. Value.ptr.prototype.assignTo = function(context, dst, target) {
  7544. var _r, _r$1, _r$2, context, dst, fl, target, v, x, $s, $r;
  7545. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; context = $f.context; dst = $f.dst; fl = $f.fl; target = $f.target; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  7546. v = this;
  7547. /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; }
  7548. /* */ $s = 2; continue;
  7549. /* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1:
  7550. _r = makeMethodValue(context, $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  7551. v = _r;
  7552. /* } */ case 2:
  7553. _r$1 = directlyAssignable(dst, v.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  7554. /* */ if (_r$1) { $s = 5; continue; }
  7555. /* */ if (implements$1(dst, v.typ)) { $s = 6; continue; }
  7556. /* */ $s = 7; continue;
  7557. /* if (_r$1) { */ case 5:
  7558. fl = (((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0;
  7559. fl = (fl | (((dst.Kind() >>> 0)))) >>> 0;
  7560. $s = -1; return new Value.ptr(dst, v.ptr, fl);
  7561. /* } else if (implements$1(dst, v.typ)) { */ case 6:
  7562. if (target === 0) {
  7563. target = unsafe_New(dst);
  7564. }
  7565. _r$2 = valueInterface($clone(v, Value), false); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  7566. x = _r$2;
  7567. if (dst.NumMethod() === 0) {
  7568. (target).$set(x);
  7569. } else {
  7570. ifaceE2I(dst, x, target);
  7571. }
  7572. $s = -1; return new Value.ptr(dst, target, 148);
  7573. /* } */ case 7:
  7574. case 4:
  7575. $panic(new $String(context + ": value of type " + v.typ.String() + " is not assignable to type " + dst.String()));
  7576. $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
  7577. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.assignTo }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.context = context; $f.dst = dst; $f.fl = fl; $f.target = target; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  7578. };
  7579. Value.prototype.assignTo = function(context, dst, target) { return this.$val.assignTo(context, dst, target); };
  7580. Value.ptr.prototype.call = function(op, in$1) {
  7581. var _1, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tuple, arg, argsArray, elem, fn, i, i$1, i$2, i$3, in$1, isSlice, m, n, nin, nout, op, origIn, rcvr, results, ret, slice, t, targ, v, x, x$1, x$2, xt, xt$1, $s, $r;
  7582. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; arg = $f.arg; argsArray = $f.argsArray; elem = $f.elem; fn = $f.fn; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; i$3 = $f.i$3; in$1 = $f.in$1; isSlice = $f.isSlice; m = $f.m; n = $f.n; nin = $f.nin; nout = $f.nout; op = $f.op; origIn = $f.origIn; rcvr = $f.rcvr; results = $f.results; ret = $f.ret; slice = $f.slice; t = $f.t; targ = $f.targ; v = $f.v; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; xt = $f.xt; xt$1 = $f.xt$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  7583. v = this;
  7584. t = ptrType$8.nil;
  7585. fn = 0;
  7586. rcvr = null;
  7587. if (!((((v.flag & 512) >>> 0) === 0))) {
  7588. _tuple = methodReceiver(op, $clone(v, Value), ((v.flag >> 0)) >> 10 >> 0);
  7589. t = _tuple[1];
  7590. fn = _tuple[2];
  7591. rcvr = $clone(v, Value).object();
  7592. if (isWrapped(v.typ)) {
  7593. rcvr = new (jsType(v.typ))(rcvr);
  7594. }
  7595. } else {
  7596. t = (v.typ.kindType);
  7597. fn = ($clone(v, Value).object());
  7598. rcvr = undefined;
  7599. }
  7600. if (fn === 0) {
  7601. $panic(new $String("reflect.Value.Call: call of nil function"));
  7602. }
  7603. isSlice = op === "CallSlice";
  7604. n = t.rtype.NumIn();
  7605. if (isSlice) {
  7606. if (!t.rtype.IsVariadic()) {
  7607. $panic(new $String("reflect: CallSlice of non-variadic function"));
  7608. }
  7609. if (in$1.$length < n) {
  7610. $panic(new $String("reflect: CallSlice with too few input arguments"));
  7611. }
  7612. if (in$1.$length > n) {
  7613. $panic(new $String("reflect: CallSlice with too many input arguments"));
  7614. }
  7615. } else {
  7616. if (t.rtype.IsVariadic()) {
  7617. n = n - (1) >> 0;
  7618. }
  7619. if (in$1.$length < n) {
  7620. $panic(new $String("reflect: Call with too few input arguments"));
  7621. }
  7622. if (!t.rtype.IsVariadic() && in$1.$length > n) {
  7623. $panic(new $String("reflect: Call with too many input arguments"));
  7624. }
  7625. }
  7626. _ref = in$1;
  7627. _i = 0;
  7628. while (true) {
  7629. if (!(_i < _ref.$length)) { break; }
  7630. x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  7631. if ($clone(x, Value).Kind() === 0) {
  7632. $panic(new $String("reflect: " + op + " using zero Value argument"));
  7633. }
  7634. _i++;
  7635. }
  7636. i = 0;
  7637. /* while (true) { */ case 1:
  7638. /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 2; continue; }
  7639. _tmp = $clone(((i < 0 || i >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i]), Value).Type();
  7640. _tmp$1 = t.rtype.In(i);
  7641. xt = _tmp;
  7642. targ = _tmp$1;
  7643. _r = xt.AssignableTo(targ); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  7644. /* */ if (!_r) { $s = 3; continue; }
  7645. /* */ $s = 4; continue;
  7646. /* if (!_r) { */ case 3:
  7647. _r$1 = xt.String(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  7648. _r$2 = targ.String(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  7649. $panic(new $String("reflect: " + op + " using " + _r$1 + " as type " + _r$2));
  7650. /* } */ case 4:
  7651. i = i + (1) >> 0;
  7652. /* } */ $s = 1; continue; case 2:
  7653. /* */ if (!isSlice && t.rtype.IsVariadic()) { $s = 8; continue; }
  7654. /* */ $s = 9; continue;
  7655. /* if (!isSlice && t.rtype.IsVariadic()) { */ case 8:
  7656. m = in$1.$length - n >> 0;
  7657. _r$3 = MakeSlice(t.rtype.In(n), m, m); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  7658. slice = _r$3;
  7659. _r$4 = t.rtype.In(n).Elem(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  7660. elem = _r$4;
  7661. i$1 = 0;
  7662. /* while (true) { */ case 12:
  7663. /* if (!(i$1 < m)) { break; } */ if(!(i$1 < m)) { $s = 13; continue; }
  7664. x$2 = (x$1 = n + i$1 >> 0, ((x$1 < 0 || x$1 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + x$1]));
  7665. xt$1 = $clone(x$2, Value).Type();
  7666. _r$5 = xt$1.AssignableTo(elem); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  7667. /* */ if (!_r$5) { $s = 14; continue; }
  7668. /* */ $s = 15; continue;
  7669. /* if (!_r$5) { */ case 14:
  7670. _r$6 = xt$1.String(); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  7671. _r$7 = elem.String(); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
  7672. $panic(new $String("reflect: cannot use " + _r$6 + " as type " + _r$7 + " in " + op));
  7673. /* } */ case 15:
  7674. _r$8 = $clone(slice, Value).Index(i$1); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
  7675. $r = $clone(_r$8, Value).Set($clone(x$2, Value)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  7676. i$1 = i$1 + (1) >> 0;
  7677. /* } */ $s = 12; continue; case 13:
  7678. origIn = in$1;
  7679. in$1 = $makeSlice(sliceType$9, (n + 1 >> 0));
  7680. $copySlice($subslice(in$1, 0, n), origIn);
  7681. ((n < 0 || n >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + n] = slice);
  7682. /* } */ case 9:
  7683. nin = in$1.$length;
  7684. if (!((nin === t.rtype.NumIn()))) {
  7685. $panic(new $String("reflect.Value.Call: wrong argument count"));
  7686. }
  7687. nout = t.rtype.NumOut();
  7688. argsArray = new ($global.Array)(t.rtype.NumIn());
  7689. _ref$1 = in$1;
  7690. _i$1 = 0;
  7691. /* while (true) { */ case 21:
  7692. /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 22; continue; }
  7693. i$2 = _i$1;
  7694. arg = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]);
  7695. _arg = t.rtype.In(i$2);
  7696. _r$9 = t.rtype.In(i$2).common(); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  7697. _arg$1 = _r$9;
  7698. _arg$2 = 0;
  7699. _r$10 = $clone(arg, Value).assignTo("reflect.Value.Call", _arg$1, _arg$2); /* */ $s = 24; case 24: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
  7700. _r$11 = $clone(_r$10, Value).object(); /* */ $s = 25; case 25: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
  7701. _arg$3 = _r$11;
  7702. _r$12 = unwrapJsObject(_arg, _arg$3); /* */ $s = 26; case 26: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
  7703. argsArray[i$2] = _r$12;
  7704. _i$1++;
  7705. /* } */ $s = 21; continue; case 22:
  7706. _r$13 = callHelper(new sliceType$3([new $jsObjectPtr(fn), new $jsObjectPtr(rcvr), new $jsObjectPtr(argsArray)])); /* */ $s = 27; case 27: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
  7707. results = _r$13;
  7708. _1 = nout;
  7709. /* */ if (_1 === (0)) { $s = 29; continue; }
  7710. /* */ if (_1 === (1)) { $s = 30; continue; }
  7711. /* */ $s = 31; continue;
  7712. /* if (_1 === (0)) { */ case 29:
  7713. $s = -1; return sliceType$9.nil;
  7714. /* } else if (_1 === (1)) { */ case 30:
  7715. _r$14 = makeValue(t.rtype.Out(0), wrapJsObject(t.rtype.Out(0), results), 0); /* */ $s = 33; case 33: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
  7716. $s = -1; return new sliceType$9([$clone(_r$14, Value)]);
  7717. /* } else { */ case 31:
  7718. ret = $makeSlice(sliceType$9, nout);
  7719. _ref$2 = ret;
  7720. _i$2 = 0;
  7721. /* while (true) { */ case 34:
  7722. /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 35; continue; }
  7723. i$3 = _i$2;
  7724. _r$15 = makeValue(t.rtype.Out(i$3), wrapJsObject(t.rtype.Out(i$3), results[i$3]), 0); /* */ $s = 36; case 36: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
  7725. ((i$3 < 0 || i$3 >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i$3] = _r$15);
  7726. _i$2++;
  7727. /* } */ $s = 34; continue; case 35:
  7728. $s = -1; return ret;
  7729. /* } */ case 32:
  7730. case 28:
  7731. $s = -1; return sliceType$9.nil;
  7732. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.call }; } $f._1 = _1; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.arg = arg; $f.argsArray = argsArray; $f.elem = elem; $f.fn = fn; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.i$3 = i$3; $f.in$1 = in$1; $f.isSlice = isSlice; $f.m = m; $f.n = n; $f.nin = nin; $f.nout = nout; $f.op = op; $f.origIn = origIn; $f.rcvr = rcvr; $f.results = results; $f.ret = ret; $f.slice = slice; $f.t = t; $f.targ = targ; $f.v = v; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.xt = xt; $f.xt$1 = xt$1; $f.$s = $s; $f.$r = $r; return $f;
  7733. };
  7734. Value.prototype.call = function(op, in$1) { return this.$val.call(op, in$1); };
  7735. Value.ptr.prototype.Cap = function() {
  7736. var _1, k, v;
  7737. v = this;
  7738. k = new flag(v.flag).kind();
  7739. _1 = k;
  7740. if (_1 === (17)) {
  7741. return v.typ.Len();
  7742. } else if ((_1 === (18)) || (_1 === (23))) {
  7743. return $parseInt($clone(v, Value).object().$capacity) >> 0;
  7744. }
  7745. $panic(new ValueError.ptr("reflect.Value.Cap", k));
  7746. };
  7747. Value.prototype.Cap = function() { return this.$val.Cap(); };
  7748. wrapJsObject = function(typ, val) {
  7749. var typ, val;
  7750. if ($interfaceIsEqual(typ, jsObjectPtr)) {
  7751. return new (jsType(jsObjectPtr))(val);
  7752. }
  7753. return val;
  7754. };
  7755. unwrapJsObject = function(typ, val) {
  7756. var typ, val;
  7757. if ($interfaceIsEqual(typ, jsObjectPtr)) {
  7758. return val.object;
  7759. }
  7760. return val;
  7761. };
  7762. Value.ptr.prototype.Elem = function() {
  7763. var _1, _r, fl, k, tt, typ, v, val, val$1, $s, $r;
  7764. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; fl = $f.fl; k = $f.k; tt = $f.tt; typ = $f.typ; v = $f.v; val = $f.val; val$1 = $f.val$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  7765. v = this;
  7766. k = new flag(v.flag).kind();
  7767. _1 = k;
  7768. /* */ if (_1 === (20)) { $s = 2; continue; }
  7769. /* */ if (_1 === (22)) { $s = 3; continue; }
  7770. /* */ $s = 4; continue;
  7771. /* if (_1 === (20)) { */ case 2:
  7772. val = $clone(v, Value).object();
  7773. if (val === $ifaceNil) {
  7774. $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
  7775. }
  7776. typ = reflectType(val.constructor);
  7777. _r = makeValue(typ, val.$val, new flag(v.flag).ro()); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  7778. $s = -1; return _r;
  7779. /* } else if (_1 === (22)) { */ case 3:
  7780. if ($clone(v, Value).IsNil()) {
  7781. $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
  7782. }
  7783. val$1 = $clone(v, Value).object();
  7784. tt = (v.typ.kindType);
  7785. fl = (((((v.flag & 96) >>> 0) | 128) >>> 0) | 256) >>> 0;
  7786. fl = (fl | (((tt.elem.Kind() >>> 0)))) >>> 0;
  7787. $s = -1; return new Value.ptr(tt.elem, (wrapJsObject(tt.elem, val$1)), fl);
  7788. /* } else { */ case 4:
  7789. $panic(new ValueError.ptr("reflect.Value.Elem", k));
  7790. /* } */ case 5:
  7791. case 1:
  7792. $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
  7793. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Elem }; } $f._1 = _1; $f._r = _r; $f.fl = fl; $f.k = k; $f.tt = tt; $f.typ = typ; $f.v = v; $f.val = val; $f.val$1 = val$1; $f.$s = $s; $f.$r = $r; return $f;
  7794. };
  7795. Value.prototype.Elem = function() { return this.$val.Elem(); };
  7796. Value.ptr.prototype.Field = function(i) {
  7797. var _r, _r$1, _r$2, field, fl, i, jsTag, o, prop, s, tag, tt, typ, v, x, x$1, $s, $r;
  7798. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; field = $f.field; fl = $f.fl; i = $f.i; jsTag = $f.jsTag; o = $f.o; prop = $f.prop; s = $f.s; tag = $f.tag; tt = $f.tt; typ = $f.typ; v = $f.v; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  7799. jsTag = [jsTag];
  7800. prop = [prop];
  7801. s = [s];
  7802. typ = [typ];
  7803. v = this;
  7804. if (!((new flag(v.flag).kind() === 25))) {
  7805. $panic(new ValueError.ptr("reflect.Value.Field", new flag(v.flag).kind()));
  7806. }
  7807. tt = (v.typ.kindType);
  7808. if (((i >>> 0)) >= ((tt.fields.$length >>> 0))) {
  7809. $panic(new $String("reflect: Field index out of range"));
  7810. }
  7811. prop[0] = $internalize(jsType(v.typ).fields[i].prop, $String);
  7812. field = (x = tt.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]));
  7813. typ[0] = field.typ;
  7814. fl = (((v.flag & 416) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0;
  7815. if (!$clone(field.name, name).isExported()) {
  7816. if (field.embedded()) {
  7817. fl = (fl | (64)) >>> 0;
  7818. } else {
  7819. fl = (fl | (32)) >>> 0;
  7820. }
  7821. }
  7822. tag = $clone((x$1 = tt.fields, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])).name, name).tag();
  7823. /* */ if (!(tag === "") && !((i === 0))) { $s = 1; continue; }
  7824. /* */ $s = 2; continue;
  7825. /* if (!(tag === "") && !((i === 0))) { */ case 1:
  7826. jsTag[0] = getJsTag(tag);
  7827. /* */ if (!(jsTag[0] === "")) { $s = 3; continue; }
  7828. /* */ $s = 4; continue;
  7829. /* if (!(jsTag[0] === "")) { */ case 3:
  7830. /* while (true) { */ case 5:
  7831. o = [o];
  7832. _r = $clone(v, Value).Field(0); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  7833. v = _r;
  7834. /* */ if (v.typ === jsObjectPtr) { $s = 8; continue; }
  7835. /* */ $s = 9; continue;
  7836. /* if (v.typ === jsObjectPtr) { */ case 8:
  7837. o[0] = $clone(v, Value).object().object;
  7838. $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, o, prop, s, typ) { return function() {
  7839. return $internalize(o[0][$externalize(jsTag[0], $String)], jsType(typ[0]));
  7840. }; })(jsTag, o, prop, s, typ), (function(jsTag, o, prop, s, typ) { return function(x$2) {
  7841. var x$2;
  7842. o[0][$externalize(jsTag[0], $String)] = $externalize(x$2, jsType(typ[0]));
  7843. }; })(jsTag, o, prop, s, typ))), fl);
  7844. /* } */ case 9:
  7845. /* */ if (v.typ.Kind() === 22) { $s = 10; continue; }
  7846. /* */ $s = 11; continue;
  7847. /* if (v.typ.Kind() === 22) { */ case 10:
  7848. _r$1 = $clone(v, Value).Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  7849. v = _r$1;
  7850. /* } */ case 11:
  7851. /* } */ $s = 5; continue; case 6:
  7852. /* } */ case 4:
  7853. /* } */ case 2:
  7854. s[0] = v.ptr;
  7855. /* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 13; continue; }
  7856. /* */ $s = 14; continue;
  7857. /* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 13:
  7858. $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, prop, s, typ) { return function() {
  7859. return wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]);
  7860. }; })(jsTag, prop, s, typ), (function(jsTag, prop, s, typ) { return function(x$2) {
  7861. var x$2;
  7862. s[0][$externalize(prop[0], $String)] = unwrapJsObject(typ[0], x$2);
  7863. }; })(jsTag, prop, s, typ))), fl);
  7864. /* } */ case 14:
  7865. _r$2 = makeValue(typ[0], wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]), fl); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  7866. $s = -1; return _r$2;
  7867. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Field }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.field = field; $f.fl = fl; $f.i = i; $f.jsTag = jsTag; $f.o = o; $f.prop = prop; $f.s = s; $f.tag = tag; $f.tt = tt; $f.typ = typ; $f.v = v; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f;
  7868. };
  7869. Value.prototype.Field = function(i) { return this.$val.Field(i); };
  7870. getJsTag = function(tag) {
  7871. var _tuple, i, name$1, qvalue, tag, value;
  7872. while (true) {
  7873. if (!(!(tag === ""))) { break; }
  7874. i = 0;
  7875. while (true) {
  7876. if (!(i < tag.length && (tag.charCodeAt(i) === 32))) { break; }
  7877. i = i + (1) >> 0;
  7878. }
  7879. tag = $substring(tag, i);
  7880. if (tag === "") {
  7881. break;
  7882. }
  7883. i = 0;
  7884. while (true) {
  7885. if (!(i < tag.length && !((tag.charCodeAt(i) === 32)) && !((tag.charCodeAt(i) === 58)) && !((tag.charCodeAt(i) === 34)))) { break; }
  7886. i = i + (1) >> 0;
  7887. }
  7888. if ((i + 1 >> 0) >= tag.length || !((tag.charCodeAt(i) === 58)) || !((tag.charCodeAt((i + 1 >> 0)) === 34))) {
  7889. break;
  7890. }
  7891. name$1 = ($substring(tag, 0, i));
  7892. tag = $substring(tag, (i + 1 >> 0));
  7893. i = 1;
  7894. while (true) {
  7895. if (!(i < tag.length && !((tag.charCodeAt(i) === 34)))) { break; }
  7896. if (tag.charCodeAt(i) === 92) {
  7897. i = i + (1) >> 0;
  7898. }
  7899. i = i + (1) >> 0;
  7900. }
  7901. if (i >= tag.length) {
  7902. break;
  7903. }
  7904. qvalue = ($substring(tag, 0, (i + 1 >> 0)));
  7905. tag = $substring(tag, (i + 1 >> 0));
  7906. if (name$1 === "js") {
  7907. _tuple = strconv.Unquote(qvalue);
  7908. value = _tuple[0];
  7909. return value;
  7910. }
  7911. }
  7912. return "";
  7913. };
  7914. Value.ptr.prototype.Index = function(i) {
  7915. var _1, _r, _r$1, a, a$1, c, fl, fl$1, fl$2, i, k, s, str, tt, tt$1, typ, typ$1, v, $s, $r;
  7916. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; a = $f.a; a$1 = $f.a$1; c = $f.c; fl = $f.fl; fl$1 = $f.fl$1; fl$2 = $f.fl$2; i = $f.i; k = $f.k; s = $f.s; str = $f.str; tt = $f.tt; tt$1 = $f.tt$1; typ = $f.typ; typ$1 = $f.typ$1; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  7917. a = [a];
  7918. a$1 = [a$1];
  7919. c = [c];
  7920. i = [i];
  7921. typ = [typ];
  7922. typ$1 = [typ$1];
  7923. v = this;
  7924. k = new flag(v.flag).kind();
  7925. _1 = k;
  7926. /* */ if (_1 === (17)) { $s = 2; continue; }
  7927. /* */ if (_1 === (23)) { $s = 3; continue; }
  7928. /* */ if (_1 === (24)) { $s = 4; continue; }
  7929. /* */ $s = 5; continue;
  7930. /* if (_1 === (17)) { */ case 2:
  7931. tt = (v.typ.kindType);
  7932. if (i[0] < 0 || i[0] > ((tt.len >> 0))) {
  7933. $panic(new $String("reflect: array index out of range"));
  7934. }
  7935. typ[0] = tt.elem;
  7936. fl = (((((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0;
  7937. a[0] = v.ptr;
  7938. /* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 7; continue; }
  7939. /* */ $s = 8; continue;
  7940. /* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 7:
  7941. $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(a, a$1, c, i, typ, typ$1) { return function() {
  7942. return wrapJsObject(typ[0], a[0][i[0]]);
  7943. }; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function(x) {
  7944. var x;
  7945. a[0][i[0]] = unwrapJsObject(typ[0], x);
  7946. }; })(a, a$1, c, i, typ, typ$1))), fl);
  7947. /* } */ case 8:
  7948. _r = makeValue(typ[0], wrapJsObject(typ[0], a[0][i[0]]), fl); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  7949. $s = -1; return _r;
  7950. /* } else if (_1 === (23)) { */ case 3:
  7951. s = $clone(v, Value).object();
  7952. if (i[0] < 0 || i[0] >= ($parseInt(s.$length) >> 0)) {
  7953. $panic(new $String("reflect: slice index out of range"));
  7954. }
  7955. tt$1 = (v.typ.kindType);
  7956. typ$1[0] = tt$1.elem;
  7957. fl$1 = (((384 | new flag(v.flag).ro()) >>> 0) | ((typ$1[0].Kind() >>> 0))) >>> 0;
  7958. i[0] = i[0] + (($parseInt(s.$offset) >> 0)) >> 0;
  7959. a$1[0] = s.$array;
  7960. /* */ if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { $s = 10; continue; }
  7961. /* */ $s = 11; continue;
  7962. /* if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { */ case 10:
  7963. $s = -1; return new Value.ptr(typ$1[0], (new (jsType(PtrTo(typ$1[0])))((function(a, a$1, c, i, typ, typ$1) { return function() {
  7964. return wrapJsObject(typ$1[0], a$1[0][i[0]]);
  7965. }; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function(x) {
  7966. var x;
  7967. a$1[0][i[0]] = unwrapJsObject(typ$1[0], x);
  7968. }; })(a, a$1, c, i, typ, typ$1))), fl$1);
  7969. /* } */ case 11:
  7970. _r$1 = makeValue(typ$1[0], wrapJsObject(typ$1[0], a$1[0][i[0]]), fl$1); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  7971. $s = -1; return _r$1;
  7972. /* } else if (_1 === (24)) { */ case 4:
  7973. str = (v.ptr).$get();
  7974. if (i[0] < 0 || i[0] >= str.length) {
  7975. $panic(new $String("reflect: string index out of range"));
  7976. }
  7977. fl$2 = (((new flag(v.flag).ro() | 8) >>> 0) | 128) >>> 0;
  7978. c[0] = str.charCodeAt(i[0]);
  7979. $s = -1; return new Value.ptr(uint8Type, ((c.$ptr || (c.$ptr = new ptrType$4(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, c)))), fl$2);
  7980. /* } else { */ case 5:
  7981. $panic(new ValueError.ptr("reflect.Value.Index", k));
  7982. /* } */ case 6:
  7983. case 1:
  7984. $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
  7985. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Index }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f.a = a; $f.a$1 = a$1; $f.c = c; $f.fl = fl; $f.fl$1 = fl$1; $f.fl$2 = fl$2; $f.i = i; $f.k = k; $f.s = s; $f.str = str; $f.tt = tt; $f.tt$1 = tt$1; $f.typ = typ; $f.typ$1 = typ$1; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  7986. };
  7987. Value.prototype.Index = function(i) { return this.$val.Index(i); };
  7988. Value.ptr.prototype.InterfaceData = function() {
  7989. var v;
  7990. v = this;
  7991. $panic(errors.New("InterfaceData is not supported by GopherJS"));
  7992. };
  7993. Value.prototype.InterfaceData = function() { return this.$val.InterfaceData(); };
  7994. Value.ptr.prototype.IsNil = function() {
  7995. var _1, k, v;
  7996. v = this;
  7997. k = new flag(v.flag).kind();
  7998. _1 = k;
  7999. if ((_1 === (22)) || (_1 === (23))) {
  8000. return $clone(v, Value).object() === jsType(v.typ).nil;
  8001. } else if (_1 === (18)) {
  8002. return $clone(v, Value).object() === $chanNil;
  8003. } else if (_1 === (19)) {
  8004. return $clone(v, Value).object() === $throwNilPointerError;
  8005. } else if (_1 === (21)) {
  8006. return $clone(v, Value).object() === false;
  8007. } else if (_1 === (20)) {
  8008. return $clone(v, Value).object() === $ifaceNil;
  8009. } else if (_1 === (26)) {
  8010. return $clone(v, Value).object() === 0;
  8011. } else {
  8012. $panic(new ValueError.ptr("reflect.Value.IsNil", k));
  8013. }
  8014. };
  8015. Value.prototype.IsNil = function() { return this.$val.IsNil(); };
  8016. Value.ptr.prototype.Len = function() {
  8017. var _1, k, v;
  8018. v = this;
  8019. k = new flag(v.flag).kind();
  8020. _1 = k;
  8021. if ((_1 === (17)) || (_1 === (24))) {
  8022. return $parseInt($clone(v, Value).object().length);
  8023. } else if (_1 === (23)) {
  8024. return $parseInt($clone(v, Value).object().$length) >> 0;
  8025. } else if (_1 === (18)) {
  8026. return $parseInt($clone(v, Value).object().$buffer.length) >> 0;
  8027. } else if (_1 === (21)) {
  8028. return $parseInt($keys($clone(v, Value).object()).length);
  8029. } else {
  8030. $panic(new ValueError.ptr("reflect.Value.Len", k));
  8031. }
  8032. };
  8033. Value.prototype.Len = function() { return this.$val.Len(); };
  8034. Value.ptr.prototype.Pointer = function() {
  8035. var _1, k, v;
  8036. v = this;
  8037. k = new flag(v.flag).kind();
  8038. _1 = k;
  8039. if ((_1 === (18)) || (_1 === (21)) || (_1 === (22)) || (_1 === (26))) {
  8040. if ($clone(v, Value).IsNil()) {
  8041. return 0;
  8042. }
  8043. return $clone(v, Value).object();
  8044. } else if (_1 === (19)) {
  8045. if ($clone(v, Value).IsNil()) {
  8046. return 0;
  8047. }
  8048. return 1;
  8049. } else if (_1 === (23)) {
  8050. if ($clone(v, Value).IsNil()) {
  8051. return 0;
  8052. }
  8053. return $clone(v, Value).object().$array;
  8054. } else {
  8055. $panic(new ValueError.ptr("reflect.Value.Pointer", k));
  8056. }
  8057. };
  8058. Value.prototype.Pointer = function() { return this.$val.Pointer(); };
  8059. Value.ptr.prototype.Set = function(x) {
  8060. var _1, _r, _r$1, v, x, $s, $r;
  8061. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  8062. v = this;
  8063. new flag(v.flag).mustBeAssignable();
  8064. new flag(x.flag).mustBeExported();
  8065. _r = $clone(x, Value).assignTo("reflect.Set", v.typ, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  8066. x = _r;
  8067. /* */ if (!((((v.flag & 128) >>> 0) === 0))) { $s = 2; continue; }
  8068. /* */ $s = 3; continue;
  8069. /* if (!((((v.flag & 128) >>> 0) === 0))) { */ case 2:
  8070. _1 = v.typ.Kind();
  8071. /* */ if (_1 === (17)) { $s = 5; continue; }
  8072. /* */ if (_1 === (20)) { $s = 6; continue; }
  8073. /* */ if (_1 === (25)) { $s = 7; continue; }
  8074. /* */ $s = 8; continue;
  8075. /* if (_1 === (17)) { */ case 5:
  8076. jsType(v.typ).copy(v.ptr, x.ptr);
  8077. $s = 9; continue;
  8078. /* } else if (_1 === (20)) { */ case 6:
  8079. _r$1 = valueInterface($clone(x, Value), false); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  8080. v.ptr.$set(_r$1);
  8081. $s = 9; continue;
  8082. /* } else if (_1 === (25)) { */ case 7:
  8083. copyStruct(v.ptr, x.ptr, v.typ);
  8084. $s = 9; continue;
  8085. /* } else { */ case 8:
  8086. v.ptr.$set($clone(x, Value).object());
  8087. /* } */ case 9:
  8088. case 4:
  8089. $s = -1; return;
  8090. /* } */ case 3:
  8091. v.ptr = x.ptr;
  8092. $s = -1; return;
  8093. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Set }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  8094. };
  8095. Value.prototype.Set = function(x) { return this.$val.Set(x); };
  8096. Value.ptr.prototype.SetBytes = function(x) {
  8097. var _r, _r$1, _v, slice, typedSlice, v, x, $s, $r;
  8098. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _v = $f._v; slice = $f.slice; typedSlice = $f.typedSlice; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  8099. v = this;
  8100. new flag(v.flag).mustBeAssignable();
  8101. new flag(v.flag).mustBe(23);
  8102. _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  8103. /* */ if (!((_r === 8))) { $s = 1; continue; }
  8104. /* */ $s = 2; continue;
  8105. /* if (!((_r === 8))) { */ case 1:
  8106. $panic(new $String("reflect.Value.SetBytes of non-byte slice"));
  8107. /* } */ case 2:
  8108. slice = x;
  8109. if (!(v.typ.Name() === "")) { _v = true; $s = 6; continue s; }
  8110. _r$1 = v.typ.Elem().Name(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  8111. _v = !(_r$1 === ""); case 6:
  8112. /* */ if (_v) { $s = 4; continue; }
  8113. /* */ $s = 5; continue;
  8114. /* if (_v) { */ case 4:
  8115. typedSlice = new (jsType(v.typ))(slice.$array);
  8116. typedSlice.$offset = slice.$offset;
  8117. typedSlice.$length = slice.$length;
  8118. typedSlice.$capacity = slice.$capacity;
  8119. slice = typedSlice;
  8120. /* } */ case 5:
  8121. v.ptr.$set(slice);
  8122. $s = -1; return;
  8123. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.SetBytes }; } $f._r = _r; $f._r$1 = _r$1; $f._v = _v; $f.slice = slice; $f.typedSlice = typedSlice; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  8124. };
  8125. Value.prototype.SetBytes = function(x) { return this.$val.SetBytes(x); };
  8126. Value.ptr.prototype.SetCap = function(n) {
  8127. var n, newSlice, s, v;
  8128. v = this;
  8129. new flag(v.flag).mustBeAssignable();
  8130. new flag(v.flag).mustBe(23);
  8131. s = v.ptr.$get();
  8132. if (n < ($parseInt(s.$length) >> 0) || n > ($parseInt(s.$capacity) >> 0)) {
  8133. $panic(new $String("reflect: slice capacity out of range in SetCap"));
  8134. }
  8135. newSlice = new (jsType(v.typ))(s.$array);
  8136. newSlice.$offset = s.$offset;
  8137. newSlice.$length = s.$length;
  8138. newSlice.$capacity = n;
  8139. v.ptr.$set(newSlice);
  8140. };
  8141. Value.prototype.SetCap = function(n) { return this.$val.SetCap(n); };
  8142. Value.ptr.prototype.SetLen = function(n) {
  8143. var n, newSlice, s, v;
  8144. v = this;
  8145. new flag(v.flag).mustBeAssignable();
  8146. new flag(v.flag).mustBe(23);
  8147. s = v.ptr.$get();
  8148. if (n < 0 || n > ($parseInt(s.$capacity) >> 0)) {
  8149. $panic(new $String("reflect: slice length out of range in SetLen"));
  8150. }
  8151. newSlice = new (jsType(v.typ))(s.$array);
  8152. newSlice.$offset = s.$offset;
  8153. newSlice.$length = n;
  8154. newSlice.$capacity = s.$capacity;
  8155. v.ptr.$set(newSlice);
  8156. };
  8157. Value.prototype.SetLen = function(n) { return this.$val.SetLen(n); };
  8158. Value.ptr.prototype.Slice = function(i, j) {
  8159. var _1, _r, _r$1, cap, i, j, kind, s, str, tt, typ, v, $s, $r;
  8160. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; cap = $f.cap; i = $f.i; j = $f.j; kind = $f.kind; s = $f.s; str = $f.str; tt = $f.tt; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  8161. v = this;
  8162. cap = 0;
  8163. typ = $ifaceNil;
  8164. s = null;
  8165. kind = new flag(v.flag).kind();
  8166. _1 = kind;
  8167. /* */ if (_1 === (17)) { $s = 2; continue; }
  8168. /* */ if (_1 === (23)) { $s = 3; continue; }
  8169. /* */ if (_1 === (24)) { $s = 4; continue; }
  8170. /* */ $s = 5; continue;
  8171. /* if (_1 === (17)) { */ case 2:
  8172. if (((v.flag & 256) >>> 0) === 0) {
  8173. $panic(new $String("reflect.Value.Slice: slice of unaddressable array"));
  8174. }
  8175. tt = (v.typ.kindType);
  8176. cap = ((tt.len >> 0));
  8177. typ = SliceOf(tt.elem);
  8178. s = new (jsType(typ))($clone(v, Value).object());
  8179. $s = 6; continue;
  8180. /* } else if (_1 === (23)) { */ case 3:
  8181. typ = v.typ;
  8182. s = $clone(v, Value).object();
  8183. cap = $parseInt(s.$capacity) >> 0;
  8184. $s = 6; continue;
  8185. /* } else if (_1 === (24)) { */ case 4:
  8186. str = (v.ptr).$get();
  8187. if (i < 0 || j < i || j > str.length) {
  8188. $panic(new $String("reflect.Value.Slice: string slice index out of bounds"));
  8189. }
  8190. _r = ValueOf(new $String($substring(str, i, j))); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  8191. $s = -1; return _r;
  8192. /* } else { */ case 5:
  8193. $panic(new ValueError.ptr("reflect.Value.Slice", kind));
  8194. /* } */ case 6:
  8195. case 1:
  8196. if (i < 0 || j < i || j > cap) {
  8197. $panic(new $String("reflect.Value.Slice: slice index out of bounds"));
  8198. }
  8199. _r$1 = makeValue(typ, $subslice(s, i, j), new flag(v.flag).ro()); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  8200. $s = -1; return _r$1;
  8201. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Slice }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f.cap = cap; $f.i = i; $f.j = j; $f.kind = kind; $f.s = s; $f.str = str; $f.tt = tt; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  8202. };
  8203. Value.prototype.Slice = function(i, j) { return this.$val.Slice(i, j); };
  8204. Value.ptr.prototype.Slice3 = function(i, j, k) {
  8205. var _1, _r, cap, i, j, k, kind, s, tt, typ, v, $s, $r;
  8206. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; cap = $f.cap; i = $f.i; j = $f.j; k = $f.k; kind = $f.kind; s = $f.s; tt = $f.tt; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  8207. v = this;
  8208. cap = 0;
  8209. typ = $ifaceNil;
  8210. s = null;
  8211. kind = new flag(v.flag).kind();
  8212. _1 = kind;
  8213. if (_1 === (17)) {
  8214. if (((v.flag & 256) >>> 0) === 0) {
  8215. $panic(new $String("reflect.Value.Slice: slice of unaddressable array"));
  8216. }
  8217. tt = (v.typ.kindType);
  8218. cap = ((tt.len >> 0));
  8219. typ = SliceOf(tt.elem);
  8220. s = new (jsType(typ))($clone(v, Value).object());
  8221. } else if (_1 === (23)) {
  8222. typ = v.typ;
  8223. s = $clone(v, Value).object();
  8224. cap = $parseInt(s.$capacity) >> 0;
  8225. } else {
  8226. $panic(new ValueError.ptr("reflect.Value.Slice3", kind));
  8227. }
  8228. if (i < 0 || j < i || k < j || k > cap) {
  8229. $panic(new $String("reflect.Value.Slice3: slice index out of bounds"));
  8230. }
  8231. _r = makeValue(typ, $subslice(s, i, j, k), new flag(v.flag).ro()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  8232. $s = -1; return _r;
  8233. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Slice3 }; } $f._1 = _1; $f._r = _r; $f.cap = cap; $f.i = i; $f.j = j; $f.k = k; $f.kind = kind; $f.s = s; $f.tt = tt; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  8234. };
  8235. Value.prototype.Slice3 = function(i, j, k) { return this.$val.Slice3(i, j, k); };
  8236. Value.ptr.prototype.Close = function() {
  8237. var v;
  8238. v = this;
  8239. new flag(v.flag).mustBe(18);
  8240. new flag(v.flag).mustBeExported();
  8241. $close($clone(v, Value).object());
  8242. };
  8243. Value.prototype.Close = function() { return this.$val.Close(); };
  8244. chanrecv = function(ch, nb, val) {
  8245. var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, ch, comms, nb, received, recvRes, selectRes, selected, val, $s, $r;
  8246. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; ch = $f.ch; comms = $f.comms; nb = $f.nb; received = $f.received; recvRes = $f.recvRes; selectRes = $f.selectRes; selected = $f.selected; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  8247. selected = false;
  8248. received = false;
  8249. comms = new sliceType$11([new sliceType$8([ch])]);
  8250. if (nb) {
  8251. comms = $append(comms, new sliceType$8([]));
  8252. }
  8253. _r = selectHelper(new sliceType$3([comms])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  8254. selectRes = _r;
  8255. if (nb && (($parseInt(selectRes[0]) >> 0) === 1)) {
  8256. _tmp = false;
  8257. _tmp$1 = false;
  8258. selected = _tmp;
  8259. received = _tmp$1;
  8260. $s = -1; return [selected, received];
  8261. }
  8262. recvRes = selectRes[1];
  8263. val.$set(recvRes[0]);
  8264. _tmp$2 = true;
  8265. _tmp$3 = !!(recvRes[1]);
  8266. selected = _tmp$2;
  8267. received = _tmp$3;
  8268. $s = -1; return [selected, received];
  8269. /* */ } return; } if ($f === undefined) { $f = { $blk: chanrecv }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f.ch = ch; $f.comms = comms; $f.nb = nb; $f.received = received; $f.recvRes = recvRes; $f.selectRes = selectRes; $f.selected = selected; $f.val = val; $f.$s = $s; $f.$r = $r; return $f;
  8270. };
  8271. chansend = function(ch, val, nb) {
  8272. var _r, ch, comms, nb, selectRes, val, $s, $r;
  8273. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; ch = $f.ch; comms = $f.comms; nb = $f.nb; selectRes = $f.selectRes; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  8274. comms = new sliceType$11([new sliceType$8([ch, val.$get()])]);
  8275. if (nb) {
  8276. comms = $append(comms, new sliceType$8([]));
  8277. }
  8278. _r = selectHelper(new sliceType$3([comms])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  8279. selectRes = _r;
  8280. if (nb && (($parseInt(selectRes[0]) >> 0) === 1)) {
  8281. $s = -1; return false;
  8282. }
  8283. $s = -1; return true;
  8284. /* */ } return; } if ($f === undefined) { $f = { $blk: chansend }; } $f._r = _r; $f.ch = ch; $f.comms = comms; $f.nb = nb; $f.selectRes = selectRes; $f.val = val; $f.$s = $s; $f.$r = $r; return $f;
  8285. };
  8286. structField.ptr.prototype.offset = function() {
  8287. var f;
  8288. f = this;
  8289. return f.offsetEmbed >>> 1 >>> 0;
  8290. };
  8291. structField.prototype.offset = function() { return this.$val.offset(); };
  8292. structField.ptr.prototype.embedded = function() {
  8293. var f;
  8294. f = this;
  8295. return !((((f.offsetEmbed & 1) >>> 0) === 0));
  8296. };
  8297. structField.prototype.embedded = function() { return this.$val.embedded(); };
  8298. Kind.prototype.String = function() {
  8299. var k;
  8300. k = this.$val;
  8301. if (((k >> 0)) < kindNames.$length) {
  8302. return ((k < 0 || k >= kindNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : kindNames.$array[kindNames.$offset + k]);
  8303. }
  8304. return "kind" + strconv.Itoa(((k >> 0)));
  8305. };
  8306. $ptrType(Kind).prototype.String = function() { return new Kind(this.$get()).String(); };
  8307. rtype.ptr.prototype.String = function() {
  8308. var s, t;
  8309. t = this;
  8310. s = $clone(t.nameOff(t.str), name).name();
  8311. if (!((((t.tflag & 2) >>> 0) === 0))) {
  8312. return $substring(s, 1);
  8313. }
  8314. return s;
  8315. };
  8316. rtype.prototype.String = function() { return this.$val.String(); };
  8317. rtype.ptr.prototype.Size = function() {
  8318. var t;
  8319. t = this;
  8320. return t.size;
  8321. };
  8322. rtype.prototype.Size = function() { return this.$val.Size(); };
  8323. rtype.ptr.prototype.Bits = function() {
  8324. var k, t;
  8325. t = this;
  8326. if (t === ptrType$1.nil) {
  8327. $panic(new $String("reflect: Bits of nil Type"));
  8328. }
  8329. k = t.Kind();
  8330. if (k < 2 || k > 16) {
  8331. $panic(new $String("reflect: Bits of non-arithmetic Type " + t.String()));
  8332. }
  8333. return $imul(((t.size >> 0)), 8);
  8334. };
  8335. rtype.prototype.Bits = function() { return this.$val.Bits(); };
  8336. rtype.ptr.prototype.Align = function() {
  8337. var t;
  8338. t = this;
  8339. return ((t.align >> 0));
  8340. };
  8341. rtype.prototype.Align = function() { return this.$val.Align(); };
  8342. rtype.ptr.prototype.FieldAlign = function() {
  8343. var t;
  8344. t = this;
  8345. return ((t.fieldAlign >> 0));
  8346. };
  8347. rtype.prototype.FieldAlign = function() { return this.$val.FieldAlign(); };
  8348. rtype.ptr.prototype.Kind = function() {
  8349. var t;
  8350. t = this;
  8351. return ((((t.kind & 31) >>> 0) >>> 0));
  8352. };
  8353. rtype.prototype.Kind = function() { return this.$val.Kind(); };
  8354. rtype.ptr.prototype.common = function() {
  8355. var t;
  8356. t = this;
  8357. return t;
  8358. };
  8359. rtype.prototype.common = function() { return this.$val.common(); };
  8360. rtype.ptr.prototype.exportedMethods = function() {
  8361. var t, ut;
  8362. t = this;
  8363. ut = t.uncommon();
  8364. if (ut === ptrType$5.nil) {
  8365. return sliceType$5.nil;
  8366. }
  8367. return ut.exportedMethods();
  8368. };
  8369. rtype.prototype.exportedMethods = function() { return this.$val.exportedMethods(); };
  8370. rtype.ptr.prototype.NumMethod = function() {
  8371. var t, tt;
  8372. t = this;
  8373. if (t.Kind() === 20) {
  8374. tt = (t.kindType);
  8375. return tt.NumMethod();
  8376. }
  8377. return t.exportedMethods().$length;
  8378. };
  8379. rtype.prototype.NumMethod = function() { return this.$val.NumMethod(); };
  8380. rtype.ptr.prototype.MethodByName = function(name$1) {
  8381. var _i, _r, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, i, m, name$1, ok, p, t, tt, ut, $s, $r;
  8382. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; i = $f.i; m = $f.m; name$1 = $f.name$1; ok = $f.ok; p = $f.p; t = $f.t; tt = $f.tt; ut = $f.ut; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  8383. m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0);
  8384. ok = false;
  8385. t = this;
  8386. if (t.Kind() === 20) {
  8387. tt = (t.kindType);
  8388. _tuple = tt.MethodByName(name$1);
  8389. Method.copy(m, _tuple[0]);
  8390. ok = _tuple[1];
  8391. $s = -1; return [m, ok];
  8392. }
  8393. ut = t.uncommon();
  8394. if (ut === ptrType$5.nil) {
  8395. _tmp = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0);
  8396. _tmp$1 = false;
  8397. Method.copy(m, _tmp);
  8398. ok = _tmp$1;
  8399. $s = -1; return [m, ok];
  8400. }
  8401. _ref = ut.exportedMethods();
  8402. _i = 0;
  8403. /* while (true) { */ case 1:
  8404. /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
  8405. i = _i;
  8406. p = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), method);
  8407. /* */ if ($clone(t.nameOff(p.name), name).name() === name$1) { $s = 3; continue; }
  8408. /* */ $s = 4; continue;
  8409. /* if ($clone(t.nameOff(p.name), name).name() === name$1) { */ case 3:
  8410. _r = t.Method(i); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  8411. _tmp$2 = $clone(_r, Method);
  8412. _tmp$3 = true;
  8413. Method.copy(m, _tmp$2);
  8414. ok = _tmp$3;
  8415. $s = -1; return [m, ok];
  8416. /* } */ case 4:
  8417. _i++;
  8418. /* } */ $s = 1; continue; case 2:
  8419. _tmp$4 = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0);
  8420. _tmp$5 = false;
  8421. Method.copy(m, _tmp$4);
  8422. ok = _tmp$5;
  8423. $s = -1; return [m, ok];
  8424. /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.MethodByName }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f.i = i; $f.m = m; $f.name$1 = name$1; $f.ok = ok; $f.p = p; $f.t = t; $f.tt = tt; $f.ut = ut; $f.$s = $s; $f.$r = $r; return $f;
  8425. };
  8426. rtype.prototype.MethodByName = function(name$1) { return this.$val.MethodByName(name$1); };
  8427. rtype.ptr.prototype.PkgPath = function() {
  8428. var t, ut;
  8429. t = this;
  8430. if (((t.tflag & 4) >>> 0) === 0) {
  8431. return "";
  8432. }
  8433. ut = t.uncommon();
  8434. if (ut === ptrType$5.nil) {
  8435. return "";
  8436. }
  8437. return $clone(t.nameOff(ut.pkgPath), name).name();
  8438. };
  8439. rtype.prototype.PkgPath = function() { return this.$val.PkgPath(); };
  8440. rtype.ptr.prototype.Name = function() {
  8441. var i, s, t;
  8442. t = this;
  8443. if (((t.tflag & 4) >>> 0) === 0) {
  8444. return "";
  8445. }
  8446. s = t.String();
  8447. i = s.length - 1 >> 0;
  8448. while (true) {
  8449. if (!(i >= 0)) { break; }
  8450. if (s.charCodeAt(i) === 46) {
  8451. break;
  8452. }
  8453. i = i - (1) >> 0;
  8454. }
  8455. return $substring(s, (i + 1 >> 0));
  8456. };
  8457. rtype.prototype.Name = function() { return this.$val.Name(); };
  8458. rtype.ptr.prototype.ChanDir = function() {
  8459. var t, tt;
  8460. t = this;
  8461. if (!((t.Kind() === 18))) {
  8462. $panic(new $String("reflect: ChanDir of non-chan type"));
  8463. }
  8464. tt = (t.kindType);
  8465. return ((tt.dir >> 0));
  8466. };
  8467. rtype.prototype.ChanDir = function() { return this.$val.ChanDir(); };
  8468. rtype.ptr.prototype.IsVariadic = function() {
  8469. var t, tt;
  8470. t = this;
  8471. if (!((t.Kind() === 19))) {
  8472. $panic(new $String("reflect: IsVariadic of non-func type"));
  8473. }
  8474. tt = (t.kindType);
  8475. return !((((tt.outCount & 32768) >>> 0) === 0));
  8476. };
  8477. rtype.prototype.IsVariadic = function() { return this.$val.IsVariadic(); };
  8478. rtype.ptr.prototype.Elem = function() {
  8479. var _1, t, tt, tt$1, tt$2, tt$3, tt$4;
  8480. t = this;
  8481. _1 = t.Kind();
  8482. if (_1 === (17)) {
  8483. tt = (t.kindType);
  8484. return toType(tt.elem);
  8485. } else if (_1 === (18)) {
  8486. tt$1 = (t.kindType);
  8487. return toType(tt$1.elem);
  8488. } else if (_1 === (21)) {
  8489. tt$2 = (t.kindType);
  8490. return toType(tt$2.elem);
  8491. } else if (_1 === (22)) {
  8492. tt$3 = (t.kindType);
  8493. return toType(tt$3.elem);
  8494. } else if (_1 === (23)) {
  8495. tt$4 = (t.kindType);
  8496. return toType(tt$4.elem);
  8497. }
  8498. $panic(new $String("reflect: Elem of invalid type"));
  8499. };
  8500. rtype.prototype.Elem = function() { return this.$val.Elem(); };
  8501. rtype.ptr.prototype.Field = function(i) {
  8502. var i, t, tt;
  8503. t = this;
  8504. if (!((t.Kind() === 25))) {
  8505. $panic(new $String("reflect: Field of non-struct type"));
  8506. }
  8507. tt = (t.kindType);
  8508. return tt.Field(i);
  8509. };
  8510. rtype.prototype.Field = function(i) { return this.$val.Field(i); };
  8511. rtype.ptr.prototype.FieldByIndex = function(index) {
  8512. var _r, index, t, tt, $s, $r;
  8513. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; index = $f.index; t = $f.t; tt = $f.tt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  8514. t = this;
  8515. if (!((t.Kind() === 25))) {
  8516. $panic(new $String("reflect: FieldByIndex of non-struct type"));
  8517. }
  8518. tt = (t.kindType);
  8519. _r = tt.FieldByIndex(index); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  8520. $s = -1; return _r;
  8521. /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.FieldByIndex }; } $f._r = _r; $f.index = index; $f.t = t; $f.tt = tt; $f.$s = $s; $f.$r = $r; return $f;
  8522. };
  8523. rtype.prototype.FieldByIndex = function(index) { return this.$val.FieldByIndex(index); };
  8524. rtype.ptr.prototype.FieldByName = function(name$1) {
  8525. var _r, name$1, t, tt, $s, $r;
  8526. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; name$1 = $f.name$1; t = $f.t; tt = $f.tt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  8527. t = this;
  8528. if (!((t.Kind() === 25))) {
  8529. $panic(new $String("reflect: FieldByName of non-struct type"));
  8530. }
  8531. tt = (t.kindType);
  8532. _r = tt.FieldByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  8533. $s = -1; return _r;
  8534. /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.FieldByName }; } $f._r = _r; $f.name$1 = name$1; $f.t = t; $f.tt = tt; $f.$s = $s; $f.$r = $r; return $f;
  8535. };
  8536. rtype.prototype.FieldByName = function(name$1) { return this.$val.FieldByName(name$1); };
  8537. rtype.ptr.prototype.FieldByNameFunc = function(match) {
  8538. var _r, match, t, tt, $s, $r;
  8539. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; match = $f.match; t = $f.t; tt = $f.tt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  8540. t = this;
  8541. if (!((t.Kind() === 25))) {
  8542. $panic(new $String("reflect: FieldByNameFunc of non-struct type"));
  8543. }
  8544. tt = (t.kindType);
  8545. _r = tt.FieldByNameFunc(match); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  8546. $s = -1; return _r;
  8547. /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.FieldByNameFunc }; } $f._r = _r; $f.match = match; $f.t = t; $f.tt = tt; $f.$s = $s; $f.$r = $r; return $f;
  8548. };
  8549. rtype.prototype.FieldByNameFunc = function(match) { return this.$val.FieldByNameFunc(match); };
  8550. rtype.ptr.prototype.In = function(i) {
  8551. var i, t, tt, x;
  8552. t = this;
  8553. if (!((t.Kind() === 19))) {
  8554. $panic(new $String("reflect: In of non-func type"));
  8555. }
  8556. tt = (t.kindType);
  8557. return toType((x = tt.in$(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])));
  8558. };
  8559. rtype.prototype.In = function(i) { return this.$val.In(i); };
  8560. rtype.ptr.prototype.Key = function() {
  8561. var t, tt;
  8562. t = this;
  8563. if (!((t.Kind() === 21))) {
  8564. $panic(new $String("reflect: Key of non-map type"));
  8565. }
  8566. tt = (t.kindType);
  8567. return toType(tt.key);
  8568. };
  8569. rtype.prototype.Key = function() { return this.$val.Key(); };
  8570. rtype.ptr.prototype.Len = function() {
  8571. var t, tt;
  8572. t = this;
  8573. if (!((t.Kind() === 17))) {
  8574. $panic(new $String("reflect: Len of non-array type"));
  8575. }
  8576. tt = (t.kindType);
  8577. return ((tt.len >> 0));
  8578. };
  8579. rtype.prototype.Len = function() { return this.$val.Len(); };
  8580. rtype.ptr.prototype.NumField = function() {
  8581. var t, tt;
  8582. t = this;
  8583. if (!((t.Kind() === 25))) {
  8584. $panic(new $String("reflect: NumField of non-struct type"));
  8585. }
  8586. tt = (t.kindType);
  8587. return tt.fields.$length;
  8588. };
  8589. rtype.prototype.NumField = function() { return this.$val.NumField(); };
  8590. rtype.ptr.prototype.NumIn = function() {
  8591. var t, tt;
  8592. t = this;
  8593. if (!((t.Kind() === 19))) {
  8594. $panic(new $String("reflect: NumIn of non-func type"));
  8595. }
  8596. tt = (t.kindType);
  8597. return ((tt.inCount >> 0));
  8598. };
  8599. rtype.prototype.NumIn = function() { return this.$val.NumIn(); };
  8600. rtype.ptr.prototype.NumOut = function() {
  8601. var t, tt;
  8602. t = this;
  8603. if (!((t.Kind() === 19))) {
  8604. $panic(new $String("reflect: NumOut of non-func type"));
  8605. }
  8606. tt = (t.kindType);
  8607. return tt.out().$length;
  8608. };
  8609. rtype.prototype.NumOut = function() { return this.$val.NumOut(); };
  8610. rtype.ptr.prototype.Out = function(i) {
  8611. var i, t, tt, x;
  8612. t = this;
  8613. if (!((t.Kind() === 19))) {
  8614. $panic(new $String("reflect: Out of non-func type"));
  8615. }
  8616. tt = (t.kindType);
  8617. return toType((x = tt.out(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])));
  8618. };
  8619. rtype.prototype.Out = function(i) { return this.$val.Out(i); };
  8620. ChanDir.prototype.String = function() {
  8621. var _1, d;
  8622. d = this.$val;
  8623. _1 = d;
  8624. if (_1 === (2)) {
  8625. return "chan<-";
  8626. } else if (_1 === (1)) {
  8627. return "<-chan";
  8628. } else if (_1 === (3)) {
  8629. return "chan";
  8630. }
  8631. return "ChanDir" + strconv.Itoa(((d >> 0)));
  8632. };
  8633. $ptrType(ChanDir).prototype.String = function() { return new ChanDir(this.$get()).String(); };
  8634. interfaceType.ptr.prototype.Method = function(i) {
  8635. var i, m, p, pname, t, x;
  8636. m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0);
  8637. t = this;
  8638. if (i < 0 || i >= t.methods.$length) {
  8639. return m;
  8640. }
  8641. p = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]));
  8642. pname = $clone(t.rtype.nameOff(p.name), name);
  8643. m.Name = $clone(pname, name).name();
  8644. if (!$clone(pname, name).isExported()) {
  8645. m.PkgPath = $clone(pname, name).pkgPath();
  8646. if (m.PkgPath === "") {
  8647. m.PkgPath = $clone(t.pkgPath, name).name();
  8648. }
  8649. }
  8650. m.Type = toType(t.rtype.typeOff(p.typ));
  8651. m.Index = i;
  8652. return m;
  8653. };
  8654. interfaceType.prototype.Method = function(i) { return this.$val.Method(i); };
  8655. interfaceType.ptr.prototype.NumMethod = function() {
  8656. var t;
  8657. t = this;
  8658. return t.methods.$length;
  8659. };
  8660. interfaceType.prototype.NumMethod = function() { return this.$val.NumMethod(); };
  8661. interfaceType.ptr.prototype.MethodByName = function(name$1) {
  8662. var _i, _ref, _tmp, _tmp$1, i, m, name$1, ok, p, t, x;
  8663. m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0);
  8664. ok = false;
  8665. t = this;
  8666. if (t === ptrType$9.nil) {
  8667. return [m, ok];
  8668. }
  8669. p = ptrType$10.nil;
  8670. _ref = t.methods;
  8671. _i = 0;
  8672. while (true) {
  8673. if (!(_i < _ref.$length)) { break; }
  8674. i = _i;
  8675. p = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]));
  8676. if ($clone(t.rtype.nameOff(p.name), name).name() === name$1) {
  8677. _tmp = $clone(t.Method(i), Method);
  8678. _tmp$1 = true;
  8679. Method.copy(m, _tmp);
  8680. ok = _tmp$1;
  8681. return [m, ok];
  8682. }
  8683. _i++;
  8684. }
  8685. return [m, ok];
  8686. };
  8687. interfaceType.prototype.MethodByName = function(name$1) { return this.$val.MethodByName(name$1); };
  8688. StructTag.prototype.Get = function(key) {
  8689. var _tuple, key, tag, v;
  8690. tag = this.$val;
  8691. _tuple = new StructTag(tag).Lookup(key);
  8692. v = _tuple[0];
  8693. return v;
  8694. };
  8695. $ptrType(StructTag).prototype.Get = function(key) { return new StructTag(this.$get()).Get(key); };
  8696. StructTag.prototype.Lookup = function(key) {
  8697. var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, i, key, name$1, ok, qvalue, tag, value, value$1;
  8698. value = "";
  8699. ok = false;
  8700. tag = this.$val;
  8701. while (true) {
  8702. if (!(!(tag === ""))) { break; }
  8703. i = 0;
  8704. while (true) {
  8705. if (!(i < tag.length && (tag.charCodeAt(i) === 32))) { break; }
  8706. i = i + (1) >> 0;
  8707. }
  8708. tag = $substring(tag, i);
  8709. if (tag === "") {
  8710. break;
  8711. }
  8712. i = 0;
  8713. while (true) {
  8714. if (!(i < tag.length && tag.charCodeAt(i) > 32 && !((tag.charCodeAt(i) === 58)) && !((tag.charCodeAt(i) === 34)) && !((tag.charCodeAt(i) === 127)))) { break; }
  8715. i = i + (1) >> 0;
  8716. }
  8717. if ((i === 0) || (i + 1 >> 0) >= tag.length || !((tag.charCodeAt(i) === 58)) || !((tag.charCodeAt((i + 1 >> 0)) === 34))) {
  8718. break;
  8719. }
  8720. name$1 = ($substring(tag, 0, i));
  8721. tag = $substring(tag, (i + 1 >> 0));
  8722. i = 1;
  8723. while (true) {
  8724. if (!(i < tag.length && !((tag.charCodeAt(i) === 34)))) { break; }
  8725. if (tag.charCodeAt(i) === 92) {
  8726. i = i + (1) >> 0;
  8727. }
  8728. i = i + (1) >> 0;
  8729. }
  8730. if (i >= tag.length) {
  8731. break;
  8732. }
  8733. qvalue = ($substring(tag, 0, (i + 1 >> 0)));
  8734. tag = $substring(tag, (i + 1 >> 0));
  8735. if (key === name$1) {
  8736. _tuple = strconv.Unquote(qvalue);
  8737. value$1 = _tuple[0];
  8738. err = _tuple[1];
  8739. if (!($interfaceIsEqual(err, $ifaceNil))) {
  8740. break;
  8741. }
  8742. _tmp = value$1;
  8743. _tmp$1 = true;
  8744. value = _tmp;
  8745. ok = _tmp$1;
  8746. return [value, ok];
  8747. }
  8748. }
  8749. _tmp$2 = "";
  8750. _tmp$3 = false;
  8751. value = _tmp$2;
  8752. ok = _tmp$3;
  8753. return [value, ok];
  8754. };
  8755. $ptrType(StructTag).prototype.Lookup = function(key) { return new StructTag(this.$get()).Lookup(key); };
  8756. structType.ptr.prototype.Field = function(i) {
  8757. var f, i, p, t, tag, x;
  8758. f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false);
  8759. t = this;
  8760. if (i < 0 || i >= t.fields.$length) {
  8761. $panic(new $String("reflect: Field index out of bounds"));
  8762. }
  8763. p = (x = t.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]));
  8764. f.Type = toType(p.typ);
  8765. f.Name = $clone(p.name, name).name();
  8766. f.Anonymous = p.embedded();
  8767. if (!$clone(p.name, name).isExported()) {
  8768. f.PkgPath = $clone(t.pkgPath, name).name();
  8769. }
  8770. tag = $clone(p.name, name).tag();
  8771. if (!(tag === "")) {
  8772. f.Tag = (tag);
  8773. }
  8774. f.Offset = p.offset();
  8775. f.Index = new sliceType$13([i]);
  8776. return f;
  8777. };
  8778. structType.prototype.Field = function(i) { return this.$val.Field(i); };
  8779. structType.ptr.prototype.FieldByIndex = function(index) {
  8780. var _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _v, f, ft, i, index, t, x, $s, $r;
  8781. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _ref = $f._ref; _v = $f._v; f = $f.f; ft = $f.ft; i = $f.i; index = $f.index; t = $f.t; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  8782. f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false);
  8783. t = this;
  8784. f.Type = toType(t.rtype);
  8785. _ref = index;
  8786. _i = 0;
  8787. /* while (true) { */ case 1:
  8788. /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
  8789. i = _i;
  8790. x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  8791. /* */ if (i > 0) { $s = 3; continue; }
  8792. /* */ $s = 4; continue;
  8793. /* if (i > 0) { */ case 3:
  8794. ft = f.Type;
  8795. _r = ft.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  8796. if (!(_r === 22)) { _v = false; $s = 7; continue s; }
  8797. _r$1 = ft.Elem(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  8798. _r$2 = _r$1.Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  8799. _v = _r$2 === 25; case 7:
  8800. /* */ if (_v) { $s = 5; continue; }
  8801. /* */ $s = 6; continue;
  8802. /* if (_v) { */ case 5:
  8803. _r$3 = ft.Elem(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  8804. ft = _r$3;
  8805. /* } */ case 6:
  8806. f.Type = ft;
  8807. /* } */ case 4:
  8808. _r$4 = f.Type.Field(x); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  8809. StructField.copy(f, _r$4);
  8810. _i++;
  8811. /* } */ $s = 1; continue; case 2:
  8812. $s = -1; return f;
  8813. /* */ } return; } if ($f === undefined) { $f = { $blk: structType.ptr.prototype.FieldByIndex }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._ref = _ref; $f._v = _v; $f.f = f; $f.ft = ft; $f.i = i; $f.index = index; $f.t = t; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  8814. };
  8815. structType.prototype.FieldByIndex = function(index) { return this.$val.FieldByIndex(index); };
  8816. structType.ptr.prototype.FieldByNameFunc = function(match) {
  8817. var _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _key, _key$1, _key$2, _key$3, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, count, current, f, fname, i, index, match, next, nextCount, ntyp, ok, result, scan, styp, t, t$1, visited, x, $s, $r;
  8818. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _entry$3 = $f._entry$3; _i = $f._i; _i$1 = $f._i$1; _key = $f._key; _key$1 = $f._key$1; _key$2 = $f._key$2; _key$3 = $f._key$3; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _ref$1 = $f._ref$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; count = $f.count; current = $f.current; f = $f.f; fname = $f.fname; i = $f.i; index = $f.index; match = $f.match; next = $f.next; nextCount = $f.nextCount; ntyp = $f.ntyp; ok = $f.ok; result = $f.result; scan = $f.scan; styp = $f.styp; t = $f.t; t$1 = $f.t$1; visited = $f.visited; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  8819. result = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false);
  8820. ok = false;
  8821. t = this;
  8822. current = new sliceType$14([]);
  8823. next = new sliceType$14([new fieldScan.ptr(t, sliceType$13.nil)]);
  8824. nextCount = false;
  8825. visited = $makeMap(ptrType$11.keyFor, []);
  8826. /* while (true) { */ case 1:
  8827. /* if (!(next.$length > 0)) { break; } */ if(!(next.$length > 0)) { $s = 2; continue; }
  8828. _tmp = next;
  8829. _tmp$1 = $subslice(current, 0, 0);
  8830. current = _tmp;
  8831. next = _tmp$1;
  8832. count = nextCount;
  8833. nextCount = false;
  8834. _ref = current;
  8835. _i = 0;
  8836. /* while (true) { */ case 3:
  8837. /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; }
  8838. scan = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), fieldScan);
  8839. t$1 = scan.typ;
  8840. /* */ if ((_entry = visited[ptrType$11.keyFor(t$1)], _entry !== undefined ? _entry.v : false)) { $s = 5; continue; }
  8841. /* */ $s = 6; continue;
  8842. /* if ((_entry = visited[ptrType$11.keyFor(t$1)], _entry !== undefined ? _entry.v : false)) { */ case 5:
  8843. _i++;
  8844. /* continue; */ $s = 3; continue;
  8845. /* } */ case 6:
  8846. _key = t$1; (visited || $throwRuntimeError("assignment to entry in nil map"))[ptrType$11.keyFor(_key)] = { k: _key, v: true };
  8847. _ref$1 = t$1.fields;
  8848. _i$1 = 0;
  8849. /* while (true) { */ case 7:
  8850. /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 8; continue; }
  8851. i = _i$1;
  8852. f = (x = t$1.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]));
  8853. fname = $clone(f.name, name).name();
  8854. ntyp = ptrType$1.nil;
  8855. /* */ if (f.embedded()) { $s = 9; continue; }
  8856. /* */ $s = 10; continue;
  8857. /* if (f.embedded()) { */ case 9:
  8858. ntyp = f.typ;
  8859. /* */ if (ntyp.Kind() === 22) { $s = 11; continue; }
  8860. /* */ $s = 12; continue;
  8861. /* if (ntyp.Kind() === 22) { */ case 11:
  8862. _r = ntyp.Elem().common(); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  8863. ntyp = _r;
  8864. /* } */ case 12:
  8865. /* } */ case 10:
  8866. _r$1 = match(fname); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  8867. /* */ if (_r$1) { $s = 14; continue; }
  8868. /* */ $s = 15; continue;
  8869. /* if (_r$1) { */ case 14:
  8870. if ((_entry$1 = count[ptrType$11.keyFor(t$1)], _entry$1 !== undefined ? _entry$1.v : 0) > 1 || ok) {
  8871. _tmp$2 = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false);
  8872. _tmp$3 = false;
  8873. StructField.copy(result, _tmp$2);
  8874. ok = _tmp$3;
  8875. $s = -1; return [result, ok];
  8876. }
  8877. StructField.copy(result, t$1.Field(i));
  8878. result.Index = sliceType$13.nil;
  8879. result.Index = $appendSlice(result.Index, scan.index);
  8880. result.Index = $append(result.Index, i);
  8881. ok = true;
  8882. _i$1++;
  8883. /* continue; */ $s = 7; continue;
  8884. /* } */ case 15:
  8885. if (ok || ntyp === ptrType$1.nil || !((ntyp.Kind() === 25))) {
  8886. _i$1++;
  8887. /* continue; */ $s = 7; continue;
  8888. }
  8889. styp = (ntyp.kindType);
  8890. if ((_entry$2 = nextCount[ptrType$11.keyFor(styp)], _entry$2 !== undefined ? _entry$2.v : 0) > 0) {
  8891. _key$1 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map"))[ptrType$11.keyFor(_key$1)] = { k: _key$1, v: 2 };
  8892. _i$1++;
  8893. /* continue; */ $s = 7; continue;
  8894. }
  8895. if (nextCount === false) {
  8896. nextCount = $makeMap(ptrType$11.keyFor, []);
  8897. }
  8898. _key$2 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map"))[ptrType$11.keyFor(_key$2)] = { k: _key$2, v: 1 };
  8899. if ((_entry$3 = count[ptrType$11.keyFor(t$1)], _entry$3 !== undefined ? _entry$3.v : 0) > 1) {
  8900. _key$3 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map"))[ptrType$11.keyFor(_key$3)] = { k: _key$3, v: 2 };
  8901. }
  8902. index = sliceType$13.nil;
  8903. index = $appendSlice(index, scan.index);
  8904. index = $append(index, i);
  8905. next = $append(next, new fieldScan.ptr(styp, index));
  8906. _i$1++;
  8907. /* } */ $s = 7; continue; case 8:
  8908. _i++;
  8909. /* } */ $s = 3; continue; case 4:
  8910. if (ok) {
  8911. /* break; */ $s = 2; continue;
  8912. }
  8913. /* } */ $s = 1; continue; case 2:
  8914. $s = -1; return [result, ok];
  8915. /* */ } return; } if ($f === undefined) { $f = { $blk: structType.ptr.prototype.FieldByNameFunc }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._entry$3 = _entry$3; $f._i = _i; $f._i$1 = _i$1; $f._key = _key; $f._key$1 = _key$1; $f._key$2 = _key$2; $f._key$3 = _key$3; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f.count = count; $f.current = current; $f.f = f; $f.fname = fname; $f.i = i; $f.index = index; $f.match = match; $f.next = next; $f.nextCount = nextCount; $f.ntyp = ntyp; $f.ok = ok; $f.result = result; $f.scan = scan; $f.styp = styp; $f.t = t; $f.t$1 = t$1; $f.visited = visited; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  8916. };
  8917. structType.prototype.FieldByNameFunc = function(match) { return this.$val.FieldByNameFunc(match); };
  8918. structType.ptr.prototype.FieldByName = function(name$1) {
  8919. var _i, _r, _ref, _tmp, _tmp$1, _tuple, f, hasEmbeds, i, name$1, present, t, tf, x, $s, $r;
  8920. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; f = $f.f; hasEmbeds = $f.hasEmbeds; i = $f.i; name$1 = $f.name$1; present = $f.present; t = $f.t; tf = $f.tf; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  8921. name$1 = [name$1];
  8922. f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false);
  8923. present = false;
  8924. t = this;
  8925. hasEmbeds = false;
  8926. if (!(name$1[0] === "")) {
  8927. _ref = t.fields;
  8928. _i = 0;
  8929. while (true) {
  8930. if (!(_i < _ref.$length)) { break; }
  8931. i = _i;
  8932. tf = (x = t.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]));
  8933. if ($clone(tf.name, name).name() === name$1[0]) {
  8934. _tmp = $clone(t.Field(i), StructField);
  8935. _tmp$1 = true;
  8936. StructField.copy(f, _tmp);
  8937. present = _tmp$1;
  8938. $s = -1; return [f, present];
  8939. }
  8940. if (tf.embedded()) {
  8941. hasEmbeds = true;
  8942. }
  8943. _i++;
  8944. }
  8945. }
  8946. if (!hasEmbeds) {
  8947. $s = -1; return [f, present];
  8948. }
  8949. _r = t.FieldByNameFunc((function(name$1) { return function(s) {
  8950. var s;
  8951. return s === name$1[0];
  8952. }; })(name$1)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  8953. _tuple = _r;
  8954. StructField.copy(f, _tuple[0]);
  8955. present = _tuple[1];
  8956. $s = -1; return [f, present];
  8957. /* */ } return; } if ($f === undefined) { $f = { $blk: structType.ptr.prototype.FieldByName }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.f = f; $f.hasEmbeds = hasEmbeds; $f.i = i; $f.name$1 = name$1; $f.present = present; $f.t = t; $f.tf = tf; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  8958. };
  8959. structType.prototype.FieldByName = function(name$1) { return this.$val.FieldByName(name$1); };
  8960. PtrTo = function(t) {
  8961. var t;
  8962. return $assertType(t, ptrType$1).ptrTo();
  8963. };
  8964. $pkg.PtrTo = PtrTo;
  8965. rtype.ptr.prototype.Implements = function(u) {
  8966. var _r, t, u, $s, $r;
  8967. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; u = $f.u; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  8968. t = this;
  8969. if ($interfaceIsEqual(u, $ifaceNil)) {
  8970. $panic(new $String("reflect: nil type passed to Type.Implements"));
  8971. }
  8972. _r = u.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  8973. /* */ if (!((_r === 20))) { $s = 1; continue; }
  8974. /* */ $s = 2; continue;
  8975. /* if (!((_r === 20))) { */ case 1:
  8976. $panic(new $String("reflect: non-interface type passed to Type.Implements"));
  8977. /* } */ case 2:
  8978. $s = -1; return implements$1($assertType(u, ptrType$1), t);
  8979. /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.Implements }; } $f._r = _r; $f.t = t; $f.u = u; $f.$s = $s; $f.$r = $r; return $f;
  8980. };
  8981. rtype.prototype.Implements = function(u) { return this.$val.Implements(u); };
  8982. rtype.ptr.prototype.AssignableTo = function(u) {
  8983. var _r, t, u, uu, $s, $r;
  8984. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; u = $f.u; uu = $f.uu; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  8985. t = this;
  8986. if ($interfaceIsEqual(u, $ifaceNil)) {
  8987. $panic(new $String("reflect: nil type passed to Type.AssignableTo"));
  8988. }
  8989. uu = $assertType(u, ptrType$1);
  8990. _r = directlyAssignable(uu, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  8991. $s = -1; return _r || implements$1(uu, t);
  8992. /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.AssignableTo }; } $f._r = _r; $f.t = t; $f.u = u; $f.uu = uu; $f.$s = $s; $f.$r = $r; return $f;
  8993. };
  8994. rtype.prototype.AssignableTo = function(u) { return this.$val.AssignableTo(u); };
  8995. rtype.ptr.prototype.ConvertibleTo = function(u) {
  8996. var _r, t, u, uu, $s, $r;
  8997. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; u = $f.u; uu = $f.uu; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  8998. t = this;
  8999. if ($interfaceIsEqual(u, $ifaceNil)) {
  9000. $panic(new $String("reflect: nil type passed to Type.ConvertibleTo"));
  9001. }
  9002. uu = $assertType(u, ptrType$1);
  9003. _r = convertOp(uu, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  9004. $s = -1; return !(_r === $throwNilPointerError);
  9005. /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.ConvertibleTo }; } $f._r = _r; $f.t = t; $f.u = u; $f.uu = uu; $f.$s = $s; $f.$r = $r; return $f;
  9006. };
  9007. rtype.prototype.ConvertibleTo = function(u) { return this.$val.ConvertibleTo(u); };
  9008. implements$1 = function(T, V) {
  9009. var T, V, i, i$1, j, j$1, t, tm, tm$1, tmName, tmName$1, tmPkgPath, tmPkgPath$1, v, v$1, vm, vm$1, vmName, vmName$1, vmPkgPath, vmPkgPath$1, vmethods, x, x$1, x$2;
  9010. if (!((T.Kind() === 20))) {
  9011. return false;
  9012. }
  9013. t = (T.kindType);
  9014. if (t.methods.$length === 0) {
  9015. return true;
  9016. }
  9017. if (V.Kind() === 20) {
  9018. v = (V.kindType);
  9019. i = 0;
  9020. j = 0;
  9021. while (true) {
  9022. if (!(j < v.methods.$length)) { break; }
  9023. tm = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]));
  9024. tmName = $clone(t.rtype.nameOff(tm.name), name);
  9025. vm = (x$1 = v.methods, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j]));
  9026. vmName = $clone(V.nameOff(vm.name), name);
  9027. if ($clone(vmName, name).name() === $clone(tmName, name).name() && V.typeOff(vm.typ) === t.rtype.typeOff(tm.typ)) {
  9028. if (!$clone(tmName, name).isExported()) {
  9029. tmPkgPath = $clone(tmName, name).pkgPath();
  9030. if (tmPkgPath === "") {
  9031. tmPkgPath = $clone(t.pkgPath, name).name();
  9032. }
  9033. vmPkgPath = $clone(vmName, name).pkgPath();
  9034. if (vmPkgPath === "") {
  9035. vmPkgPath = $clone(v.pkgPath, name).name();
  9036. }
  9037. if (!(tmPkgPath === vmPkgPath)) {
  9038. j = j + (1) >> 0;
  9039. continue;
  9040. }
  9041. }
  9042. i = i + (1) >> 0;
  9043. if (i >= t.methods.$length) {
  9044. return true;
  9045. }
  9046. }
  9047. j = j + (1) >> 0;
  9048. }
  9049. return false;
  9050. }
  9051. v$1 = V.uncommon();
  9052. if (v$1 === ptrType$5.nil) {
  9053. return false;
  9054. }
  9055. i$1 = 0;
  9056. vmethods = v$1.methods();
  9057. j$1 = 0;
  9058. while (true) {
  9059. if (!(j$1 < ((v$1.mcount >> 0)))) { break; }
  9060. tm$1 = (x$2 = t.methods, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1]));
  9061. tmName$1 = $clone(t.rtype.nameOff(tm$1.name), name);
  9062. vm$1 = $clone(((j$1 < 0 || j$1 >= vmethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : vmethods.$array[vmethods.$offset + j$1]), method);
  9063. vmName$1 = $clone(V.nameOff(vm$1.name), name);
  9064. if ($clone(vmName$1, name).name() === $clone(tmName$1, name).name() && V.typeOff(vm$1.mtyp) === t.rtype.typeOff(tm$1.typ)) {
  9065. if (!$clone(tmName$1, name).isExported()) {
  9066. tmPkgPath$1 = $clone(tmName$1, name).pkgPath();
  9067. if (tmPkgPath$1 === "") {
  9068. tmPkgPath$1 = $clone(t.pkgPath, name).name();
  9069. }
  9070. vmPkgPath$1 = $clone(vmName$1, name).pkgPath();
  9071. if (vmPkgPath$1 === "") {
  9072. vmPkgPath$1 = $clone(V.nameOff(v$1.pkgPath), name).name();
  9073. }
  9074. if (!(tmPkgPath$1 === vmPkgPath$1)) {
  9075. j$1 = j$1 + (1) >> 0;
  9076. continue;
  9077. }
  9078. }
  9079. i$1 = i$1 + (1) >> 0;
  9080. if (i$1 >= t.methods.$length) {
  9081. return true;
  9082. }
  9083. }
  9084. j$1 = j$1 + (1) >> 0;
  9085. }
  9086. return false;
  9087. };
  9088. directlyAssignable = function(T, V) {
  9089. var T, V, _r, $s, $r;
  9090. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; T = $f.T; V = $f.V; _r = $f._r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  9091. if (T === V) {
  9092. $s = -1; return true;
  9093. }
  9094. if (!(T.Name() === "") && !(V.Name() === "") || !((T.Kind() === V.Kind()))) {
  9095. $s = -1; return false;
  9096. }
  9097. _r = haveIdenticalUnderlyingType(T, V, true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  9098. $s = -1; return _r;
  9099. /* */ } return; } if ($f === undefined) { $f = { $blk: directlyAssignable }; } $f.T = T; $f.V = V; $f._r = _r; $f.$s = $s; $f.$r = $r; return $f;
  9100. };
  9101. haveIdenticalType = function(T, V, cmpTags) {
  9102. var T, V, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _v, cmpTags, $s, $r;
  9103. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; T = $f.T; V = $f.V; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _v = $f._v; cmpTags = $f.cmpTags; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  9104. if (cmpTags) {
  9105. $s = -1; return $interfaceIsEqual(T, V);
  9106. }
  9107. _r = T.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  9108. _r$1 = V.Name(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  9109. if (!(_r === _r$1)) { _v = true; $s = 3; continue s; }
  9110. _r$2 = T.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  9111. _r$3 = V.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  9112. _v = !((_r$2 === _r$3)); case 3:
  9113. /* */ if (_v) { $s = 1; continue; }
  9114. /* */ $s = 2; continue;
  9115. /* if (_v) { */ case 1:
  9116. $s = -1; return false;
  9117. /* } */ case 2:
  9118. _r$4 = T.common(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  9119. _arg = _r$4;
  9120. _r$5 = V.common(); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  9121. _arg$1 = _r$5;
  9122. _r$6 = haveIdenticalUnderlyingType(_arg, _arg$1, false); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  9123. $s = -1; return _r$6;
  9124. /* */ } return; } if ($f === undefined) { $f = { $blk: haveIdenticalType }; } $f.T = T; $f.V = V; $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._v = _v; $f.cmpTags = cmpTags; $f.$s = $s; $f.$r = $r; return $f;
  9125. };
  9126. haveIdenticalUnderlyingType = function(T, V, cmpTags) {
  9127. var T, V, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _v, _v$1, _v$2, _v$3, cmpTags, i, i$1, i$2, kind, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1, $s, $r;
  9128. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; T = $f.T; V = $f.V; _1 = $f._1; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _ref = $f._ref; _v = $f._v; _v$1 = $f._v$1; _v$2 = $f._v$2; _v$3 = $f._v$3; cmpTags = $f.cmpTags; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; kind = $f.kind; t = $f.t; t$1 = $f.t$1; t$2 = $f.t$2; tf = $f.tf; v = $f.v; v$1 = $f.v$1; v$2 = $f.v$2; vf = $f.vf; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  9129. if (T === V) {
  9130. $s = -1; return true;
  9131. }
  9132. kind = T.Kind();
  9133. if (!((kind === V.Kind()))) {
  9134. $s = -1; return false;
  9135. }
  9136. if (1 <= kind && kind <= 16 || (kind === 24) || (kind === 26)) {
  9137. $s = -1; return true;
  9138. }
  9139. _1 = kind;
  9140. /* */ if (_1 === (17)) { $s = 2; continue; }
  9141. /* */ if (_1 === (18)) { $s = 3; continue; }
  9142. /* */ if (_1 === (19)) { $s = 4; continue; }
  9143. /* */ if (_1 === (20)) { $s = 5; continue; }
  9144. /* */ if (_1 === (21)) { $s = 6; continue; }
  9145. /* */ if ((_1 === (22)) || (_1 === (23))) { $s = 7; continue; }
  9146. /* */ if (_1 === (25)) { $s = 8; continue; }
  9147. /* */ $s = 9; continue;
  9148. /* if (_1 === (17)) { */ case 2:
  9149. if (!(T.Len() === V.Len())) { _v = false; $s = 10; continue s; }
  9150. _r = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  9151. _v = _r; case 10:
  9152. $s = -1; return _v;
  9153. /* } else if (_1 === (18)) { */ case 3:
  9154. if (!(V.ChanDir() === 3)) { _v$1 = false; $s = 14; continue s; }
  9155. _r$1 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  9156. _v$1 = _r$1; case 14:
  9157. /* */ if (_v$1) { $s = 12; continue; }
  9158. /* */ $s = 13; continue;
  9159. /* if (_v$1) { */ case 12:
  9160. $s = -1; return true;
  9161. /* } */ case 13:
  9162. if (!(V.ChanDir() === T.ChanDir())) { _v$2 = false; $s = 16; continue s; }
  9163. _r$2 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  9164. _v$2 = _r$2; case 16:
  9165. $s = -1; return _v$2;
  9166. /* } else if (_1 === (19)) { */ case 4:
  9167. t = (T.kindType);
  9168. v = (V.kindType);
  9169. if (!((t.outCount === v.outCount)) || !((t.inCount === v.inCount))) {
  9170. $s = -1; return false;
  9171. }
  9172. i = 0;
  9173. /* while (true) { */ case 18:
  9174. /* if (!(i < t.rtype.NumIn())) { break; } */ if(!(i < t.rtype.NumIn())) { $s = 19; continue; }
  9175. _r$3 = haveIdenticalType(t.rtype.In(i), v.rtype.In(i), cmpTags); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  9176. /* */ if (!_r$3) { $s = 20; continue; }
  9177. /* */ $s = 21; continue;
  9178. /* if (!_r$3) { */ case 20:
  9179. $s = -1; return false;
  9180. /* } */ case 21:
  9181. i = i + (1) >> 0;
  9182. /* } */ $s = 18; continue; case 19:
  9183. i$1 = 0;
  9184. /* while (true) { */ case 23:
  9185. /* if (!(i$1 < t.rtype.NumOut())) { break; } */ if(!(i$1 < t.rtype.NumOut())) { $s = 24; continue; }
  9186. _r$4 = haveIdenticalType(t.rtype.Out(i$1), v.rtype.Out(i$1), cmpTags); /* */ $s = 27; case 27: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  9187. /* */ if (!_r$4) { $s = 25; continue; }
  9188. /* */ $s = 26; continue;
  9189. /* if (!_r$4) { */ case 25:
  9190. $s = -1; return false;
  9191. /* } */ case 26:
  9192. i$1 = i$1 + (1) >> 0;
  9193. /* } */ $s = 23; continue; case 24:
  9194. $s = -1; return true;
  9195. /* } else if (_1 === (20)) { */ case 5:
  9196. t$1 = (T.kindType);
  9197. v$1 = (V.kindType);
  9198. if ((t$1.methods.$length === 0) && (v$1.methods.$length === 0)) {
  9199. $s = -1; return true;
  9200. }
  9201. $s = -1; return false;
  9202. /* } else if (_1 === (21)) { */ case 6:
  9203. _r$5 = haveIdenticalType(T.Key(), V.Key(), cmpTags); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  9204. if (!(_r$5)) { _v$3 = false; $s = 28; continue s; }
  9205. _r$6 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  9206. _v$3 = _r$6; case 28:
  9207. $s = -1; return _v$3;
  9208. /* } else if ((_1 === (22)) || (_1 === (23))) { */ case 7:
  9209. _r$7 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 31; case 31: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
  9210. $s = -1; return _r$7;
  9211. /* } else if (_1 === (25)) { */ case 8:
  9212. t$2 = (T.kindType);
  9213. v$2 = (V.kindType);
  9214. if (!((t$2.fields.$length === v$2.fields.$length))) {
  9215. $s = -1; return false;
  9216. }
  9217. if (!($clone(t$2.pkgPath, name).name() === $clone(v$2.pkgPath, name).name())) {
  9218. $s = -1; return false;
  9219. }
  9220. _ref = t$2.fields;
  9221. _i = 0;
  9222. /* while (true) { */ case 32:
  9223. /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 33; continue; }
  9224. i$2 = _i;
  9225. tf = (x = t$2.fields, ((i$2 < 0 || i$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$2]));
  9226. vf = (x$1 = v$2.fields, ((i$2 < 0 || i$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$2]));
  9227. if (!($clone(tf.name, name).name() === $clone(vf.name, name).name())) {
  9228. $s = -1; return false;
  9229. }
  9230. _r$8 = haveIdenticalType(tf.typ, vf.typ, cmpTags); /* */ $s = 36; case 36: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
  9231. /* */ if (!_r$8) { $s = 34; continue; }
  9232. /* */ $s = 35; continue;
  9233. /* if (!_r$8) { */ case 34:
  9234. $s = -1; return false;
  9235. /* } */ case 35:
  9236. if (cmpTags && !($clone(tf.name, name).tag() === $clone(vf.name, name).tag())) {
  9237. $s = -1; return false;
  9238. }
  9239. if (!((tf.offsetEmbed === vf.offsetEmbed))) {
  9240. $s = -1; return false;
  9241. }
  9242. _i++;
  9243. /* } */ $s = 32; continue; case 33:
  9244. $s = -1; return true;
  9245. /* } */ case 9:
  9246. case 1:
  9247. $s = -1; return false;
  9248. /* */ } return; } if ($f === undefined) { $f = { $blk: haveIdenticalUnderlyingType }; } $f.T = T; $f.V = V; $f._1 = _1; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._ref = _ref; $f._v = _v; $f._v$1 = _v$1; $f._v$2 = _v$2; $f._v$3 = _v$3; $f.cmpTags = cmpTags; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.kind = kind; $f.t = t; $f.t$1 = t$1; $f.t$2 = t$2; $f.tf = tf; $f.v = v; $f.v$1 = v$1; $f.v$2 = v$2; $f.vf = vf; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f;
  9249. };
  9250. toType = function(t) {
  9251. var t;
  9252. if (t === ptrType$1.nil) {
  9253. return $ifaceNil;
  9254. }
  9255. return t;
  9256. };
  9257. ifaceIndir = function(t) {
  9258. var t;
  9259. return ((t.kind & 32) >>> 0) === 0;
  9260. };
  9261. flag.prototype.kind = function() {
  9262. var f;
  9263. f = this.$val;
  9264. return ((((f & 31) >>> 0) >>> 0));
  9265. };
  9266. $ptrType(flag).prototype.kind = function() { return new flag(this.$get()).kind(); };
  9267. flag.prototype.ro = function() {
  9268. var f;
  9269. f = this.$val;
  9270. if (!((((f & 96) >>> 0) === 0))) {
  9271. return 32;
  9272. }
  9273. return 0;
  9274. };
  9275. $ptrType(flag).prototype.ro = function() { return new flag(this.$get()).ro(); };
  9276. Value.ptr.prototype.pointer = function() {
  9277. var v;
  9278. v = this;
  9279. if (!((v.typ.size === 4)) || !v.typ.pointers()) {
  9280. $panic(new $String("can't call pointer on a non-pointer Value"));
  9281. }
  9282. if (!((((v.flag & 128) >>> 0) === 0))) {
  9283. return (v.ptr).$get();
  9284. }
  9285. return v.ptr;
  9286. };
  9287. Value.prototype.pointer = function() { return this.$val.pointer(); };
  9288. ValueError.ptr.prototype.Error = function() {
  9289. var e;
  9290. e = this;
  9291. if (e.Kind === 0) {
  9292. return "reflect: call of " + e.Method + " on zero Value";
  9293. }
  9294. return "reflect: call of " + e.Method + " on " + new Kind(e.Kind).String() + " Value";
  9295. };
  9296. ValueError.prototype.Error = function() { return this.$val.Error(); };
  9297. flag.prototype.mustBe = function(expected) {
  9298. var expected, f;
  9299. f = this.$val;
  9300. if (!((new flag(f).kind() === expected))) {
  9301. $panic(new ValueError.ptr(methodName(), new flag(f).kind()));
  9302. }
  9303. };
  9304. $ptrType(flag).prototype.mustBe = function(expected) { return new flag(this.$get()).mustBe(expected); };
  9305. flag.prototype.mustBeExported = function() {
  9306. var f;
  9307. f = this.$val;
  9308. if (f === 0) {
  9309. $panic(new ValueError.ptr(methodName(), 0));
  9310. }
  9311. if (!((((f & 96) >>> 0) === 0))) {
  9312. $panic(new $String("reflect: " + methodName() + " using value obtained using unexported field"));
  9313. }
  9314. };
  9315. $ptrType(flag).prototype.mustBeExported = function() { return new flag(this.$get()).mustBeExported(); };
  9316. flag.prototype.mustBeAssignable = function() {
  9317. var f;
  9318. f = this.$val;
  9319. if (f === 0) {
  9320. $panic(new ValueError.ptr(methodName(), 0));
  9321. }
  9322. if (!((((f & 96) >>> 0) === 0))) {
  9323. $panic(new $String("reflect: " + methodName() + " using value obtained using unexported field"));
  9324. }
  9325. if (((f & 256) >>> 0) === 0) {
  9326. $panic(new $String("reflect: " + methodName() + " using unaddressable value"));
  9327. }
  9328. };
  9329. $ptrType(flag).prototype.mustBeAssignable = function() { return new flag(this.$get()).mustBeAssignable(); };
  9330. Value.ptr.prototype.Addr = function() {
  9331. var v;
  9332. v = this;
  9333. if (((v.flag & 256) >>> 0) === 0) {
  9334. $panic(new $String("reflect.Value.Addr of unaddressable value"));
  9335. }
  9336. return new Value.ptr(v.typ.ptrTo(), v.ptr, (new flag(v.flag).ro() | 22) >>> 0);
  9337. };
  9338. Value.prototype.Addr = function() { return this.$val.Addr(); };
  9339. Value.ptr.prototype.Bool = function() {
  9340. var v;
  9341. v = this;
  9342. new flag(v.flag).mustBe(1);
  9343. return (v.ptr).$get();
  9344. };
  9345. Value.prototype.Bool = function() { return this.$val.Bool(); };
  9346. Value.ptr.prototype.Bytes = function() {
  9347. var _r, v, $s, $r;
  9348. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  9349. v = this;
  9350. new flag(v.flag).mustBe(23);
  9351. _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  9352. /* */ if (!((_r === 8))) { $s = 1; continue; }
  9353. /* */ $s = 2; continue;
  9354. /* if (!((_r === 8))) { */ case 1:
  9355. $panic(new $String("reflect.Value.Bytes of non-byte slice"));
  9356. /* } */ case 2:
  9357. $s = -1; return (v.ptr).$get();
  9358. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Bytes }; } $f._r = _r; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  9359. };
  9360. Value.prototype.Bytes = function() { return this.$val.Bytes(); };
  9361. Value.ptr.prototype.runes = function() {
  9362. var _r, v, $s, $r;
  9363. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  9364. v = this;
  9365. new flag(v.flag).mustBe(23);
  9366. _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  9367. /* */ if (!((_r === 5))) { $s = 1; continue; }
  9368. /* */ $s = 2; continue;
  9369. /* if (!((_r === 5))) { */ case 1:
  9370. $panic(new $String("reflect.Value.Bytes of non-rune slice"));
  9371. /* } */ case 2:
  9372. $s = -1; return (v.ptr).$get();
  9373. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.runes }; } $f._r = _r; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  9374. };
  9375. Value.prototype.runes = function() { return this.$val.runes(); };
  9376. Value.ptr.prototype.CanAddr = function() {
  9377. var v;
  9378. v = this;
  9379. return !((((v.flag & 256) >>> 0) === 0));
  9380. };
  9381. Value.prototype.CanAddr = function() { return this.$val.CanAddr(); };
  9382. Value.ptr.prototype.CanSet = function() {
  9383. var v;
  9384. v = this;
  9385. return ((v.flag & 352) >>> 0) === 256;
  9386. };
  9387. Value.prototype.CanSet = function() { return this.$val.CanSet(); };
  9388. Value.ptr.prototype.Call = function(in$1) {
  9389. var _r, in$1, v, $s, $r;
  9390. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; in$1 = $f.in$1; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  9391. v = this;
  9392. new flag(v.flag).mustBe(19);
  9393. new flag(v.flag).mustBeExported();
  9394. _r = $clone(v, Value).call("Call", in$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  9395. $s = -1; return _r;
  9396. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Call }; } $f._r = _r; $f.in$1 = in$1; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  9397. };
  9398. Value.prototype.Call = function(in$1) { return this.$val.Call(in$1); };
  9399. Value.ptr.prototype.CallSlice = function(in$1) {
  9400. var _r, in$1, v, $s, $r;
  9401. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; in$1 = $f.in$1; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  9402. v = this;
  9403. new flag(v.flag).mustBe(19);
  9404. new flag(v.flag).mustBeExported();
  9405. _r = $clone(v, Value).call("CallSlice", in$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  9406. $s = -1; return _r;
  9407. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.CallSlice }; } $f._r = _r; $f.in$1 = in$1; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  9408. };
  9409. Value.prototype.CallSlice = function(in$1) { return this.$val.CallSlice(in$1); };
  9410. Value.ptr.prototype.Complex = function() {
  9411. var _1, k, v, x;
  9412. v = this;
  9413. k = new flag(v.flag).kind();
  9414. _1 = k;
  9415. if (_1 === (15)) {
  9416. return ((x = (v.ptr).$get(), new $Complex128(x.$real, x.$imag)));
  9417. } else if (_1 === (16)) {
  9418. return (v.ptr).$get();
  9419. }
  9420. $panic(new ValueError.ptr("reflect.Value.Complex", new flag(v.flag).kind()));
  9421. };
  9422. Value.prototype.Complex = function() { return this.$val.Complex(); };
  9423. Value.ptr.prototype.FieldByIndex = function(index) {
  9424. var _i, _r, _r$1, _r$2, _r$3, _ref, _v, i, index, v, x, $s, $r;
  9425. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _ref = $f._ref; _v = $f._v; i = $f.i; index = $f.index; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  9426. v = this;
  9427. /* */ if (index.$length === 1) { $s = 1; continue; }
  9428. /* */ $s = 2; continue;
  9429. /* if (index.$length === 1) { */ case 1:
  9430. _r = $clone(v, Value).Field((0 >= index.$length ? ($throwRuntimeError("index out of range"), undefined) : index.$array[index.$offset + 0])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  9431. $s = -1; return _r;
  9432. /* } */ case 2:
  9433. new flag(v.flag).mustBe(25);
  9434. _ref = index;
  9435. _i = 0;
  9436. /* while (true) { */ case 4:
  9437. /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; }
  9438. i = _i;
  9439. x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  9440. /* */ if (i > 0) { $s = 6; continue; }
  9441. /* */ $s = 7; continue;
  9442. /* if (i > 0) { */ case 6:
  9443. if (!($clone(v, Value).Kind() === 22)) { _v = false; $s = 10; continue s; }
  9444. _r$1 = v.typ.Elem().Kind(); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  9445. _v = _r$1 === 25; case 10:
  9446. /* */ if (_v) { $s = 8; continue; }
  9447. /* */ $s = 9; continue;
  9448. /* if (_v) { */ case 8:
  9449. if ($clone(v, Value).IsNil()) {
  9450. $panic(new $String("reflect: indirection through nil pointer to embedded struct"));
  9451. }
  9452. _r$2 = $clone(v, Value).Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  9453. v = _r$2;
  9454. /* } */ case 9:
  9455. /* } */ case 7:
  9456. _r$3 = $clone(v, Value).Field(x); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  9457. v = _r$3;
  9458. _i++;
  9459. /* } */ $s = 4; continue; case 5:
  9460. $s = -1; return v;
  9461. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.FieldByIndex }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._ref = _ref; $f._v = _v; $f.i = i; $f.index = index; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  9462. };
  9463. Value.prototype.FieldByIndex = function(index) { return this.$val.FieldByIndex(index); };
  9464. Value.ptr.prototype.FieldByName = function(name$1) {
  9465. var _r, _r$1, _tuple, f, name$1, ok, v, $s, $r;
  9466. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; f = $f.f; name$1 = $f.name$1; ok = $f.ok; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  9467. v = this;
  9468. new flag(v.flag).mustBe(25);
  9469. _r = v.typ.FieldByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  9470. _tuple = _r;
  9471. f = $clone(_tuple[0], StructField);
  9472. ok = _tuple[1];
  9473. /* */ if (ok) { $s = 2; continue; }
  9474. /* */ $s = 3; continue;
  9475. /* if (ok) { */ case 2:
  9476. _r$1 = $clone(v, Value).FieldByIndex(f.Index); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  9477. $s = -1; return _r$1;
  9478. /* } */ case 3:
  9479. $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
  9480. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.FieldByName }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.f = f; $f.name$1 = name$1; $f.ok = ok; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  9481. };
  9482. Value.prototype.FieldByName = function(name$1) { return this.$val.FieldByName(name$1); };
  9483. Value.ptr.prototype.FieldByNameFunc = function(match) {
  9484. var _r, _r$1, _tuple, f, match, ok, v, $s, $r;
  9485. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; f = $f.f; match = $f.match; ok = $f.ok; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  9486. v = this;
  9487. _r = v.typ.FieldByNameFunc(match); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  9488. _tuple = _r;
  9489. f = $clone(_tuple[0], StructField);
  9490. ok = _tuple[1];
  9491. /* */ if (ok) { $s = 2; continue; }
  9492. /* */ $s = 3; continue;
  9493. /* if (ok) { */ case 2:
  9494. _r$1 = $clone(v, Value).FieldByIndex(f.Index); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  9495. $s = -1; return _r$1;
  9496. /* } */ case 3:
  9497. $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
  9498. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.FieldByNameFunc }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.f = f; $f.match = match; $f.ok = ok; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  9499. };
  9500. Value.prototype.FieldByNameFunc = function(match) { return this.$val.FieldByNameFunc(match); };
  9501. Value.ptr.prototype.Float = function() {
  9502. var _1, k, v;
  9503. v = this;
  9504. k = new flag(v.flag).kind();
  9505. _1 = k;
  9506. if (_1 === (13)) {
  9507. return ((v.ptr).$get());
  9508. } else if (_1 === (14)) {
  9509. return (v.ptr).$get();
  9510. }
  9511. $panic(new ValueError.ptr("reflect.Value.Float", new flag(v.flag).kind()));
  9512. };
  9513. Value.prototype.Float = function() { return this.$val.Float(); };
  9514. Value.ptr.prototype.Int = function() {
  9515. var _1, k, p, v;
  9516. v = this;
  9517. k = new flag(v.flag).kind();
  9518. p = v.ptr;
  9519. _1 = k;
  9520. if (_1 === (2)) {
  9521. return (new $Int64(0, (p).$get()));
  9522. } else if (_1 === (3)) {
  9523. return (new $Int64(0, (p).$get()));
  9524. } else if (_1 === (4)) {
  9525. return (new $Int64(0, (p).$get()));
  9526. } else if (_1 === (5)) {
  9527. return (new $Int64(0, (p).$get()));
  9528. } else if (_1 === (6)) {
  9529. return (p).$get();
  9530. }
  9531. $panic(new ValueError.ptr("reflect.Value.Int", new flag(v.flag).kind()));
  9532. };
  9533. Value.prototype.Int = function() { return this.$val.Int(); };
  9534. Value.ptr.prototype.CanInterface = function() {
  9535. var v;
  9536. v = this;
  9537. if (v.flag === 0) {
  9538. $panic(new ValueError.ptr("reflect.Value.CanInterface", 0));
  9539. }
  9540. return ((v.flag & 96) >>> 0) === 0;
  9541. };
  9542. Value.prototype.CanInterface = function() { return this.$val.CanInterface(); };
  9543. Value.ptr.prototype.Interface = function() {
  9544. var _r, i, v, $s, $r;
  9545. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; i = $f.i; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  9546. i = $ifaceNil;
  9547. v = this;
  9548. _r = valueInterface($clone(v, Value), true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  9549. i = _r;
  9550. $s = -1; return i;
  9551. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Interface }; } $f._r = _r; $f.i = i; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  9552. };
  9553. Value.prototype.Interface = function() { return this.$val.Interface(); };
  9554. Value.ptr.prototype.IsValid = function() {
  9555. var v;
  9556. v = this;
  9557. return !((v.flag === 0));
  9558. };
  9559. Value.prototype.IsValid = function() { return this.$val.IsValid(); };
  9560. Value.ptr.prototype.Kind = function() {
  9561. var v;
  9562. v = this;
  9563. return new flag(v.flag).kind();
  9564. };
  9565. Value.prototype.Kind = function() { return this.$val.Kind(); };
  9566. Value.ptr.prototype.MapIndex = function(key) {
  9567. var _r, e, fl, k, key, tt, typ, v, $s, $r;
  9568. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; fl = $f.fl; k = $f.k; key = $f.key; tt = $f.tt; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  9569. v = this;
  9570. new flag(v.flag).mustBe(21);
  9571. tt = (v.typ.kindType);
  9572. _r = $clone(key, Value).assignTo("reflect.Value.MapIndex", tt.key, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  9573. key = _r;
  9574. k = 0;
  9575. if (!((((key.flag & 128) >>> 0) === 0))) {
  9576. k = key.ptr;
  9577. } else {
  9578. k = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$17(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key))));
  9579. }
  9580. e = mapaccess(v.typ, $clone(v, Value).pointer(), k);
  9581. if (e === 0) {
  9582. $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
  9583. }
  9584. typ = tt.elem;
  9585. fl = new flag((((v.flag | key.flag) >>> 0))).ro();
  9586. fl = (fl | (((typ.Kind() >>> 0)))) >>> 0;
  9587. $s = -1; return copyVal(typ, fl, e);
  9588. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.MapIndex }; } $f._r = _r; $f.e = e; $f.fl = fl; $f.k = k; $f.key = key; $f.tt = tt; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  9589. };
  9590. Value.prototype.MapIndex = function(key) { return this.$val.MapIndex(key); };
  9591. Value.ptr.prototype.MapKeys = function() {
  9592. var _r, a, fl, i, it, key, keyType, m, mlen, tt, v, $s, $r;
  9593. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; fl = $f.fl; i = $f.i; it = $f.it; key = $f.key; keyType = $f.keyType; m = $f.m; mlen = $f.mlen; tt = $f.tt; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  9594. v = this;
  9595. new flag(v.flag).mustBe(21);
  9596. tt = (v.typ.kindType);
  9597. keyType = tt.key;
  9598. fl = (new flag(v.flag).ro() | ((keyType.Kind() >>> 0))) >>> 0;
  9599. m = $clone(v, Value).pointer();
  9600. mlen = 0;
  9601. if (!(m === 0)) {
  9602. mlen = maplen(m);
  9603. }
  9604. it = mapiterinit(v.typ, m);
  9605. a = $makeSlice(sliceType$9, mlen);
  9606. i = 0;
  9607. i = 0;
  9608. /* while (true) { */ case 1:
  9609. /* if (!(i < a.$length)) { break; } */ if(!(i < a.$length)) { $s = 2; continue; }
  9610. _r = mapiterkey(it); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  9611. key = _r;
  9612. if (key === 0) {
  9613. /* break; */ $s = 2; continue;
  9614. }
  9615. ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = copyVal(keyType, fl, key));
  9616. mapiternext(it);
  9617. i = i + (1) >> 0;
  9618. /* } */ $s = 1; continue; case 2:
  9619. $s = -1; return $subslice(a, 0, i);
  9620. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.MapKeys }; } $f._r = _r; $f.a = a; $f.fl = fl; $f.i = i; $f.it = it; $f.key = key; $f.keyType = keyType; $f.m = m; $f.mlen = mlen; $f.tt = tt; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  9621. };
  9622. Value.prototype.MapKeys = function() { return this.$val.MapKeys(); };
  9623. MapIter.ptr.prototype.Key = function() {
  9624. var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, it, ktype, t, $s, $r;
  9625. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; it = $f.it; ktype = $f.ktype; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  9626. it = this;
  9627. if (it.it === 0) {
  9628. $panic(new $String("MapIter.Key called before Next"));
  9629. }
  9630. _r = mapiterkey(it.it); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  9631. /* */ if (_r === 0) { $s = 1; continue; }
  9632. /* */ $s = 2; continue;
  9633. /* if (_r === 0) { */ case 1:
  9634. $panic(new $String("MapIter.Key called on exhausted iterator"));
  9635. /* } */ case 2:
  9636. t = (it.m.typ.kindType);
  9637. ktype = t.key;
  9638. _arg = ktype;
  9639. _arg$1 = (new flag(it.m.flag).ro() | ((ktype.Kind() >>> 0))) >>> 0;
  9640. _r$1 = mapiterkey(it.it); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  9641. _arg$2 = _r$1;
  9642. _r$2 = copyVal(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  9643. $s = -1; return _r$2;
  9644. /* */ } return; } if ($f === undefined) { $f = { $blk: MapIter.ptr.prototype.Key }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.it = it; $f.ktype = ktype; $f.t = t; $f.$s = $s; $f.$r = $r; return $f;
  9645. };
  9646. MapIter.prototype.Key = function() { return this.$val.Key(); };
  9647. MapIter.ptr.prototype.Value = function() {
  9648. var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, it, t, vtype, $s, $r;
  9649. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; it = $f.it; t = $f.t; vtype = $f.vtype; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  9650. it = this;
  9651. if (it.it === 0) {
  9652. $panic(new $String("MapIter.Value called before Next"));
  9653. }
  9654. _r = mapiterkey(it.it); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  9655. /* */ if (_r === 0) { $s = 1; continue; }
  9656. /* */ $s = 2; continue;
  9657. /* if (_r === 0) { */ case 1:
  9658. $panic(new $String("MapIter.Value called on exhausted iterator"));
  9659. /* } */ case 2:
  9660. t = (it.m.typ.kindType);
  9661. vtype = t.elem;
  9662. _arg = vtype;
  9663. _arg$1 = (new flag(it.m.flag).ro() | ((vtype.Kind() >>> 0))) >>> 0;
  9664. _r$1 = mapitervalue(it.it); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  9665. _arg$2 = _r$1;
  9666. _r$2 = copyVal(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  9667. $s = -1; return _r$2;
  9668. /* */ } return; } if ($f === undefined) { $f = { $blk: MapIter.ptr.prototype.Value }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.it = it; $f.t = t; $f.vtype = vtype; $f.$s = $s; $f.$r = $r; return $f;
  9669. };
  9670. MapIter.prototype.Value = function() { return this.$val.Value(); };
  9671. MapIter.ptr.prototype.Next = function() {
  9672. var _r, _r$1, it, $s, $r;
  9673. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; it = $f.it; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  9674. it = this;
  9675. /* */ if (it.it === 0) { $s = 1; continue; }
  9676. /* */ $s = 2; continue;
  9677. /* if (it.it === 0) { */ case 1:
  9678. it.it = mapiterinit(it.m.typ, $clone(it.m, Value).pointer());
  9679. $s = 3; continue;
  9680. /* } else { */ case 2:
  9681. _r = mapiterkey(it.it); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  9682. /* */ if (_r === 0) { $s = 4; continue; }
  9683. /* */ $s = 5; continue;
  9684. /* if (_r === 0) { */ case 4:
  9685. $panic(new $String("MapIter.Next called on exhausted iterator"));
  9686. /* } */ case 5:
  9687. mapiternext(it.it);
  9688. /* } */ case 3:
  9689. _r$1 = mapiterkey(it.it); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  9690. $s = -1; return !(_r$1 === 0);
  9691. /* */ } return; } if ($f === undefined) { $f = { $blk: MapIter.ptr.prototype.Next }; } $f._r = _r; $f._r$1 = _r$1; $f.it = it; $f.$s = $s; $f.$r = $r; return $f;
  9692. };
  9693. MapIter.prototype.Next = function() { return this.$val.Next(); };
  9694. Value.ptr.prototype.MapRange = function() {
  9695. var v;
  9696. v = this;
  9697. new flag(v.flag).mustBe(21);
  9698. return new MapIter.ptr($clone(v, Value), 0);
  9699. };
  9700. Value.prototype.MapRange = function() { return this.$val.MapRange(); };
  9701. copyVal = function(typ, fl, ptr) {
  9702. var c, fl, ptr, typ;
  9703. if (ifaceIndir(typ)) {
  9704. c = unsafe_New(typ);
  9705. typedmemmove(typ, c, ptr);
  9706. return new Value.ptr(typ, c, (fl | 128) >>> 0);
  9707. }
  9708. return new Value.ptr(typ, (ptr).$get(), fl);
  9709. };
  9710. Value.ptr.prototype.Method = function(i) {
  9711. var fl, i, v;
  9712. v = this;
  9713. if (v.typ === ptrType$1.nil) {
  9714. $panic(new ValueError.ptr("reflect.Value.Method", 0));
  9715. }
  9716. if (!((((v.flag & 512) >>> 0) === 0)) || ((i >>> 0)) >= ((v.typ.NumMethod() >>> 0))) {
  9717. $panic(new $String("reflect: Method index out of range"));
  9718. }
  9719. if ((v.typ.Kind() === 20) && $clone(v, Value).IsNil()) {
  9720. $panic(new $String("reflect: Method on nil interface value"));
  9721. }
  9722. fl = (v.flag & 160) >>> 0;
  9723. fl = (fl | (19)) >>> 0;
  9724. fl = (fl | ((((((i >>> 0)) << 10 >>> 0) | 512) >>> 0))) >>> 0;
  9725. return new Value.ptr(v.typ, v.ptr, fl);
  9726. };
  9727. Value.prototype.Method = function(i) { return this.$val.Method(i); };
  9728. Value.ptr.prototype.NumMethod = function() {
  9729. var v;
  9730. v = this;
  9731. if (v.typ === ptrType$1.nil) {
  9732. $panic(new ValueError.ptr("reflect.Value.NumMethod", 0));
  9733. }
  9734. if (!((((v.flag & 512) >>> 0) === 0))) {
  9735. return 0;
  9736. }
  9737. return v.typ.NumMethod();
  9738. };
  9739. Value.prototype.NumMethod = function() { return this.$val.NumMethod(); };
  9740. Value.ptr.prototype.MethodByName = function(name$1) {
  9741. var _r, _tuple, m, name$1, ok, v, $s, $r;
  9742. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; m = $f.m; name$1 = $f.name$1; ok = $f.ok; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  9743. v = this;
  9744. if (v.typ === ptrType$1.nil) {
  9745. $panic(new ValueError.ptr("reflect.Value.MethodByName", 0));
  9746. }
  9747. if (!((((v.flag & 512) >>> 0) === 0))) {
  9748. $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
  9749. }
  9750. _r = v.typ.MethodByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  9751. _tuple = _r;
  9752. m = $clone(_tuple[0], Method);
  9753. ok = _tuple[1];
  9754. if (!ok) {
  9755. $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
  9756. }
  9757. $s = -1; return $clone(v, Value).Method(m.Index);
  9758. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.MethodByName }; } $f._r = _r; $f._tuple = _tuple; $f.m = m; $f.name$1 = name$1; $f.ok = ok; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  9759. };
  9760. Value.prototype.MethodByName = function(name$1) { return this.$val.MethodByName(name$1); };
  9761. Value.ptr.prototype.NumField = function() {
  9762. var tt, v;
  9763. v = this;
  9764. new flag(v.flag).mustBe(25);
  9765. tt = (v.typ.kindType);
  9766. return tt.fields.$length;
  9767. };
  9768. Value.prototype.NumField = function() { return this.$val.NumField(); };
  9769. Value.ptr.prototype.OverflowComplex = function(x) {
  9770. var _1, k, v, x;
  9771. v = this;
  9772. k = new flag(v.flag).kind();
  9773. _1 = k;
  9774. if (_1 === (15)) {
  9775. return overflowFloat32(x.$real) || overflowFloat32(x.$imag);
  9776. } else if (_1 === (16)) {
  9777. return false;
  9778. }
  9779. $panic(new ValueError.ptr("reflect.Value.OverflowComplex", new flag(v.flag).kind()));
  9780. };
  9781. Value.prototype.OverflowComplex = function(x) { return this.$val.OverflowComplex(x); };
  9782. Value.ptr.prototype.OverflowFloat = function(x) {
  9783. var _1, k, v, x;
  9784. v = this;
  9785. k = new flag(v.flag).kind();
  9786. _1 = k;
  9787. if (_1 === (13)) {
  9788. return overflowFloat32(x);
  9789. } else if (_1 === (14)) {
  9790. return false;
  9791. }
  9792. $panic(new ValueError.ptr("reflect.Value.OverflowFloat", new flag(v.flag).kind()));
  9793. };
  9794. Value.prototype.OverflowFloat = function(x) { return this.$val.OverflowFloat(x); };
  9795. overflowFloat32 = function(x) {
  9796. var x;
  9797. if (x < 0) {
  9798. x = -x;
  9799. }
  9800. return 3.4028234663852886e+38 < x && x <= 1.7976931348623157e+308;
  9801. };
  9802. Value.ptr.prototype.OverflowInt = function(x) {
  9803. var _1, bitSize, k, trunc, v, x;
  9804. v = this;
  9805. k = new flag(v.flag).kind();
  9806. _1 = k;
  9807. if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) {
  9808. bitSize = $imul(v.typ.size, 8) >>> 0;
  9809. trunc = $shiftRightInt64(($shiftLeft64(x, ((64 - bitSize >>> 0)))), ((64 - bitSize >>> 0)));
  9810. return !((x.$high === trunc.$high && x.$low === trunc.$low));
  9811. }
  9812. $panic(new ValueError.ptr("reflect.Value.OverflowInt", new flag(v.flag).kind()));
  9813. };
  9814. Value.prototype.OverflowInt = function(x) { return this.$val.OverflowInt(x); };
  9815. Value.ptr.prototype.OverflowUint = function(x) {
  9816. var _1, bitSize, k, trunc, v, x;
  9817. v = this;
  9818. k = new flag(v.flag).kind();
  9819. _1 = k;
  9820. if ((_1 === (7)) || (_1 === (12)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11))) {
  9821. bitSize = $imul(v.typ.size, 8) >>> 0;
  9822. trunc = $shiftRightUint64(($shiftLeft64(x, ((64 - bitSize >>> 0)))), ((64 - bitSize >>> 0)));
  9823. return !((x.$high === trunc.$high && x.$low === trunc.$low));
  9824. }
  9825. $panic(new ValueError.ptr("reflect.Value.OverflowUint", new flag(v.flag).kind()));
  9826. };
  9827. Value.prototype.OverflowUint = function(x) { return this.$val.OverflowUint(x); };
  9828. Value.ptr.prototype.Recv = function() {
  9829. var _r, _tuple, ok, v, x, $s, $r;
  9830. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; ok = $f.ok; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  9831. x = new Value.ptr(ptrType$1.nil, 0, 0);
  9832. ok = false;
  9833. v = this;
  9834. new flag(v.flag).mustBe(18);
  9835. new flag(v.flag).mustBeExported();
  9836. _r = $clone(v, Value).recv(false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  9837. _tuple = _r;
  9838. x = _tuple[0];
  9839. ok = _tuple[1];
  9840. $s = -1; return [x, ok];
  9841. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Recv }; } $f._r = _r; $f._tuple = _tuple; $f.ok = ok; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  9842. };
  9843. Value.prototype.Recv = function() { return this.$val.Recv(); };
  9844. Value.ptr.prototype.recv = function(nb) {
  9845. var _r, _tuple, nb, ok, p, selected, t, tt, v, val, $s, $r;
  9846. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; nb = $f.nb; ok = $f.ok; p = $f.p; selected = $f.selected; t = $f.t; tt = $f.tt; v = $f.v; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  9847. val = new Value.ptr(ptrType$1.nil, 0, 0);
  9848. ok = false;
  9849. v = this;
  9850. tt = (v.typ.kindType);
  9851. if ((((tt.dir >> 0)) & 1) === 0) {
  9852. $panic(new $String("reflect: recv on send-only channel"));
  9853. }
  9854. t = tt.elem;
  9855. val = new Value.ptr(t, 0, ((t.Kind() >>> 0)));
  9856. p = 0;
  9857. if (ifaceIndir(t)) {
  9858. p = unsafe_New(t);
  9859. val.ptr = p;
  9860. val.flag = (val.flag | (128)) >>> 0;
  9861. } else {
  9862. p = ((val.$ptr_ptr || (val.$ptr_ptr = new ptrType$17(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, val))));
  9863. }
  9864. _r = chanrecv($clone(v, Value).pointer(), nb, p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  9865. _tuple = _r;
  9866. selected = _tuple[0];
  9867. ok = _tuple[1];
  9868. if (!selected) {
  9869. val = new Value.ptr(ptrType$1.nil, 0, 0);
  9870. }
  9871. $s = -1; return [val, ok];
  9872. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.recv }; } $f._r = _r; $f._tuple = _tuple; $f.nb = nb; $f.ok = ok; $f.p = p; $f.selected = selected; $f.t = t; $f.tt = tt; $f.v = v; $f.val = val; $f.$s = $s; $f.$r = $r; return $f;
  9873. };
  9874. Value.prototype.recv = function(nb) { return this.$val.recv(nb); };
  9875. Value.ptr.prototype.Send = function(x) {
  9876. var _r, v, x, $s, $r;
  9877. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  9878. v = this;
  9879. new flag(v.flag).mustBe(18);
  9880. new flag(v.flag).mustBeExported();
  9881. _r = $clone(v, Value).send($clone(x, Value), false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  9882. _r;
  9883. $s = -1; return;
  9884. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Send }; } $f._r = _r; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  9885. };
  9886. Value.prototype.Send = function(x) { return this.$val.Send(x); };
  9887. Value.ptr.prototype.send = function(x, nb) {
  9888. var _r, _r$1, nb, p, selected, tt, v, x, $s, $r;
  9889. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; nb = $f.nb; p = $f.p; selected = $f.selected; tt = $f.tt; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  9890. selected = false;
  9891. v = this;
  9892. tt = (v.typ.kindType);
  9893. if ((((tt.dir >> 0)) & 2) === 0) {
  9894. $panic(new $String("reflect: send on recv-only channel"));
  9895. }
  9896. new flag(x.flag).mustBeExported();
  9897. _r = $clone(x, Value).assignTo("reflect.Value.Send", tt.elem, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  9898. x = _r;
  9899. p = 0;
  9900. if (!((((x.flag & 128) >>> 0) === 0))) {
  9901. p = x.ptr;
  9902. } else {
  9903. p = ((x.$ptr_ptr || (x.$ptr_ptr = new ptrType$17(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, x))));
  9904. }
  9905. _r$1 = chansend($clone(v, Value).pointer(), p, nb); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  9906. selected = _r$1;
  9907. $s = -1; return selected;
  9908. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.send }; } $f._r = _r; $f._r$1 = _r$1; $f.nb = nb; $f.p = p; $f.selected = selected; $f.tt = tt; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  9909. };
  9910. Value.prototype.send = function(x, nb) { return this.$val.send(x, nb); };
  9911. Value.ptr.prototype.SetBool = function(x) {
  9912. var v, x;
  9913. v = this;
  9914. new flag(v.flag).mustBeAssignable();
  9915. new flag(v.flag).mustBe(1);
  9916. (v.ptr).$set(x);
  9917. };
  9918. Value.prototype.SetBool = function(x) { return this.$val.SetBool(x); };
  9919. Value.ptr.prototype.setRunes = function(x) {
  9920. var _r, v, x, $s, $r;
  9921. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  9922. v = this;
  9923. new flag(v.flag).mustBeAssignable();
  9924. new flag(v.flag).mustBe(23);
  9925. _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  9926. /* */ if (!((_r === 5))) { $s = 1; continue; }
  9927. /* */ $s = 2; continue;
  9928. /* if (!((_r === 5))) { */ case 1:
  9929. $panic(new $String("reflect.Value.setRunes of non-rune slice"));
  9930. /* } */ case 2:
  9931. (v.ptr).$set(x);
  9932. $s = -1; return;
  9933. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.setRunes }; } $f._r = _r; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  9934. };
  9935. Value.prototype.setRunes = function(x) { return this.$val.setRunes(x); };
  9936. Value.ptr.prototype.SetComplex = function(x) {
  9937. var _1, k, v, x;
  9938. v = this;
  9939. new flag(v.flag).mustBeAssignable();
  9940. k = new flag(v.flag).kind();
  9941. _1 = k;
  9942. if (_1 === (15)) {
  9943. (v.ptr).$set((new $Complex64(x.$real, x.$imag)));
  9944. } else if (_1 === (16)) {
  9945. (v.ptr).$set(x);
  9946. } else {
  9947. $panic(new ValueError.ptr("reflect.Value.SetComplex", new flag(v.flag).kind()));
  9948. }
  9949. };
  9950. Value.prototype.SetComplex = function(x) { return this.$val.SetComplex(x); };
  9951. Value.ptr.prototype.SetFloat = function(x) {
  9952. var _1, k, v, x;
  9953. v = this;
  9954. new flag(v.flag).mustBeAssignable();
  9955. k = new flag(v.flag).kind();
  9956. _1 = k;
  9957. if (_1 === (13)) {
  9958. (v.ptr).$set(($fround(x)));
  9959. } else if (_1 === (14)) {
  9960. (v.ptr).$set(x);
  9961. } else {
  9962. $panic(new ValueError.ptr("reflect.Value.SetFloat", new flag(v.flag).kind()));
  9963. }
  9964. };
  9965. Value.prototype.SetFloat = function(x) { return this.$val.SetFloat(x); };
  9966. Value.ptr.prototype.SetInt = function(x) {
  9967. var _1, k, v, x;
  9968. v = this;
  9969. new flag(v.flag).mustBeAssignable();
  9970. k = new flag(v.flag).kind();
  9971. _1 = k;
  9972. if (_1 === (2)) {
  9973. (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) >> 0)));
  9974. } else if (_1 === (3)) {
  9975. (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) << 24 >> 24)));
  9976. } else if (_1 === (4)) {
  9977. (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) << 16 >> 16)));
  9978. } else if (_1 === (5)) {
  9979. (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) >> 0)));
  9980. } else if (_1 === (6)) {
  9981. (v.ptr).$set(x);
  9982. } else {
  9983. $panic(new ValueError.ptr("reflect.Value.SetInt", new flag(v.flag).kind()));
  9984. }
  9985. };
  9986. Value.prototype.SetInt = function(x) { return this.$val.SetInt(x); };
  9987. Value.ptr.prototype.SetMapIndex = function(key, val) {
  9988. var _r, _r$1, e, k, key, tt, v, val, $s, $r;
  9989. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; e = $f.e; k = $f.k; key = $f.key; tt = $f.tt; v = $f.v; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  9990. v = this;
  9991. new flag(v.flag).mustBe(21);
  9992. new flag(v.flag).mustBeExported();
  9993. new flag(key.flag).mustBeExported();
  9994. tt = (v.typ.kindType);
  9995. _r = $clone(key, Value).assignTo("reflect.Value.SetMapIndex", tt.key, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  9996. key = _r;
  9997. k = 0;
  9998. if (!((((key.flag & 128) >>> 0) === 0))) {
  9999. k = key.ptr;
  10000. } else {
  10001. k = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$17(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key))));
  10002. }
  10003. if (val.typ === ptrType$1.nil) {
  10004. mapdelete(v.typ, $clone(v, Value).pointer(), k);
  10005. $s = -1; return;
  10006. }
  10007. new flag(val.flag).mustBeExported();
  10008. _r$1 = $clone(val, Value).assignTo("reflect.Value.SetMapIndex", tt.elem, 0); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  10009. val = _r$1;
  10010. e = 0;
  10011. if (!((((val.flag & 128) >>> 0) === 0))) {
  10012. e = val.ptr;
  10013. } else {
  10014. e = ((val.$ptr_ptr || (val.$ptr_ptr = new ptrType$17(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, val))));
  10015. }
  10016. $r = mapassign(v.typ, $clone(v, Value).pointer(), k, e); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10017. $s = -1; return;
  10018. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.SetMapIndex }; } $f._r = _r; $f._r$1 = _r$1; $f.e = e; $f.k = k; $f.key = key; $f.tt = tt; $f.v = v; $f.val = val; $f.$s = $s; $f.$r = $r; return $f;
  10019. };
  10020. Value.prototype.SetMapIndex = function(key, val) { return this.$val.SetMapIndex(key, val); };
  10021. Value.ptr.prototype.SetUint = function(x) {
  10022. var _1, k, v, x;
  10023. v = this;
  10024. new flag(v.flag).mustBeAssignable();
  10025. k = new flag(v.flag).kind();
  10026. _1 = k;
  10027. if (_1 === (7)) {
  10028. (v.ptr).$set(((x.$low >>> 0)));
  10029. } else if (_1 === (8)) {
  10030. (v.ptr).$set(((x.$low << 24 >>> 24)));
  10031. } else if (_1 === (9)) {
  10032. (v.ptr).$set(((x.$low << 16 >>> 16)));
  10033. } else if (_1 === (10)) {
  10034. (v.ptr).$set(((x.$low >>> 0)));
  10035. } else if (_1 === (11)) {
  10036. (v.ptr).$set(x);
  10037. } else if (_1 === (12)) {
  10038. (v.ptr).$set(((x.$low >>> 0)));
  10039. } else {
  10040. $panic(new ValueError.ptr("reflect.Value.SetUint", new flag(v.flag).kind()));
  10041. }
  10042. };
  10043. Value.prototype.SetUint = function(x) { return this.$val.SetUint(x); };
  10044. Value.ptr.prototype.SetPointer = function(x) {
  10045. var v, x;
  10046. v = this;
  10047. new flag(v.flag).mustBeAssignable();
  10048. new flag(v.flag).mustBe(26);
  10049. (v.ptr).$set(x);
  10050. };
  10051. Value.prototype.SetPointer = function(x) { return this.$val.SetPointer(x); };
  10052. Value.ptr.prototype.SetString = function(x) {
  10053. var v, x;
  10054. v = this;
  10055. new flag(v.flag).mustBeAssignable();
  10056. new flag(v.flag).mustBe(24);
  10057. (v.ptr).$set(x);
  10058. };
  10059. Value.prototype.SetString = function(x) { return this.$val.SetString(x); };
  10060. Value.ptr.prototype.String = function() {
  10061. var _1, _r, k, v, $s, $r;
  10062. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; k = $f.k; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10063. v = this;
  10064. k = new flag(v.flag).kind();
  10065. _1 = k;
  10066. if (_1 === (0)) {
  10067. $s = -1; return "<invalid Value>";
  10068. } else if (_1 === (24)) {
  10069. $s = -1; return (v.ptr).$get();
  10070. }
  10071. _r = $clone(v, Value).Type().String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10072. $s = -1; return "<" + _r + " Value>";
  10073. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.String }; } $f._1 = _1; $f._r = _r; $f.k = k; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  10074. };
  10075. Value.prototype.String = function() { return this.$val.String(); };
  10076. Value.ptr.prototype.TryRecv = function() {
  10077. var _r, _tuple, ok, v, x, $s, $r;
  10078. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; ok = $f.ok; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10079. x = new Value.ptr(ptrType$1.nil, 0, 0);
  10080. ok = false;
  10081. v = this;
  10082. new flag(v.flag).mustBe(18);
  10083. new flag(v.flag).mustBeExported();
  10084. _r = $clone(v, Value).recv(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10085. _tuple = _r;
  10086. x = _tuple[0];
  10087. ok = _tuple[1];
  10088. $s = -1; return [x, ok];
  10089. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.TryRecv }; } $f._r = _r; $f._tuple = _tuple; $f.ok = ok; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  10090. };
  10091. Value.prototype.TryRecv = function() { return this.$val.TryRecv(); };
  10092. Value.ptr.prototype.TrySend = function(x) {
  10093. var _r, v, x, $s, $r;
  10094. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10095. v = this;
  10096. new flag(v.flag).mustBe(18);
  10097. new flag(v.flag).mustBeExported();
  10098. _r = $clone(v, Value).send($clone(x, Value), true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10099. $s = -1; return _r;
  10100. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.TrySend }; } $f._r = _r; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  10101. };
  10102. Value.prototype.TrySend = function(x) { return this.$val.TrySend(x); };
  10103. Value.ptr.prototype.Type = function() {
  10104. var f, i, m, m$1, ms, tt, v, x;
  10105. v = this;
  10106. f = v.flag;
  10107. if (f === 0) {
  10108. $panic(new ValueError.ptr("reflect.Value.Type", 0));
  10109. }
  10110. if (((f & 512) >>> 0) === 0) {
  10111. return v.typ;
  10112. }
  10113. i = ((v.flag >> 0)) >> 10 >> 0;
  10114. if (v.typ.Kind() === 20) {
  10115. tt = (v.typ.kindType);
  10116. if (((i >>> 0)) >= ((tt.methods.$length >>> 0))) {
  10117. $panic(new $String("reflect: internal error: invalid method index"));
  10118. }
  10119. m = (x = tt.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]));
  10120. return v.typ.typeOff(m.typ);
  10121. }
  10122. ms = v.typ.exportedMethods();
  10123. if (((i >>> 0)) >= ((ms.$length >>> 0))) {
  10124. $panic(new $String("reflect: internal error: invalid method index"));
  10125. }
  10126. m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), method);
  10127. return v.typ.typeOff(m$1.mtyp);
  10128. };
  10129. Value.prototype.Type = function() { return this.$val.Type(); };
  10130. Value.ptr.prototype.Uint = function() {
  10131. var _1, k, p, v, x;
  10132. v = this;
  10133. k = new flag(v.flag).kind();
  10134. p = v.ptr;
  10135. _1 = k;
  10136. if (_1 === (7)) {
  10137. return (new $Uint64(0, (p).$get()));
  10138. } else if (_1 === (8)) {
  10139. return (new $Uint64(0, (p).$get()));
  10140. } else if (_1 === (9)) {
  10141. return (new $Uint64(0, (p).$get()));
  10142. } else if (_1 === (10)) {
  10143. return (new $Uint64(0, (p).$get()));
  10144. } else if (_1 === (11)) {
  10145. return (p).$get();
  10146. } else if (_1 === (12)) {
  10147. return ((x = (p).$get(), new $Uint64(0, x.constructor === Number ? x : 1)));
  10148. }
  10149. $panic(new ValueError.ptr("reflect.Value.Uint", new flag(v.flag).kind()));
  10150. };
  10151. Value.prototype.Uint = function() { return this.$val.Uint(); };
  10152. Value.ptr.prototype.UnsafeAddr = function() {
  10153. var v;
  10154. v = this;
  10155. if (v.typ === ptrType$1.nil) {
  10156. $panic(new ValueError.ptr("reflect.Value.UnsafeAddr", 0));
  10157. }
  10158. if (((v.flag & 256) >>> 0) === 0) {
  10159. $panic(new $String("reflect.Value.UnsafeAddr of unaddressable value"));
  10160. }
  10161. return (v.ptr);
  10162. };
  10163. Value.prototype.UnsafeAddr = function() { return this.$val.UnsafeAddr(); };
  10164. Indirect = function(v) {
  10165. var _r, v, $s, $r;
  10166. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10167. if (!(($clone(v, Value).Kind() === 22))) {
  10168. $s = -1; return v;
  10169. }
  10170. _r = $clone(v, Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10171. $s = -1; return _r;
  10172. /* */ } return; } if ($f === undefined) { $f = { $blk: Indirect }; } $f._r = _r; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  10173. };
  10174. $pkg.Indirect = Indirect;
  10175. New = function(typ) {
  10176. var fl, ptr, t, typ;
  10177. if ($interfaceIsEqual(typ, $ifaceNil)) {
  10178. $panic(new $String("reflect: New(nil)"));
  10179. }
  10180. t = $assertType(typ, ptrType$1);
  10181. ptr = unsafe_New(t);
  10182. fl = 22;
  10183. return new Value.ptr(t.ptrTo(), ptr, fl);
  10184. };
  10185. $pkg.New = New;
  10186. Value.ptr.prototype.Convert = function(t) {
  10187. var _r, _r$1, _r$2, _r$3, _r$4, op, t, v, $s, $r;
  10188. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; op = $f.op; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10189. v = this;
  10190. /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; }
  10191. /* */ $s = 2; continue;
  10192. /* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1:
  10193. _r = makeMethodValue("Convert", $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10194. v = _r;
  10195. /* } */ case 2:
  10196. _r$1 = t.common(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  10197. _r$2 = convertOp(_r$1, v.typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  10198. op = _r$2;
  10199. /* */ if (op === $throwNilPointerError) { $s = 6; continue; }
  10200. /* */ $s = 7; continue;
  10201. /* if (op === $throwNilPointerError) { */ case 6:
  10202. _r$3 = t.String(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  10203. $panic(new $String("reflect.Value.Convert: value of type " + v.typ.String() + " cannot be converted to type " + _r$3));
  10204. /* } */ case 7:
  10205. _r$4 = op($clone(v, Value), t); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  10206. $s = -1; return _r$4;
  10207. /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Convert }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f.op = op; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  10208. };
  10209. Value.prototype.Convert = function(t) { return this.$val.Convert(t); };
  10210. convertOp = function(dst, src) {
  10211. var _1, _2, _3, _4, _5, _6, _7, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _v, _v$1, _v$2, dst, src, $s, $r;
  10212. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _4 = $f._4; _5 = $f._5; _6 = $f._6; _7 = $f._7; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _v = $f._v; _v$1 = $f._v$1; _v$2 = $f._v$2; dst = $f.dst; src = $f.src; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10213. _1 = src.Kind();
  10214. /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 2; continue; }
  10215. /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 3; continue; }
  10216. /* */ if ((_1 === (13)) || (_1 === (14))) { $s = 4; continue; }
  10217. /* */ if ((_1 === (15)) || (_1 === (16))) { $s = 5; continue; }
  10218. /* */ if (_1 === (24)) { $s = 6; continue; }
  10219. /* */ if (_1 === (23)) { $s = 7; continue; }
  10220. /* */ $s = 8; continue;
  10221. /* if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 2:
  10222. _2 = dst.Kind();
  10223. if ((_2 === (2)) || (_2 === (3)) || (_2 === (4)) || (_2 === (5)) || (_2 === (6)) || (_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10)) || (_2 === (11)) || (_2 === (12))) {
  10224. $s = -1; return cvtInt;
  10225. } else if ((_2 === (13)) || (_2 === (14))) {
  10226. $s = -1; return cvtIntFloat;
  10227. } else if (_2 === (24)) {
  10228. $s = -1; return cvtIntString;
  10229. }
  10230. $s = 8; continue;
  10231. /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 3:
  10232. _3 = dst.Kind();
  10233. if ((_3 === (2)) || (_3 === (3)) || (_3 === (4)) || (_3 === (5)) || (_3 === (6)) || (_3 === (7)) || (_3 === (8)) || (_3 === (9)) || (_3 === (10)) || (_3 === (11)) || (_3 === (12))) {
  10234. $s = -1; return cvtUint;
  10235. } else if ((_3 === (13)) || (_3 === (14))) {
  10236. $s = -1; return cvtUintFloat;
  10237. } else if (_3 === (24)) {
  10238. $s = -1; return cvtUintString;
  10239. }
  10240. $s = 8; continue;
  10241. /* } else if ((_1 === (13)) || (_1 === (14))) { */ case 4:
  10242. _4 = dst.Kind();
  10243. if ((_4 === (2)) || (_4 === (3)) || (_4 === (4)) || (_4 === (5)) || (_4 === (6))) {
  10244. $s = -1; return cvtFloatInt;
  10245. } else if ((_4 === (7)) || (_4 === (8)) || (_4 === (9)) || (_4 === (10)) || (_4 === (11)) || (_4 === (12))) {
  10246. $s = -1; return cvtFloatUint;
  10247. } else if ((_4 === (13)) || (_4 === (14))) {
  10248. $s = -1; return cvtFloat;
  10249. }
  10250. $s = 8; continue;
  10251. /* } else if ((_1 === (15)) || (_1 === (16))) { */ case 5:
  10252. _5 = dst.Kind();
  10253. if ((_5 === (15)) || (_5 === (16))) {
  10254. $s = -1; return cvtComplex;
  10255. }
  10256. $s = 8; continue;
  10257. /* } else if (_1 === (24)) { */ case 6:
  10258. if (!(dst.Kind() === 23)) { _v = false; $s = 11; continue s; }
  10259. _r = dst.Elem().PkgPath(); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10260. _v = _r === ""; case 11:
  10261. /* */ if (_v) { $s = 9; continue; }
  10262. /* */ $s = 10; continue;
  10263. /* if (_v) { */ case 9:
  10264. _r$1 = dst.Elem().Kind(); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  10265. _6 = _r$1;
  10266. if (_6 === (8)) {
  10267. $s = -1; return cvtStringBytes;
  10268. } else if (_6 === (5)) {
  10269. $s = -1; return cvtStringRunes;
  10270. }
  10271. case 13:
  10272. /* } */ case 10:
  10273. $s = 8; continue;
  10274. /* } else if (_1 === (23)) { */ case 7:
  10275. if (!(dst.Kind() === 24)) { _v$1 = false; $s = 17; continue s; }
  10276. _r$2 = src.Elem().PkgPath(); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  10277. _v$1 = _r$2 === ""; case 17:
  10278. /* */ if (_v$1) { $s = 15; continue; }
  10279. /* */ $s = 16; continue;
  10280. /* if (_v$1) { */ case 15:
  10281. _r$3 = src.Elem().Kind(); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  10282. _7 = _r$3;
  10283. if (_7 === (8)) {
  10284. $s = -1; return cvtBytesString;
  10285. } else if (_7 === (5)) {
  10286. $s = -1; return cvtRunesString;
  10287. }
  10288. case 19:
  10289. /* } */ case 16:
  10290. /* } */ case 8:
  10291. case 1:
  10292. _r$4 = haveIdenticalUnderlyingType(dst, src, false); /* */ $s = 23; case 23: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  10293. /* */ if (_r$4) { $s = 21; continue; }
  10294. /* */ $s = 22; continue;
  10295. /* if (_r$4) { */ case 21:
  10296. $s = -1; return cvtDirect;
  10297. /* } */ case 22:
  10298. if (!((dst.Kind() === 22) && dst.Name() === "" && (src.Kind() === 22) && src.Name() === "")) { _v$2 = false; $s = 26; continue s; }
  10299. _r$5 = dst.Elem().common(); /* */ $s = 27; case 27: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  10300. _arg = _r$5;
  10301. _r$6 = src.Elem().common(); /* */ $s = 28; case 28: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  10302. _arg$1 = _r$6;
  10303. _r$7 = haveIdenticalUnderlyingType(_arg, _arg$1, false); /* */ $s = 29; case 29: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
  10304. _v$2 = _r$7; case 26:
  10305. /* */ if (_v$2) { $s = 24; continue; }
  10306. /* */ $s = 25; continue;
  10307. /* if (_v$2) { */ case 24:
  10308. $s = -1; return cvtDirect;
  10309. /* } */ case 25:
  10310. if (implements$1(dst, src)) {
  10311. if (src.Kind() === 20) {
  10312. $s = -1; return cvtI2I;
  10313. }
  10314. $s = -1; return cvtT2I;
  10315. }
  10316. $s = -1; return $throwNilPointerError;
  10317. /* */ } return; } if ($f === undefined) { $f = { $blk: convertOp }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._4 = _4; $f._5 = _5; $f._6 = _6; $f._7 = _7; $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._v = _v; $f._v$1 = _v$1; $f._v$2 = _v$2; $f.dst = dst; $f.src = src; $f.$s = $s; $f.$r = $r; return $f;
  10318. };
  10319. makeFloat = function(f, v, t) {
  10320. var _1, _r, f, ptr, t, typ, v, $s, $r;
  10321. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; f = $f.f; ptr = $f.ptr; t = $f.t; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10322. _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10323. typ = _r;
  10324. ptr = unsafe_New(typ);
  10325. _1 = typ.size;
  10326. if (_1 === (4)) {
  10327. (ptr).$set(($fround(v)));
  10328. } else if (_1 === (8)) {
  10329. (ptr).$set(v);
  10330. }
  10331. $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0);
  10332. /* */ } return; } if ($f === undefined) { $f = { $blk: makeFloat }; } $f._1 = _1; $f._r = _r; $f.f = f; $f.ptr = ptr; $f.t = t; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  10333. };
  10334. makeComplex = function(f, v, t) {
  10335. var _1, _r, f, ptr, t, typ, v, $s, $r;
  10336. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; f = $f.f; ptr = $f.ptr; t = $f.t; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10337. _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10338. typ = _r;
  10339. ptr = unsafe_New(typ);
  10340. _1 = typ.size;
  10341. if (_1 === (8)) {
  10342. (ptr).$set((new $Complex64(v.$real, v.$imag)));
  10343. } else if (_1 === (16)) {
  10344. (ptr).$set(v);
  10345. }
  10346. $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0);
  10347. /* */ } return; } if ($f === undefined) { $f = { $blk: makeComplex }; } $f._1 = _1; $f._r = _r; $f.f = f; $f.ptr = ptr; $f.t = t; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  10348. };
  10349. makeString = function(f, v, t) {
  10350. var _r, f, ret, t, v, $s, $r;
  10351. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; ret = $f.ret; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10352. _r = $clone(New(t), Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10353. ret = _r;
  10354. $clone(ret, Value).SetString(v);
  10355. ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0;
  10356. $s = -1; return ret;
  10357. /* */ } return; } if ($f === undefined) { $f = { $blk: makeString }; } $f._r = _r; $f.f = f; $f.ret = ret; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  10358. };
  10359. makeBytes = function(f, v, t) {
  10360. var _r, f, ret, t, v, $s, $r;
  10361. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; ret = $f.ret; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10362. _r = $clone(New(t), Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10363. ret = _r;
  10364. $r = $clone(ret, Value).SetBytes(v); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10365. ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0;
  10366. $s = -1; return ret;
  10367. /* */ } return; } if ($f === undefined) { $f = { $blk: makeBytes }; } $f._r = _r; $f.f = f; $f.ret = ret; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  10368. };
  10369. makeRunes = function(f, v, t) {
  10370. var _r, f, ret, t, v, $s, $r;
  10371. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; ret = $f.ret; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10372. _r = $clone(New(t), Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10373. ret = _r;
  10374. $r = $clone(ret, Value).setRunes(v); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10375. ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0;
  10376. $s = -1; return ret;
  10377. /* */ } return; } if ($f === undefined) { $f = { $blk: makeRunes }; } $f._r = _r; $f.f = f; $f.ret = ret; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  10378. };
  10379. cvtInt = function(v, t) {
  10380. var _r, t, v, x, $s, $r;
  10381. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10382. _r = makeInt(new flag(v.flag).ro(), ((x = $clone(v, Value).Int(), new $Uint64(x.$high, x.$low))), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10383. $s = -1; return _r;
  10384. /* */ } return; } if ($f === undefined) { $f = { $blk: cvtInt }; } $f._r = _r; $f.t = t; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  10385. };
  10386. cvtUint = function(v, t) {
  10387. var _r, t, v, $s, $r;
  10388. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10389. _r = makeInt(new flag(v.flag).ro(), $clone(v, Value).Uint(), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10390. $s = -1; return _r;
  10391. /* */ } return; } if ($f === undefined) { $f = { $blk: cvtUint }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  10392. };
  10393. cvtFloatInt = function(v, t) {
  10394. var _r, t, v, x, $s, $r;
  10395. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10396. _r = makeInt(new flag(v.flag).ro(), ((x = (new $Int64(0, $clone(v, Value).Float())), new $Uint64(x.$high, x.$low))), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10397. $s = -1; return _r;
  10398. /* */ } return; } if ($f === undefined) { $f = { $blk: cvtFloatInt }; } $f._r = _r; $f.t = t; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  10399. };
  10400. cvtFloatUint = function(v, t) {
  10401. var _r, t, v, $s, $r;
  10402. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10403. _r = makeInt(new flag(v.flag).ro(), (new $Uint64(0, $clone(v, Value).Float())), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10404. $s = -1; return _r;
  10405. /* */ } return; } if ($f === undefined) { $f = { $blk: cvtFloatUint }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  10406. };
  10407. cvtIntFloat = function(v, t) {
  10408. var _r, t, v, $s, $r;
  10409. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10410. _r = makeFloat(new flag(v.flag).ro(), ($flatten64($clone(v, Value).Int())), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10411. $s = -1; return _r;
  10412. /* */ } return; } if ($f === undefined) { $f = { $blk: cvtIntFloat }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  10413. };
  10414. cvtUintFloat = function(v, t) {
  10415. var _r, t, v, $s, $r;
  10416. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10417. _r = makeFloat(new flag(v.flag).ro(), ($flatten64($clone(v, Value).Uint())), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10418. $s = -1; return _r;
  10419. /* */ } return; } if ($f === undefined) { $f = { $blk: cvtUintFloat }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  10420. };
  10421. cvtFloat = function(v, t) {
  10422. var _r, t, v, $s, $r;
  10423. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10424. _r = makeFloat(new flag(v.flag).ro(), $clone(v, Value).Float(), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10425. $s = -1; return _r;
  10426. /* */ } return; } if ($f === undefined) { $f = { $blk: cvtFloat }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  10427. };
  10428. cvtComplex = function(v, t) {
  10429. var _r, t, v, $s, $r;
  10430. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10431. _r = makeComplex(new flag(v.flag).ro(), $clone(v, Value).Complex(), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10432. $s = -1; return _r;
  10433. /* */ } return; } if ($f === undefined) { $f = { $blk: cvtComplex }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  10434. };
  10435. cvtIntString = function(v, t) {
  10436. var _r, t, v, $s, $r;
  10437. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10438. _r = makeString(new flag(v.flag).ro(), ($encodeRune($clone(v, Value).Int().$low)), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10439. $s = -1; return _r;
  10440. /* */ } return; } if ($f === undefined) { $f = { $blk: cvtIntString }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  10441. };
  10442. cvtUintString = function(v, t) {
  10443. var _r, t, v, $s, $r;
  10444. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10445. _r = makeString(new flag(v.flag).ro(), ($encodeRune($clone(v, Value).Uint().$low)), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10446. $s = -1; return _r;
  10447. /* */ } return; } if ($f === undefined) { $f = { $blk: cvtUintString }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  10448. };
  10449. cvtBytesString = function(v, t) {
  10450. var _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r;
  10451. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10452. _arg = new flag(v.flag).ro();
  10453. _r = $clone(v, Value).Bytes(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10454. _arg$1 = ($bytesToString(_r));
  10455. _arg$2 = t;
  10456. _r$1 = makeString(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  10457. $s = -1; return _r$1;
  10458. /* */ } return; } if ($f === undefined) { $f = { $blk: cvtBytesString }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  10459. };
  10460. cvtStringBytes = function(v, t) {
  10461. var _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r;
  10462. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10463. _arg = new flag(v.flag).ro();
  10464. _r = $clone(v, Value).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10465. _arg$1 = (new sliceType$15($stringToBytes(_r)));
  10466. _arg$2 = t;
  10467. _r$1 = makeBytes(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  10468. $s = -1; return _r$1;
  10469. /* */ } return; } if ($f === undefined) { $f = { $blk: cvtStringBytes }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  10470. };
  10471. cvtRunesString = function(v, t) {
  10472. var _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r;
  10473. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10474. _arg = new flag(v.flag).ro();
  10475. _r = $clone(v, Value).runes(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10476. _arg$1 = ($runesToString(_r));
  10477. _arg$2 = t;
  10478. _r$1 = makeString(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  10479. $s = -1; return _r$1;
  10480. /* */ } return; } if ($f === undefined) { $f = { $blk: cvtRunesString }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  10481. };
  10482. cvtStringRunes = function(v, t) {
  10483. var _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r;
  10484. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10485. _arg = new flag(v.flag).ro();
  10486. _r = $clone(v, Value).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10487. _arg$1 = (new sliceType$18($stringToRunes(_r)));
  10488. _arg$2 = t;
  10489. _r$1 = makeRunes(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  10490. $s = -1; return _r$1;
  10491. /* */ } return; } if ($f === undefined) { $f = { $blk: cvtStringRunes }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  10492. };
  10493. cvtT2I = function(v, typ) {
  10494. var _r, _r$1, _r$2, _r$3, _r$4, target, typ, v, x, $s, $r;
  10495. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; target = $f.target; typ = $f.typ; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10496. _r = typ.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10497. _r$1 = unsafe_New(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  10498. target = _r$1;
  10499. _r$2 = valueInterface($clone(v, Value), false); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  10500. x = _r$2;
  10501. _r$3 = typ.NumMethod(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  10502. /* */ if (_r$3 === 0) { $s = 4; continue; }
  10503. /* */ $s = 5; continue;
  10504. /* if (_r$3 === 0) { */ case 4:
  10505. (target).$set(x);
  10506. $s = 6; continue;
  10507. /* } else { */ case 5:
  10508. ifaceE2I($assertType(typ, ptrType$1), x, target);
  10509. /* } */ case 6:
  10510. _r$4 = typ.common(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  10511. $s = -1; return new Value.ptr(_r$4, target, (((new flag(v.flag).ro() | 128) >>> 0) | 20) >>> 0);
  10512. /* */ } return; } if ($f === undefined) { $f = { $blk: cvtT2I }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f.target = target; $f.typ = typ; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  10513. };
  10514. cvtI2I = function(v, typ) {
  10515. var _r, _r$1, _r$2, ret, typ, v, $s, $r;
  10516. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; ret = $f.ret; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10517. /* */ if ($clone(v, Value).IsNil()) { $s = 1; continue; }
  10518. /* */ $s = 2; continue;
  10519. /* if ($clone(v, Value).IsNil()) { */ case 1:
  10520. _r = Zero(typ); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10521. ret = _r;
  10522. ret.flag = (ret.flag | (new flag(v.flag).ro())) >>> 0;
  10523. $s = -1; return ret;
  10524. /* } */ case 2:
  10525. _r$1 = $clone(v, Value).Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  10526. _r$2 = cvtT2I($clone(_r$1, Value), typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  10527. $s = -1; return _r$2;
  10528. /* */ } return; } if ($f === undefined) { $f = { $blk: cvtI2I }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.ret = ret; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  10529. };
  10530. ptrType$5.methods = [{prop: "methods", name: "methods", pkg: "reflect", typ: $funcType([], [sliceType$5], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "reflect", typ: $funcType([], [sliceType$5], false)}];
  10531. ptrType$8.methods = [{prop: "in$", name: "in", pkg: "reflect", typ: $funcType([], [sliceType$2], false)}, {prop: "out", name: "out", pkg: "reflect", typ: $funcType([], [sliceType$2], false)}];
  10532. name.methods = [{prop: "name", name: "name", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "tag", name: "tag", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "pkgPath", name: "pkgPath", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "isExported", name: "isExported", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "data", name: "data", pkg: "reflect", typ: $funcType([$Int, $String], [ptrType$4], false)}, {prop: "nameLen", name: "nameLen", pkg: "reflect", typ: $funcType([], [$Int], false)}, {prop: "tagLen", name: "tagLen", pkg: "reflect", typ: $funcType([], [$Int], false)}];
  10533. ptrType$7.methods = [{prop: "skipUntilValidKey", name: "skipUntilValidKey", pkg: "reflect", typ: $funcType([], [], false)}];
  10534. Kind.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
  10535. ptrType$1.methods = [{prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$5], false)}, {prop: "nameOff", name: "nameOff", pkg: "reflect", typ: $funcType([nameOff], [name], false)}, {prop: "typeOff", name: "typeOff", pkg: "reflect", typ: $funcType([typeOff], [ptrType$1], false)}, {prop: "ptrTo", name: "ptrTo", pkg: "reflect", typ: $funcType([], [ptrType$1], false)}, {prop: "pointers", name: "pointers", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "textOff", name: "textOff", pkg: "reflect", typ: $funcType([textOff], [$UnsafePointer], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$1], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "reflect", typ: $funcType([], [sliceType$5], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$13], [StructField], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false)}];
  10536. ChanDir.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
  10537. ptrType$9.methods = [{prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}];
  10538. ptrType$18.methods = [{prop: "offset", name: "offset", pkg: "reflect", typ: $funcType([], [$Uintptr], false)}, {prop: "embedded", name: "embedded", pkg: "reflect", typ: $funcType([], [$Bool], false)}];
  10539. ptrType$11.methods = [{prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$13], [StructField], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}];
  10540. StructTag.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "Lookup", name: "Lookup", pkg: "", typ: $funcType([$String], [$String, $Bool], false)}];
  10541. Value.methods = [{prop: "object", name: "object", pkg: "reflect", typ: $funcType([], [ptrType$2], false)}, {prop: "assignTo", name: "assignTo", pkg: "reflect", typ: $funcType([$String, ptrType$1, $UnsafePointer], [Value], false)}, {prop: "call", name: "call", pkg: "reflect", typ: $funcType([$String, sliceType$9], [sliceType$9], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "InterfaceData", name: "InterfaceData", pkg: "", typ: $funcType([], [arrayType$8], false)}, {prop: "IsNil", name: "IsNil", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Pointer", name: "Pointer", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([Value], [], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType$15], [], false)}, {prop: "SetCap", name: "SetCap", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "SetLen", name: "SetLen", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Slice", name: "Slice", pkg: "", typ: $funcType([$Int, $Int], [Value], false)}, {prop: "Slice3", name: "Slice3", pkg: "", typ: $funcType([$Int, $Int, $Int], [Value], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "pointer", name: "pointer", pkg: "reflect", typ: $funcType([], [$UnsafePointer], false)}, {prop: "Addr", name: "Addr", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Bool", name: "Bool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$15], false)}, {prop: "runes", name: "runes", pkg: "reflect", typ: $funcType([], [sliceType$18], false)}, {prop: "CanAddr", name: "CanAddr", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "CanSet", name: "CanSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Call", name: "Call", pkg: "", typ: $funcType([sliceType$9], [sliceType$9], false)}, {prop: "CallSlice", name: "CallSlice", pkg: "", typ: $funcType([sliceType$9], [sliceType$9], false)}, {prop: "Complex", name: "Complex", pkg: "", typ: $funcType([], [$Complex128], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$13], [Value], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [Value], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [Value], false)}, {prop: "Float", name: "Float", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "CanInterface", name: "CanInterface", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Interface", name: "Interface", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "MapIndex", name: "MapIndex", pkg: "", typ: $funcType([Value], [Value], false)}, {prop: "MapKeys", name: "MapKeys", pkg: "", typ: $funcType([], [sliceType$9], false)}, {prop: "MapRange", name: "MapRange", pkg: "", typ: $funcType([], [ptrType$19], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Value], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "OverflowComplex", name: "OverflowComplex", pkg: "", typ: $funcType([$Complex128], [$Bool], false)}, {prop: "OverflowFloat", name: "OverflowFloat", pkg: "", typ: $funcType([$Float64], [$Bool], false)}, {prop: "OverflowInt", name: "OverflowInt", pkg: "", typ: $funcType([$Int64], [$Bool], false)}, {prop: "OverflowUint", name: "OverflowUint", pkg: "", typ: $funcType([$Uint64], [$Bool], false)}, {prop: "Recv", name: "Recv", pkg: "", typ: $funcType([], [Value, $Bool], false)}, {prop: "recv", name: "recv", pkg: "reflect", typ: $funcType([$Bool], [Value, $Bool], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([Value], [], false)}, {prop: "send", name: "send", pkg: "reflect", typ: $funcType([Value, $Bool], [$Bool], false)}, {prop: "SetBool", name: "SetBool", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "setRunes", name: "setRunes", pkg: "reflect", typ: $funcType([sliceType$18], [], false)}, {prop: "SetComplex", name: "SetComplex", pkg: "", typ: $funcType([$Complex128], [], false)}, {prop: "SetFloat", name: "SetFloat", pkg: "", typ: $funcType([$Float64], [], false)}, {prop: "SetInt", name: "SetInt", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "SetMapIndex", name: "SetMapIndex", pkg: "", typ: $funcType([Value, Value], [], false)}, {prop: "SetUint", name: "SetUint", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "SetPointer", name: "SetPointer", pkg: "", typ: $funcType([$UnsafePointer], [], false)}, {prop: "SetString", name: "SetString", pkg: "", typ: $funcType([$String], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "TryRecv", name: "TryRecv", pkg: "", typ: $funcType([], [Value, $Bool], false)}, {prop: "TrySend", name: "TrySend", pkg: "", typ: $funcType([Value], [$Bool], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Uint", name: "Uint", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "UnsafeAddr", name: "UnsafeAddr", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Convert", name: "Convert", pkg: "", typ: $funcType([Type], [Value], false)}];
  10542. flag.methods = [{prop: "kind", name: "kind", pkg: "reflect", typ: $funcType([], [Kind], false)}, {prop: "ro", name: "ro", pkg: "reflect", typ: $funcType([], [flag], false)}, {prop: "mustBe", name: "mustBe", pkg: "reflect", typ: $funcType([Kind], [], false)}, {prop: "mustBeExported", name: "mustBeExported", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "mustBeAssignable", name: "mustBeAssignable", pkg: "reflect", typ: $funcType([], [], false)}];
  10543. ptrType$20.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
  10544. ptrType$19.methods = [{prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Next", name: "Next", pkg: "", typ: $funcType([], [$Bool], false)}];
  10545. uncommonType.init("reflect", [{prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mcount", name: "mcount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "xcount", name: "xcount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "moff", name: "moff", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "_methods", name: "_methods", embedded: false, exported: false, typ: sliceType$5, tag: ""}]);
  10546. funcType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: "reflect:\"func\""}, {prop: "inCount", name: "inCount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "outCount", name: "outCount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "_in", name: "_in", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "_out", name: "_out", embedded: false, exported: false, typ: sliceType$2, tag: ""}]);
  10547. name.init("reflect", [{prop: "bytes", name: "bytes", embedded: false, exported: false, typ: ptrType$4, tag: ""}]);
  10548. nameData.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tag", name: "tag", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "exported", name: "exported", embedded: false, exported: false, typ: $Bool, tag: ""}]);
  10549. mapIter.init("reflect", [{prop: "t", name: "t", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "m", name: "m", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "keys", name: "keys", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "last", name: "last", embedded: false, exported: false, typ: ptrType$2, tag: ""}]);
  10550. Type.init([{prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$13], [StructField], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$1], false)}, {prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$5], false)}]);
  10551. rtype.init("reflect", [{prop: "size", name: "size", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "ptrdata", name: "ptrdata", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "hash", name: "hash", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "tflag", name: "tflag", embedded: false, exported: false, typ: tflag, tag: ""}, {prop: "align", name: "align", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "fieldAlign", name: "fieldAlign", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "alg", name: "alg", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "gcdata", name: "gcdata", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "str", name: "str", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "ptrToThis", name: "ptrToThis", embedded: false, exported: false, typ: typeOff, tag: ""}]);
  10552. typeAlg.init("reflect", [{prop: "hash", name: "hash", embedded: false, exported: false, typ: funcType$4, tag: ""}, {prop: "equal", name: "equal", embedded: false, exported: false, typ: funcType$5, tag: ""}]);
  10553. method.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mtyp", name: "mtyp", embedded: false, exported: false, typ: typeOff, tag: ""}, {prop: "ifn", name: "ifn", embedded: false, exported: false, typ: textOff, tag: ""}, {prop: "tfn", name: "tfn", embedded: false, exported: false, typ: textOff, tag: ""}]);
  10554. arrayType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "slice", name: "slice", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Uintptr, tag: ""}]);
  10555. chanType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "dir", name: "dir", embedded: false, exported: false, typ: $Uintptr, tag: ""}]);
  10556. imethod.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: typeOff, tag: ""}]);
  10557. interfaceType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: ""}, {prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType$6, tag: ""}]);
  10558. mapType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "key", name: "key", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "bucket", name: "bucket", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "keysize", name: "keysize", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "valuesize", name: "valuesize", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "bucketsize", name: "bucketsize", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "flags", name: "flags", embedded: false, exported: false, typ: $Uint32, tag: ""}]);
  10559. ptrType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}]);
  10560. sliceType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}]);
  10561. structField.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: name, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "offsetEmbed", name: "offsetEmbed", embedded: false, exported: false, typ: $Uintptr, tag: ""}]);
  10562. structType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: ""}, {prop: "fields", name: "fields", embedded: false, exported: false, typ: sliceType$7, tag: ""}]);
  10563. Method.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Func", name: "Func", embedded: false, exported: true, typ: Value, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: $Int, tag: ""}]);
  10564. StructField.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Tag", name: "Tag", embedded: false, exported: true, typ: StructTag, tag: ""}, {prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Uintptr, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: sliceType$13, tag: ""}, {prop: "Anonymous", name: "Anonymous", embedded: false, exported: true, typ: $Bool, tag: ""}]);
  10565. fieldScan.init("reflect", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$11, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$13, tag: ""}]);
  10566. Value.init("reflect", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "ptr", name: "ptr", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "flag", name: "flag", embedded: true, exported: false, typ: flag, tag: ""}]);
  10567. ValueError.init("", [{prop: "Method", name: "Method", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: Kind, tag: ""}]);
  10568. MapIter.init("reflect", [{prop: "m", name: "m", embedded: false, exported: false, typ: Value, tag: ""}, {prop: "it", name: "it", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}]);
  10569. $init = function() {
  10570. $pkg.$init = function() {};
  10571. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10572. $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10573. $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10574. $r = math.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10575. $r = runtime.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10576. $r = strconv.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10577. $r = sync.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10578. $r = unicode.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10579. $r = utf8.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10580. nameOffList = sliceType$1.nil;
  10581. typeOffList = sliceType$2.nil;
  10582. initialized = false;
  10583. uncommonTypeMap = {};
  10584. nameMap = {};
  10585. callHelper = $assertType($internalize($call, $emptyInterface), funcType$1);
  10586. selectHelper = $assertType($internalize($select, $emptyInterface), funcType$1);
  10587. jsObjectPtr = reflectType($jsObjectPtr);
  10588. kindNames = new sliceType$4(["invalid", "bool", "int", "int8", "int16", "int32", "int64", "uint", "uint8", "uint16", "uint32", "uint64", "uintptr", "float32", "float64", "complex64", "complex128", "array", "chan", "func", "interface", "map", "ptr", "slice", "string", "struct", "unsafe.Pointer"]);
  10589. uint8Type = $assertType(TypeOf(new $Uint8(0)), ptrType$1);
  10590. $r = init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10591. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  10592. };
  10593. $pkg.$init = $init;
  10594. return $pkg;
  10595. })();
  10596. $packages["sort"] = (function() {
  10597. var $pkg = {}, $init, reflect, Interface, reverse, StringSlice, sliceType$2, Search, SearchStrings, insertionSort, siftDown, heapSort, medianOfThree, swapRange, doPivot, quickSort, Sort, maxDepth, Reverse, Strings, Stable, stable, symMerge, rotate;
  10598. reflect = $packages["reflect"];
  10599. Interface = $pkg.Interface = $newType(8, $kindInterface, "sort.Interface", true, "sort", true, null);
  10600. reverse = $pkg.reverse = $newType(0, $kindStruct, "sort.reverse", true, "sort", false, function(Interface_) {
  10601. this.$val = this;
  10602. if (arguments.length === 0) {
  10603. this.Interface = $ifaceNil;
  10604. return;
  10605. }
  10606. this.Interface = Interface_;
  10607. });
  10608. StringSlice = $pkg.StringSlice = $newType(12, $kindSlice, "sort.StringSlice", true, "sort", true, null);
  10609. sliceType$2 = $sliceType($String);
  10610. Search = function(n, f) {
  10611. var _r, _tmp, _tmp$1, f, h, i, j, n, $s, $r;
  10612. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; f = $f.f; h = $f.h; i = $f.i; j = $f.j; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10613. _tmp = 0;
  10614. _tmp$1 = n;
  10615. i = _tmp;
  10616. j = _tmp$1;
  10617. /* while (true) { */ case 1:
  10618. /* if (!(i < j)) { break; } */ if(!(i < j)) { $s = 2; continue; }
  10619. h = ((((((i + j >> 0) >>> 0)) >>> 1 >>> 0) >> 0));
  10620. _r = f(h); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10621. /* */ if (!_r) { $s = 3; continue; }
  10622. /* */ $s = 4; continue;
  10623. /* if (!_r) { */ case 3:
  10624. i = h + 1 >> 0;
  10625. $s = 5; continue;
  10626. /* } else { */ case 4:
  10627. j = h;
  10628. /* } */ case 5:
  10629. /* } */ $s = 1; continue; case 2:
  10630. $s = -1; return i;
  10631. /* */ } return; } if ($f === undefined) { $f = { $blk: Search }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f.f = f; $f.h = h; $f.i = i; $f.j = j; $f.n = n; $f.$s = $s; $f.$r = $r; return $f;
  10632. };
  10633. $pkg.Search = Search;
  10634. SearchStrings = function(a, x) {
  10635. var _r, a, x, $s, $r;
  10636. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10637. a = [a];
  10638. x = [x];
  10639. _r = Search(a[0].$length, (function(a, x) { return function(i) {
  10640. var i;
  10641. return ((i < 0 || i >= a[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : a[0].$array[a[0].$offset + i]) >= x[0];
  10642. }; })(a, x)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10643. $s = -1; return _r;
  10644. /* */ } return; } if ($f === undefined) { $f = { $blk: SearchStrings }; } $f._r = _r; $f.a = a; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  10645. };
  10646. $pkg.SearchStrings = SearchStrings;
  10647. StringSlice.prototype.Search = function(x) {
  10648. var _r, p, x, $s, $r;
  10649. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; p = $f.p; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10650. p = this;
  10651. _r = SearchStrings($subslice(new sliceType$2(p.$array), p.$offset, p.$offset + p.$length), x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10652. $s = -1; return _r;
  10653. /* */ } return; } if ($f === undefined) { $f = { $blk: StringSlice.prototype.Search }; } $f._r = _r; $f.p = p; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  10654. };
  10655. $ptrType(StringSlice).prototype.Search = function(x) { return this.$get().Search(x); };
  10656. insertionSort = function(data, a, b) {
  10657. var _r, _v, a, b, data, i, j, $s, $r;
  10658. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _v = $f._v; a = $f.a; b = $f.b; data = $f.data; i = $f.i; j = $f.j; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10659. i = a + 1 >> 0;
  10660. /* while (true) { */ case 1:
  10661. /* if (!(i < b)) { break; } */ if(!(i < b)) { $s = 2; continue; }
  10662. j = i;
  10663. /* while (true) { */ case 3:
  10664. if (!(j > a)) { _v = false; $s = 5; continue s; }
  10665. _r = data.Less(j, j - 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10666. _v = _r; case 5:
  10667. /* if (!(_v)) { break; } */ if(!(_v)) { $s = 4; continue; }
  10668. $r = data.Swap(j, j - 1 >> 0); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10669. j = j - (1) >> 0;
  10670. /* } */ $s = 3; continue; case 4:
  10671. i = i + (1) >> 0;
  10672. /* } */ $s = 1; continue; case 2:
  10673. $s = -1; return;
  10674. /* */ } return; } if ($f === undefined) { $f = { $blk: insertionSort }; } $f._r = _r; $f._v = _v; $f.a = a; $f.b = b; $f.data = data; $f.i = i; $f.j = j; $f.$s = $s; $f.$r = $r; return $f;
  10675. };
  10676. siftDown = function(data, lo, hi, first) {
  10677. var _r, _r$1, _v, child, data, first, hi, lo, root, $s, $r;
  10678. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _v = $f._v; child = $f.child; data = $f.data; first = $f.first; hi = $f.hi; lo = $f.lo; root = $f.root; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10679. root = lo;
  10680. /* while (true) { */ case 1:
  10681. child = ($imul(2, root)) + 1 >> 0;
  10682. if (child >= hi) {
  10683. /* break; */ $s = 2; continue;
  10684. }
  10685. if (!((child + 1 >> 0) < hi)) { _v = false; $s = 5; continue s; }
  10686. _r = data.Less(first + child >> 0, (first + child >> 0) + 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10687. _v = _r; case 5:
  10688. /* */ if (_v) { $s = 3; continue; }
  10689. /* */ $s = 4; continue;
  10690. /* if (_v) { */ case 3:
  10691. child = child + (1) >> 0;
  10692. /* } */ case 4:
  10693. _r$1 = data.Less(first + root >> 0, first + child >> 0); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  10694. /* */ if (!_r$1) { $s = 7; continue; }
  10695. /* */ $s = 8; continue;
  10696. /* if (!_r$1) { */ case 7:
  10697. $s = -1; return;
  10698. /* } */ case 8:
  10699. $r = data.Swap(first + root >> 0, first + child >> 0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10700. root = child;
  10701. /* } */ $s = 1; continue; case 2:
  10702. $s = -1; return;
  10703. /* */ } return; } if ($f === undefined) { $f = { $blk: siftDown }; } $f._r = _r; $f._r$1 = _r$1; $f._v = _v; $f.child = child; $f.data = data; $f.first = first; $f.hi = hi; $f.lo = lo; $f.root = root; $f.$s = $s; $f.$r = $r; return $f;
  10704. };
  10705. heapSort = function(data, a, b) {
  10706. var _q, a, b, data, first, hi, i, i$1, lo, $s, $r;
  10707. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; a = $f.a; b = $f.b; data = $f.data; first = $f.first; hi = $f.hi; i = $f.i; i$1 = $f.i$1; lo = $f.lo; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10708. first = a;
  10709. lo = 0;
  10710. hi = b - a >> 0;
  10711. i = (_q = ((hi - 1 >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
  10712. /* while (true) { */ case 1:
  10713. /* if (!(i >= 0)) { break; } */ if(!(i >= 0)) { $s = 2; continue; }
  10714. $r = siftDown(data, i, hi, first); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10715. i = i - (1) >> 0;
  10716. /* } */ $s = 1; continue; case 2:
  10717. i$1 = hi - 1 >> 0;
  10718. /* while (true) { */ case 4:
  10719. /* if (!(i$1 >= 0)) { break; } */ if(!(i$1 >= 0)) { $s = 5; continue; }
  10720. $r = data.Swap(first, first + i$1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10721. $r = siftDown(data, lo, i$1, first); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10722. i$1 = i$1 - (1) >> 0;
  10723. /* } */ $s = 4; continue; case 5:
  10724. $s = -1; return;
  10725. /* */ } return; } if ($f === undefined) { $f = { $blk: heapSort }; } $f._q = _q; $f.a = a; $f.b = b; $f.data = data; $f.first = first; $f.hi = hi; $f.i = i; $f.i$1 = i$1; $f.lo = lo; $f.$s = $s; $f.$r = $r; return $f;
  10726. };
  10727. medianOfThree = function(data, m1, m0, m2) {
  10728. var _r, _r$1, _r$2, data, m0, m1, m2, $s, $r;
  10729. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; data = $f.data; m0 = $f.m0; m1 = $f.m1; m2 = $f.m2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10730. _r = data.Less(m1, m0); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10731. /* */ if (_r) { $s = 1; continue; }
  10732. /* */ $s = 2; continue;
  10733. /* if (_r) { */ case 1:
  10734. $r = data.Swap(m1, m0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10735. /* } */ case 2:
  10736. _r$1 = data.Less(m2, m1); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  10737. /* */ if (_r$1) { $s = 5; continue; }
  10738. /* */ $s = 6; continue;
  10739. /* if (_r$1) { */ case 5:
  10740. $r = data.Swap(m2, m1); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10741. _r$2 = data.Less(m1, m0); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  10742. /* */ if (_r$2) { $s = 9; continue; }
  10743. /* */ $s = 10; continue;
  10744. /* if (_r$2) { */ case 9:
  10745. $r = data.Swap(m1, m0); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10746. /* } */ case 10:
  10747. /* } */ case 6:
  10748. $s = -1; return;
  10749. /* */ } return; } if ($f === undefined) { $f = { $blk: medianOfThree }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.data = data; $f.m0 = m0; $f.m1 = m1; $f.m2 = m2; $f.$s = $s; $f.$r = $r; return $f;
  10750. };
  10751. swapRange = function(data, a, b, n) {
  10752. var a, b, data, i, n, $s, $r;
  10753. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; a = $f.a; b = $f.b; data = $f.data; i = $f.i; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10754. i = 0;
  10755. /* while (true) { */ case 1:
  10756. /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 2; continue; }
  10757. $r = data.Swap(a + i >> 0, b + i >> 0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10758. i = i + (1) >> 0;
  10759. /* } */ $s = 1; continue; case 2:
  10760. $s = -1; return;
  10761. /* */ } return; } if ($f === undefined) { $f = { $blk: swapRange }; } $f.a = a; $f.b = b; $f.data = data; $f.i = i; $f.n = n; $f.$s = $s; $f.$r = $r; return $f;
  10762. };
  10763. doPivot = function(data, lo, hi) {
  10764. var _q, _q$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tmp, _tmp$1, _tmp$2, _tmp$3, _v, _v$1, _v$2, _v$3, _v$4, a, b, c, data, dups, hi, lo, m, midhi, midlo, pivot, protect, s, $s, $r;
  10765. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _q$1 = $f._q$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _v = $f._v; _v$1 = $f._v$1; _v$2 = $f._v$2; _v$3 = $f._v$3; _v$4 = $f._v$4; a = $f.a; b = $f.b; c = $f.c; data = $f.data; dups = $f.dups; hi = $f.hi; lo = $f.lo; m = $f.m; midhi = $f.midhi; midlo = $f.midlo; pivot = $f.pivot; protect = $f.protect; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10766. midlo = 0;
  10767. midhi = 0;
  10768. m = ((((((lo + hi >> 0) >>> 0)) >>> 1 >>> 0) >> 0));
  10769. /* */ if ((hi - lo >> 0) > 40) { $s = 1; continue; }
  10770. /* */ $s = 2; continue;
  10771. /* if ((hi - lo >> 0) > 40) { */ case 1:
  10772. s = (_q = ((hi - lo >> 0)) / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
  10773. $r = medianOfThree(data, lo, lo + s >> 0, lo + ($imul(2, s)) >> 0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10774. $r = medianOfThree(data, m, m - s >> 0, m + s >> 0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10775. $r = medianOfThree(data, hi - 1 >> 0, (hi - 1 >> 0) - s >> 0, (hi - 1 >> 0) - ($imul(2, s)) >> 0); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10776. /* } */ case 2:
  10777. $r = medianOfThree(data, lo, m, hi - 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10778. pivot = lo;
  10779. _tmp = lo + 1 >> 0;
  10780. _tmp$1 = hi - 1 >> 0;
  10781. a = _tmp;
  10782. c = _tmp$1;
  10783. /* while (true) { */ case 7:
  10784. if (!(a < c)) { _v = false; $s = 9; continue s; }
  10785. _r = data.Less(a, pivot); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10786. _v = _r; case 9:
  10787. /* if (!(_v)) { break; } */ if(!(_v)) { $s = 8; continue; }
  10788. a = a + (1) >> 0;
  10789. /* } */ $s = 7; continue; case 8:
  10790. b = a;
  10791. /* while (true) { */ case 11:
  10792. /* while (true) { */ case 13:
  10793. if (!(b < c)) { _v$1 = false; $s = 15; continue s; }
  10794. _r$1 = data.Less(pivot, b); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  10795. _v$1 = !_r$1; case 15:
  10796. /* if (!(_v$1)) { break; } */ if(!(_v$1)) { $s = 14; continue; }
  10797. b = b + (1) >> 0;
  10798. /* } */ $s = 13; continue; case 14:
  10799. /* while (true) { */ case 17:
  10800. if (!(b < c)) { _v$2 = false; $s = 19; continue s; }
  10801. _r$2 = data.Less(pivot, c - 1 >> 0); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  10802. _v$2 = _r$2; case 19:
  10803. /* if (!(_v$2)) { break; } */ if(!(_v$2)) { $s = 18; continue; }
  10804. c = c - (1) >> 0;
  10805. /* } */ $s = 17; continue; case 18:
  10806. if (b >= c) {
  10807. /* break; */ $s = 12; continue;
  10808. }
  10809. $r = data.Swap(b, c - 1 >> 0); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10810. b = b + (1) >> 0;
  10811. c = c - (1) >> 0;
  10812. /* } */ $s = 11; continue; case 12:
  10813. protect = (hi - c >> 0) < 5;
  10814. /* */ if (!protect && (hi - c >> 0) < (_q$1 = ((hi - lo >> 0)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))) { $s = 22; continue; }
  10815. /* */ $s = 23; continue;
  10816. /* if (!protect && (hi - c >> 0) < (_q$1 = ((hi - lo >> 0)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))) { */ case 22:
  10817. dups = 0;
  10818. _r$3 = data.Less(pivot, hi - 1 >> 0); /* */ $s = 26; case 26: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  10819. /* */ if (!_r$3) { $s = 24; continue; }
  10820. /* */ $s = 25; continue;
  10821. /* if (!_r$3) { */ case 24:
  10822. $r = data.Swap(c, hi - 1 >> 0); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10823. c = c + (1) >> 0;
  10824. dups = dups + (1) >> 0;
  10825. /* } */ case 25:
  10826. _r$4 = data.Less(b - 1 >> 0, pivot); /* */ $s = 30; case 30: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  10827. /* */ if (!_r$4) { $s = 28; continue; }
  10828. /* */ $s = 29; continue;
  10829. /* if (!_r$4) { */ case 28:
  10830. b = b - (1) >> 0;
  10831. dups = dups + (1) >> 0;
  10832. /* } */ case 29:
  10833. _r$5 = data.Less(m, pivot); /* */ $s = 33; case 33: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  10834. /* */ if (!_r$5) { $s = 31; continue; }
  10835. /* */ $s = 32; continue;
  10836. /* if (!_r$5) { */ case 31:
  10837. $r = data.Swap(m, b - 1 >> 0); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10838. b = b - (1) >> 0;
  10839. dups = dups + (1) >> 0;
  10840. /* } */ case 32:
  10841. protect = dups > 1;
  10842. /* } */ case 23:
  10843. /* */ if (protect) { $s = 35; continue; }
  10844. /* */ $s = 36; continue;
  10845. /* if (protect) { */ case 35:
  10846. /* while (true) { */ case 37:
  10847. /* while (true) { */ case 39:
  10848. if (!(a < b)) { _v$3 = false; $s = 41; continue s; }
  10849. _r$6 = data.Less(b - 1 >> 0, pivot); /* */ $s = 42; case 42: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  10850. _v$3 = !_r$6; case 41:
  10851. /* if (!(_v$3)) { break; } */ if(!(_v$3)) { $s = 40; continue; }
  10852. b = b - (1) >> 0;
  10853. /* } */ $s = 39; continue; case 40:
  10854. /* while (true) { */ case 43:
  10855. if (!(a < b)) { _v$4 = false; $s = 45; continue s; }
  10856. _r$7 = data.Less(a, pivot); /* */ $s = 46; case 46: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
  10857. _v$4 = _r$7; case 45:
  10858. /* if (!(_v$4)) { break; } */ if(!(_v$4)) { $s = 44; continue; }
  10859. a = a + (1) >> 0;
  10860. /* } */ $s = 43; continue; case 44:
  10861. if (a >= b) {
  10862. /* break; */ $s = 38; continue;
  10863. }
  10864. $r = data.Swap(a, b - 1 >> 0); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10865. a = a + (1) >> 0;
  10866. b = b - (1) >> 0;
  10867. /* } */ $s = 37; continue; case 38:
  10868. /* } */ case 36:
  10869. $r = data.Swap(pivot, b - 1 >> 0); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10870. _tmp$2 = b - 1 >> 0;
  10871. _tmp$3 = c;
  10872. midlo = _tmp$2;
  10873. midhi = _tmp$3;
  10874. $s = -1; return [midlo, midhi];
  10875. /* */ } return; } if ($f === undefined) { $f = { $blk: doPivot }; } $f._q = _q; $f._q$1 = _q$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._v = _v; $f._v$1 = _v$1; $f._v$2 = _v$2; $f._v$3 = _v$3; $f._v$4 = _v$4; $f.a = a; $f.b = b; $f.c = c; $f.data = data; $f.dups = dups; $f.hi = hi; $f.lo = lo; $f.m = m; $f.midhi = midhi; $f.midlo = midlo; $f.pivot = pivot; $f.protect = protect; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  10876. };
  10877. quickSort = function(data, a, b, maxDepth$1) {
  10878. var _r, _r$1, _tuple, a, b, data, i, maxDepth$1, mhi, mlo, $s, $r;
  10879. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; a = $f.a; b = $f.b; data = $f.data; i = $f.i; maxDepth$1 = $f.maxDepth$1; mhi = $f.mhi; mlo = $f.mlo; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10880. /* while (true) { */ case 1:
  10881. /* if (!((b - a >> 0) > 12)) { break; } */ if(!((b - a >> 0) > 12)) { $s = 2; continue; }
  10882. /* */ if (maxDepth$1 === 0) { $s = 3; continue; }
  10883. /* */ $s = 4; continue;
  10884. /* if (maxDepth$1 === 0) { */ case 3:
  10885. $r = heapSort(data, a, b); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10886. $s = -1; return;
  10887. /* } */ case 4:
  10888. maxDepth$1 = maxDepth$1 - (1) >> 0;
  10889. _r = doPivot(data, a, b); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10890. _tuple = _r;
  10891. mlo = _tuple[0];
  10892. mhi = _tuple[1];
  10893. /* */ if ((mlo - a >> 0) < (b - mhi >> 0)) { $s = 7; continue; }
  10894. /* */ $s = 8; continue;
  10895. /* if ((mlo - a >> 0) < (b - mhi >> 0)) { */ case 7:
  10896. $r = quickSort(data, a, mlo, maxDepth$1); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10897. a = mhi;
  10898. $s = 9; continue;
  10899. /* } else { */ case 8:
  10900. $r = quickSort(data, mhi, b, maxDepth$1); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10901. b = mlo;
  10902. /* } */ case 9:
  10903. /* } */ $s = 1; continue; case 2:
  10904. /* */ if ((b - a >> 0) > 1) { $s = 12; continue; }
  10905. /* */ $s = 13; continue;
  10906. /* if ((b - a >> 0) > 1) { */ case 12:
  10907. i = a + 6 >> 0;
  10908. /* while (true) { */ case 14:
  10909. /* if (!(i < b)) { break; } */ if(!(i < b)) { $s = 15; continue; }
  10910. _r$1 = data.Less(i, i - 6 >> 0); /* */ $s = 18; case 18: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  10911. /* */ if (_r$1) { $s = 16; continue; }
  10912. /* */ $s = 17; continue;
  10913. /* if (_r$1) { */ case 16:
  10914. $r = data.Swap(i, i - 6 >> 0); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10915. /* } */ case 17:
  10916. i = i + (1) >> 0;
  10917. /* } */ $s = 14; continue; case 15:
  10918. $r = insertionSort(data, a, b); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10919. /* } */ case 13:
  10920. $s = -1; return;
  10921. /* */ } return; } if ($f === undefined) { $f = { $blk: quickSort }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.a = a; $f.b = b; $f.data = data; $f.i = i; $f.maxDepth$1 = maxDepth$1; $f.mhi = mhi; $f.mlo = mlo; $f.$s = $s; $f.$r = $r; return $f;
  10922. };
  10923. Sort = function(data) {
  10924. var _r, data, n, $s, $r;
  10925. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; data = $f.data; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10926. _r = data.Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10927. n = _r;
  10928. $r = quickSort(data, 0, n, maxDepth(n)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10929. $s = -1; return;
  10930. /* */ } return; } if ($f === undefined) { $f = { $blk: Sort }; } $f._r = _r; $f.data = data; $f.n = n; $f.$s = $s; $f.$r = $r; return $f;
  10931. };
  10932. $pkg.Sort = Sort;
  10933. maxDepth = function(n) {
  10934. var depth, i, n;
  10935. depth = 0;
  10936. i = n;
  10937. while (true) {
  10938. if (!(i > 0)) { break; }
  10939. depth = depth + (1) >> 0;
  10940. i = (i >> $min((1), 31)) >> 0;
  10941. }
  10942. return $imul(depth, 2);
  10943. };
  10944. reverse.ptr.prototype.Less = function(i, j) {
  10945. var _r, i, j, r, $s, $r;
  10946. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; i = $f.i; j = $f.j; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10947. r = this;
  10948. _r = r.Interface.Less(j, i); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  10949. $s = -1; return _r;
  10950. /* */ } return; } if ($f === undefined) { $f = { $blk: reverse.ptr.prototype.Less }; } $f._r = _r; $f.i = i; $f.j = j; $f.r = r; $f.$s = $s; $f.$r = $r; return $f;
  10951. };
  10952. reverse.prototype.Less = function(i, j) { return this.$val.Less(i, j); };
  10953. Reverse = function(data) {
  10954. var data;
  10955. return new reverse.ptr(data);
  10956. };
  10957. $pkg.Reverse = Reverse;
  10958. StringSlice.prototype.Len = function() {
  10959. var p;
  10960. p = this;
  10961. return p.$length;
  10962. };
  10963. $ptrType(StringSlice).prototype.Len = function() { return this.$get().Len(); };
  10964. StringSlice.prototype.Less = function(i, j) {
  10965. var i, j, p;
  10966. p = this;
  10967. return ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) < ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]);
  10968. };
  10969. $ptrType(StringSlice).prototype.Less = function(i, j) { return this.$get().Less(i, j); };
  10970. StringSlice.prototype.Swap = function(i, j) {
  10971. var _tmp, _tmp$1, i, j, p;
  10972. p = this;
  10973. _tmp = ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]);
  10974. _tmp$1 = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]);
  10975. ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i] = _tmp);
  10976. ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j] = _tmp$1);
  10977. };
  10978. $ptrType(StringSlice).prototype.Swap = function(i, j) { return this.$get().Swap(i, j); };
  10979. StringSlice.prototype.Sort = function() {
  10980. var p, $s, $r;
  10981. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10982. p = this;
  10983. $r = Sort(p); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10984. $s = -1; return;
  10985. /* */ } return; } if ($f === undefined) { $f = { $blk: StringSlice.prototype.Sort }; } $f.p = p; $f.$s = $s; $f.$r = $r; return $f;
  10986. };
  10987. $ptrType(StringSlice).prototype.Sort = function() { return this.$get().Sort(); };
  10988. Strings = function(a) {
  10989. var a, $s, $r;
  10990. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; a = $f.a; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10991. $r = Sort(($subslice(new StringSlice(a.$array), a.$offset, a.$offset + a.$length))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  10992. $s = -1; return;
  10993. /* */ } return; } if ($f === undefined) { $f = { $blk: Strings }; } $f.a = a; $f.$s = $s; $f.$r = $r; return $f;
  10994. };
  10995. $pkg.Strings = Strings;
  10996. Stable = function(data) {
  10997. var _arg, _arg$1, _r, data, $s, $r;
  10998. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; data = $f.data; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  10999. _arg = data;
  11000. _r = data.Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  11001. _arg$1 = _r;
  11002. $r = stable(_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  11003. $s = -1; return;
  11004. /* */ } return; } if ($f === undefined) { $f = { $blk: Stable }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f.data = data; $f.$s = $s; $f.$r = $r; return $f;
  11005. };
  11006. $pkg.Stable = Stable;
  11007. stable = function(data, n) {
  11008. var _tmp, _tmp$1, _tmp$2, _tmp$3, a, b, blockSize, data, m, n, $s, $r;
  11009. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; a = $f.a; b = $f.b; blockSize = $f.blockSize; data = $f.data; m = $f.m; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  11010. blockSize = 20;
  11011. _tmp = 0;
  11012. _tmp$1 = blockSize;
  11013. a = _tmp;
  11014. b = _tmp$1;
  11015. /* while (true) { */ case 1:
  11016. /* if (!(b <= n)) { break; } */ if(!(b <= n)) { $s = 2; continue; }
  11017. $r = insertionSort(data, a, b); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  11018. a = b;
  11019. b = b + (blockSize) >> 0;
  11020. /* } */ $s = 1; continue; case 2:
  11021. $r = insertionSort(data, a, n); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  11022. /* while (true) { */ case 5:
  11023. /* if (!(blockSize < n)) { break; } */ if(!(blockSize < n)) { $s = 6; continue; }
  11024. _tmp$2 = 0;
  11025. _tmp$3 = $imul(2, blockSize);
  11026. a = _tmp$2;
  11027. b = _tmp$3;
  11028. /* while (true) { */ case 7:
  11029. /* if (!(b <= n)) { break; } */ if(!(b <= n)) { $s = 8; continue; }
  11030. $r = symMerge(data, a, a + blockSize >> 0, b); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  11031. a = b;
  11032. b = b + (($imul(2, blockSize))) >> 0;
  11033. /* } */ $s = 7; continue; case 8:
  11034. m = a + blockSize >> 0;
  11035. /* */ if (m < n) { $s = 10; continue; }
  11036. /* */ $s = 11; continue;
  11037. /* if (m < n) { */ case 10:
  11038. $r = symMerge(data, a, m, n); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  11039. /* } */ case 11:
  11040. blockSize = $imul(blockSize, (2));
  11041. /* } */ $s = 5; continue; case 6:
  11042. $s = -1; return;
  11043. /* */ } return; } if ($f === undefined) { $f = { $blk: stable }; } $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f.a = a; $f.b = b; $f.blockSize = blockSize; $f.data = data; $f.m = m; $f.n = n; $f.$s = $s; $f.$r = $r; return $f;
  11044. };
  11045. symMerge = function(data, a, m, b) {
  11046. var _r, _r$1, _r$2, _tmp, _tmp$1, a, b, c, data, end, h, h$1, i, i$1, j, j$1, k, k$1, m, mid, n, p, r, start, $s, $r;
  11047. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; a = $f.a; b = $f.b; c = $f.c; data = $f.data; end = $f.end; h = $f.h; h$1 = $f.h$1; i = $f.i; i$1 = $f.i$1; j = $f.j; j$1 = $f.j$1; k = $f.k; k$1 = $f.k$1; m = $f.m; mid = $f.mid; n = $f.n; p = $f.p; r = $f.r; start = $f.start; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  11048. /* */ if ((m - a >> 0) === 1) { $s = 1; continue; }
  11049. /* */ $s = 2; continue;
  11050. /* if ((m - a >> 0) === 1) { */ case 1:
  11051. i = m;
  11052. j = b;
  11053. /* while (true) { */ case 3:
  11054. /* if (!(i < j)) { break; } */ if(!(i < j)) { $s = 4; continue; }
  11055. h = ((((((i + j >> 0) >>> 0)) >>> 1 >>> 0) >> 0));
  11056. _r = data.Less(h, a); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  11057. /* */ if (_r) { $s = 5; continue; }
  11058. /* */ $s = 6; continue;
  11059. /* if (_r) { */ case 5:
  11060. i = h + 1 >> 0;
  11061. $s = 7; continue;
  11062. /* } else { */ case 6:
  11063. j = h;
  11064. /* } */ case 7:
  11065. /* } */ $s = 3; continue; case 4:
  11066. k = a;
  11067. /* while (true) { */ case 9:
  11068. /* if (!(k < (i - 1 >> 0))) { break; } */ if(!(k < (i - 1 >> 0))) { $s = 10; continue; }
  11069. $r = data.Swap(k, k + 1 >> 0); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  11070. k = k + (1) >> 0;
  11071. /* } */ $s = 9; continue; case 10:
  11072. $s = -1; return;
  11073. /* } */ case 2:
  11074. /* */ if ((b - m >> 0) === 1) { $s = 12; continue; }
  11075. /* */ $s = 13; continue;
  11076. /* if ((b - m >> 0) === 1) { */ case 12:
  11077. i$1 = a;
  11078. j$1 = m;
  11079. /* while (true) { */ case 14:
  11080. /* if (!(i$1 < j$1)) { break; } */ if(!(i$1 < j$1)) { $s = 15; continue; }
  11081. h$1 = ((((((i$1 + j$1 >> 0) >>> 0)) >>> 1 >>> 0) >> 0));
  11082. _r$1 = data.Less(m, h$1); /* */ $s = 19; case 19: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  11083. /* */ if (!_r$1) { $s = 16; continue; }
  11084. /* */ $s = 17; continue;
  11085. /* if (!_r$1) { */ case 16:
  11086. i$1 = h$1 + 1 >> 0;
  11087. $s = 18; continue;
  11088. /* } else { */ case 17:
  11089. j$1 = h$1;
  11090. /* } */ case 18:
  11091. /* } */ $s = 14; continue; case 15:
  11092. k$1 = m;
  11093. /* while (true) { */ case 20:
  11094. /* if (!(k$1 > i$1)) { break; } */ if(!(k$1 > i$1)) { $s = 21; continue; }
  11095. $r = data.Swap(k$1, k$1 - 1 >> 0); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  11096. k$1 = k$1 - (1) >> 0;
  11097. /* } */ $s = 20; continue; case 21:
  11098. $s = -1; return;
  11099. /* } */ case 13:
  11100. mid = ((((((a + b >> 0) >>> 0)) >>> 1 >>> 0) >> 0));
  11101. n = mid + m >> 0;
  11102. _tmp = 0;
  11103. _tmp$1 = 0;
  11104. start = _tmp;
  11105. r = _tmp$1;
  11106. if (m > mid) {
  11107. start = n - b >> 0;
  11108. r = mid;
  11109. } else {
  11110. start = a;
  11111. r = m;
  11112. }
  11113. p = n - 1 >> 0;
  11114. /* while (true) { */ case 23:
  11115. /* if (!(start < r)) { break; } */ if(!(start < r)) { $s = 24; continue; }
  11116. c = ((((((start + r >> 0) >>> 0)) >>> 1 >>> 0) >> 0));
  11117. _r$2 = data.Less(p - c >> 0, c); /* */ $s = 28; case 28: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  11118. /* */ if (!_r$2) { $s = 25; continue; }
  11119. /* */ $s = 26; continue;
  11120. /* if (!_r$2) { */ case 25:
  11121. start = c + 1 >> 0;
  11122. $s = 27; continue;
  11123. /* } else { */ case 26:
  11124. r = c;
  11125. /* } */ case 27:
  11126. /* } */ $s = 23; continue; case 24:
  11127. end = n - start >> 0;
  11128. /* */ if (start < m && m < end) { $s = 29; continue; }
  11129. /* */ $s = 30; continue;
  11130. /* if (start < m && m < end) { */ case 29:
  11131. $r = rotate(data, start, m, end); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  11132. /* } */ case 30:
  11133. /* */ if (a < start && start < mid) { $s = 32; continue; }
  11134. /* */ $s = 33; continue;
  11135. /* if (a < start && start < mid) { */ case 32:
  11136. $r = symMerge(data, a, start, mid); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  11137. /* } */ case 33:
  11138. /* */ if (mid < end && end < b) { $s = 35; continue; }
  11139. /* */ $s = 36; continue;
  11140. /* if (mid < end && end < b) { */ case 35:
  11141. $r = symMerge(data, mid, end, b); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  11142. /* } */ case 36:
  11143. $s = -1; return;
  11144. /* */ } return; } if ($f === undefined) { $f = { $blk: symMerge }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f.a = a; $f.b = b; $f.c = c; $f.data = data; $f.end = end; $f.h = h; $f.h$1 = h$1; $f.i = i; $f.i$1 = i$1; $f.j = j; $f.j$1 = j$1; $f.k = k; $f.k$1 = k$1; $f.m = m; $f.mid = mid; $f.n = n; $f.p = p; $f.r = r; $f.start = start; $f.$s = $s; $f.$r = $r; return $f;
  11145. };
  11146. rotate = function(data, a, m, b) {
  11147. var a, b, data, i, j, m, $s, $r;
  11148. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; a = $f.a; b = $f.b; data = $f.data; i = $f.i; j = $f.j; m = $f.m; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  11149. i = m - a >> 0;
  11150. j = b - m >> 0;
  11151. /* while (true) { */ case 1:
  11152. /* if (!(!((i === j)))) { break; } */ if(!(!((i === j)))) { $s = 2; continue; }
  11153. /* */ if (i > j) { $s = 3; continue; }
  11154. /* */ $s = 4; continue;
  11155. /* if (i > j) { */ case 3:
  11156. $r = swapRange(data, m - i >> 0, m, j); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  11157. i = i - (j) >> 0;
  11158. $s = 5; continue;
  11159. /* } else { */ case 4:
  11160. $r = swapRange(data, m - i >> 0, (m + j >> 0) - i >> 0, i); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  11161. j = j - (i) >> 0;
  11162. /* } */ case 5:
  11163. /* } */ $s = 1; continue; case 2:
  11164. $r = swapRange(data, m - i >> 0, m, i); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  11165. $s = -1; return;
  11166. /* */ } return; } if ($f === undefined) { $f = { $blk: rotate }; } $f.a = a; $f.b = b; $f.data = data; $f.i = i; $f.j = j; $f.m = m; $f.$s = $s; $f.$r = $r; return $f;
  11167. };
  11168. reverse.methods = [{prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}];
  11169. StringSlice.methods = [{prop: "Search", name: "Search", pkg: "", typ: $funcType([$String], [$Int], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Sort", name: "Sort", pkg: "", typ: $funcType([], [], false)}];
  11170. Interface.init([{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]);
  11171. reverse.init("", [{prop: "Interface", name: "Interface", embedded: true, exported: true, typ: Interface, tag: ""}]);
  11172. StringSlice.init($String);
  11173. $init = function() {
  11174. $pkg.$init = function() {};
  11175. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  11176. $r = reflect.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  11177. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  11178. };
  11179. $pkg.$init = $init;
  11180. return $pkg;
  11181. })();
  11182. $packages["internal/fmtsort"] = (function() {
  11183. var $pkg = {}, $init, reflect, sort, SortedMap, ptrType, sliceType, Sort, compare, nilCompare, floatCompare, isNaN;
  11184. reflect = $packages["reflect"];
  11185. sort = $packages["sort"];
  11186. SortedMap = $pkg.SortedMap = $newType(0, $kindStruct, "fmtsort.SortedMap", true, "internal/fmtsort", true, function(Key_, Value_) {
  11187. this.$val = this;
  11188. if (arguments.length === 0) {
  11189. this.Key = sliceType.nil;
  11190. this.Value = sliceType.nil;
  11191. return;
  11192. }
  11193. this.Key = Key_;
  11194. this.Value = Value_;
  11195. });
  11196. ptrType = $ptrType(SortedMap);
  11197. sliceType = $sliceType(reflect.Value);
  11198. SortedMap.ptr.prototype.Len = function() {
  11199. var o;
  11200. o = this;
  11201. return o.Key.$length;
  11202. };
  11203. SortedMap.prototype.Len = function() { return this.$val.Len(); };
  11204. SortedMap.ptr.prototype.Less = function(i, j) {
  11205. var _r, i, j, o, x, x$1, $s, $r;
  11206. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; i = $f.i; j = $f.j; o = $f.o; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  11207. o = this;
  11208. _r = compare($clone((x = o.Key, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), reflect.Value), $clone((x$1 = o.Key, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])), reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  11209. $s = -1; return _r < 0;
  11210. /* */ } return; } if ($f === undefined) { $f = { $blk: SortedMap.ptr.prototype.Less }; } $f._r = _r; $f.i = i; $f.j = j; $f.o = o; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f;
  11211. };
  11212. SortedMap.prototype.Less = function(i, j) { return this.$val.Less(i, j); };
  11213. SortedMap.ptr.prototype.Swap = function(i, j) {
  11214. var _tmp, _tmp$1, _tmp$2, _tmp$3, i, j, o, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7;
  11215. o = this;
  11216. _tmp = (x = o.Key, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j]));
  11217. _tmp$1 = (x$1 = o.Key, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i]));
  11218. (x$2 = o.Key, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i] = _tmp));
  11219. (x$3 = o.Key, ((j < 0 || j >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + j] = _tmp$1));
  11220. _tmp$2 = (x$4 = o.Value, ((j < 0 || j >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + j]));
  11221. _tmp$3 = (x$5 = o.Value, ((i < 0 || i >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + i]));
  11222. (x$6 = o.Value, ((i < 0 || i >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i] = _tmp$2));
  11223. (x$7 = o.Value, ((j < 0 || j >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + j] = _tmp$3));
  11224. };
  11225. SortedMap.prototype.Swap = function(i, j) { return this.$val.Swap(i, j); };
  11226. Sort = function(mapValue) {
  11227. var _r, _r$1, _r$2, _r$3, i, iter, key, mapValue, sorted, value, $s, $r;
  11228. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; i = $f.i; iter = $f.iter; key = $f.key; mapValue = $f.mapValue; sorted = $f.sorted; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  11229. _r = $clone(mapValue, reflect.Value).Type().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  11230. /* */ if (!((_r === 21))) { $s = 1; continue; }
  11231. /* */ $s = 2; continue;
  11232. /* if (!((_r === 21))) { */ case 1:
  11233. $s = -1; return ptrType.nil;
  11234. /* } */ case 2:
  11235. key = $makeSlice(sliceType, $clone(mapValue, reflect.Value).Len());
  11236. value = $makeSlice(sliceType, key.$length);
  11237. iter = $clone(mapValue, reflect.Value).MapRange();
  11238. i = 0;
  11239. /* while (true) { */ case 4:
  11240. _r$1 = iter.Next(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  11241. /* if (!(_r$1)) { break; } */ if(!(_r$1)) { $s = 5; continue; }
  11242. _r$2 = iter.Key(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  11243. ((i < 0 || i >= key.$length) ? ($throwRuntimeError("index out of range"), undefined) : key.$array[key.$offset + i] = _r$2);
  11244. _r$3 = iter.Value(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  11245. ((i < 0 || i >= value.$length) ? ($throwRuntimeError("index out of range"), undefined) : value.$array[value.$offset + i] = _r$3);
  11246. i = i + (1) >> 0;
  11247. /* } */ $s = 4; continue; case 5:
  11248. sorted = new SortedMap.ptr(key, value);
  11249. $r = sort.Stable(sorted); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  11250. $s = -1; return sorted;
  11251. /* */ } return; } if ($f === undefined) { $f = { $blk: Sort }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f.i = i; $f.iter = iter; $f.key = key; $f.mapValue = mapValue; $f.sorted = sorted; $f.value = value; $f.$s = $s; $f.$r = $r; return $f;
  11252. };
  11253. $pkg.Sort = Sort;
  11254. compare = function(aVal, bVal) {
  11255. var _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, a, a$1, a$2, a$3, a$4, a$5, aType, aVal, ap, b, b$1, b$2, b$3, b$4, b$5, bType, bVal, bp, c, c$1, c$2, c$3, c$4, c$5, i, i$1, ok, ok$1, $s, $r;
  11256. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _arg$6 = $f._arg$6; _arg$7 = $f._arg$7; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$16 = $f._r$16; _r$17 = $f._r$17; _r$18 = $f._r$18; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$10 = $f._tmp$10; _tmp$11 = $f._tmp$11; _tmp$12 = $f._tmp$12; _tmp$13 = $f._tmp$13; _tmp$14 = $f._tmp$14; _tmp$15 = $f._tmp$15; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; a = $f.a; a$1 = $f.a$1; a$2 = $f.a$2; a$3 = $f.a$3; a$4 = $f.a$4; a$5 = $f.a$5; aType = $f.aType; aVal = $f.aVal; ap = $f.ap; b = $f.b; b$1 = $f.b$1; b$2 = $f.b$2; b$3 = $f.b$3; b$4 = $f.b$4; b$5 = $f.b$5; bType = $f.bType; bVal = $f.bVal; bp = $f.bp; c = $f.c; c$1 = $f.c$1; c$2 = $f.c$2; c$3 = $f.c$3; c$4 = $f.c$4; c$5 = $f.c$5; i = $f.i; i$1 = $f.i$1; ok = $f.ok; ok$1 = $f.ok$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  11257. _tmp = $clone(aVal, reflect.Value).Type();
  11258. _tmp$1 = $clone(bVal, reflect.Value).Type();
  11259. aType = _tmp;
  11260. bType = _tmp$1;
  11261. if (!($interfaceIsEqual(aType, bType))) {
  11262. $s = -1; return -1;
  11263. }
  11264. _1 = $clone(aVal, reflect.Value).Kind();
  11265. /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 2; continue; }
  11266. /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 3; continue; }
  11267. /* */ if (_1 === (24)) { $s = 4; continue; }
  11268. /* */ if ((_1 === (13)) || (_1 === (14))) { $s = 5; continue; }
  11269. /* */ if ((_1 === (15)) || (_1 === (16))) { $s = 6; continue; }
  11270. /* */ if (_1 === (1)) { $s = 7; continue; }
  11271. /* */ if (_1 === (22)) { $s = 8; continue; }
  11272. /* */ if (_1 === (18)) { $s = 9; continue; }
  11273. /* */ if (_1 === (25)) { $s = 10; continue; }
  11274. /* */ if (_1 === (17)) { $s = 11; continue; }
  11275. /* */ if (_1 === (20)) { $s = 12; continue; }
  11276. /* */ $s = 13; continue;
  11277. /* if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 2:
  11278. _tmp$2 = $clone(aVal, reflect.Value).Int();
  11279. _tmp$3 = $clone(bVal, reflect.Value).Int();
  11280. a = _tmp$2;
  11281. b = _tmp$3;
  11282. if ((a.$high < b.$high || (a.$high === b.$high && a.$low < b.$low))) {
  11283. $s = -1; return -1;
  11284. } else if ((a.$high > b.$high || (a.$high === b.$high && a.$low > b.$low))) {
  11285. $s = -1; return 1;
  11286. } else {
  11287. $s = -1; return 0;
  11288. }
  11289. $s = 14; continue;
  11290. /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 3:
  11291. _tmp$4 = $clone(aVal, reflect.Value).Uint();
  11292. _tmp$5 = $clone(bVal, reflect.Value).Uint();
  11293. a$1 = _tmp$4;
  11294. b$1 = _tmp$5;
  11295. if ((a$1.$high < b$1.$high || (a$1.$high === b$1.$high && a$1.$low < b$1.$low))) {
  11296. $s = -1; return -1;
  11297. } else if ((a$1.$high > b$1.$high || (a$1.$high === b$1.$high && a$1.$low > b$1.$low))) {
  11298. $s = -1; return 1;
  11299. } else {
  11300. $s = -1; return 0;
  11301. }
  11302. $s = 14; continue;
  11303. /* } else if (_1 === (24)) { */ case 4:
  11304. _r = $clone(aVal, reflect.Value).String(); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  11305. _tmp$6 = _r;
  11306. _r$1 = $clone(bVal, reflect.Value).String(); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  11307. _tmp$7 = _r$1;
  11308. a$2 = _tmp$6;
  11309. b$2 = _tmp$7;
  11310. if (a$2 < b$2) {
  11311. $s = -1; return -1;
  11312. } else if (a$2 > b$2) {
  11313. $s = -1; return 1;
  11314. } else {
  11315. $s = -1; return 0;
  11316. }
  11317. $s = 14; continue;
  11318. /* } else if ((_1 === (13)) || (_1 === (14))) { */ case 5:
  11319. $s = -1; return floatCompare($clone(aVal, reflect.Value).Float(), $clone(bVal, reflect.Value).Float());
  11320. /* } else if ((_1 === (15)) || (_1 === (16))) { */ case 6:
  11321. _tmp$8 = $clone(aVal, reflect.Value).Complex();
  11322. _tmp$9 = $clone(bVal, reflect.Value).Complex();
  11323. a$3 = _tmp$8;
  11324. b$3 = _tmp$9;
  11325. c = floatCompare(a$3.$real, b$3.$real);
  11326. if (!((c === 0))) {
  11327. $s = -1; return c;
  11328. }
  11329. $s = -1; return floatCompare(a$3.$imag, b$3.$imag);
  11330. /* } else if (_1 === (1)) { */ case 7:
  11331. _tmp$10 = $clone(aVal, reflect.Value).Bool();
  11332. _tmp$11 = $clone(bVal, reflect.Value).Bool();
  11333. a$4 = _tmp$10;
  11334. b$4 = _tmp$11;
  11335. if (a$4 === b$4) {
  11336. $s = -1; return 0;
  11337. } else if (a$4) {
  11338. $s = -1; return 1;
  11339. } else {
  11340. $s = -1; return -1;
  11341. }
  11342. $s = 14; continue;
  11343. /* } else if (_1 === (22)) { */ case 8:
  11344. _tmp$12 = $clone(aVal, reflect.Value).Pointer();
  11345. _tmp$13 = $clone(bVal, reflect.Value).Pointer();
  11346. a$5 = _tmp$12;
  11347. b$5 = _tmp$13;
  11348. if (a$5 < b$5) {
  11349. $s = -1; return -1;
  11350. } else if (a$5 > b$5) {
  11351. $s = -1; return 1;
  11352. } else {
  11353. $s = -1; return 0;
  11354. }
  11355. $s = 14; continue;
  11356. /* } else if (_1 === (18)) { */ case 9:
  11357. _tuple = nilCompare($clone(aVal, reflect.Value), $clone(bVal, reflect.Value));
  11358. c$1 = _tuple[0];
  11359. ok = _tuple[1];
  11360. if (ok) {
  11361. $s = -1; return c$1;
  11362. }
  11363. _tmp$14 = $clone(aVal, reflect.Value).Pointer();
  11364. _tmp$15 = $clone(bVal, reflect.Value).Pointer();
  11365. ap = _tmp$14;
  11366. bp = _tmp$15;
  11367. if (ap < bp) {
  11368. $s = -1; return -1;
  11369. } else if (ap > bp) {
  11370. $s = -1; return 1;
  11371. } else {
  11372. $s = -1; return 0;
  11373. }
  11374. $s = 14; continue;
  11375. /* } else if (_1 === (25)) { */ case 10:
  11376. i = 0;
  11377. /* while (true) { */ case 17:
  11378. /* if (!(i < $clone(aVal, reflect.Value).NumField())) { break; } */ if(!(i < $clone(aVal, reflect.Value).NumField())) { $s = 18; continue; }
  11379. _r$2 = $clone(aVal, reflect.Value).Field(i); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  11380. _arg = $clone(_r$2, reflect.Value);
  11381. _r$3 = $clone(bVal, reflect.Value).Field(i); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  11382. _arg$1 = $clone(_r$3, reflect.Value);
  11383. _r$4 = compare(_arg, _arg$1); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  11384. c$2 = _r$4;
  11385. if (!((c$2 === 0))) {
  11386. $s = -1; return c$2;
  11387. }
  11388. i = i + (1) >> 0;
  11389. /* } */ $s = 17; continue; case 18:
  11390. $s = -1; return 0;
  11391. /* } else if (_1 === (17)) { */ case 11:
  11392. i$1 = 0;
  11393. /* while (true) { */ case 22:
  11394. /* if (!(i$1 < $clone(aVal, reflect.Value).Len())) { break; } */ if(!(i$1 < $clone(aVal, reflect.Value).Len())) { $s = 23; continue; }
  11395. _r$5 = $clone(aVal, reflect.Value).Index(i$1); /* */ $s = 24; case 24: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  11396. _arg$2 = $clone(_r$5, reflect.Value);
  11397. _r$6 = $clone(bVal, reflect.Value).Index(i$1); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  11398. _arg$3 = $clone(_r$6, reflect.Value);
  11399. _r$7 = compare(_arg$2, _arg$3); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
  11400. c$3 = _r$7;
  11401. if (!((c$3 === 0))) {
  11402. $s = -1; return c$3;
  11403. }
  11404. i$1 = i$1 + (1) >> 0;
  11405. /* } */ $s = 22; continue; case 23:
  11406. $s = -1; return 0;
  11407. /* } else if (_1 === (20)) { */ case 12:
  11408. _tuple$1 = nilCompare($clone(aVal, reflect.Value), $clone(bVal, reflect.Value));
  11409. c$4 = _tuple$1[0];
  11410. ok$1 = _tuple$1[1];
  11411. if (ok$1) {
  11412. $s = -1; return c$4;
  11413. }
  11414. _r$8 = $clone(aVal, reflect.Value).Elem(); /* */ $s = 27; case 27: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
  11415. _r$9 = $clone(_r$8, reflect.Value).Type(); /* */ $s = 28; case 28: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  11416. _r$10 = reflect.ValueOf(_r$9); /* */ $s = 29; case 29: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
  11417. _arg$4 = $clone(_r$10, reflect.Value);
  11418. _r$11 = $clone(bVal, reflect.Value).Elem(); /* */ $s = 30; case 30: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
  11419. _r$12 = $clone(_r$11, reflect.Value).Type(); /* */ $s = 31; case 31: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
  11420. _r$13 = reflect.ValueOf(_r$12); /* */ $s = 32; case 32: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
  11421. _arg$5 = $clone(_r$13, reflect.Value);
  11422. _r$14 = compare(_arg$4, _arg$5); /* */ $s = 33; case 33: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
  11423. c$5 = _r$14;
  11424. if (!((c$5 === 0))) {
  11425. $s = -1; return c$5;
  11426. }
  11427. _r$15 = $clone(aVal, reflect.Value).Elem(); /* */ $s = 34; case 34: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
  11428. _arg$6 = $clone(_r$15, reflect.Value);
  11429. _r$16 = $clone(bVal, reflect.Value).Elem(); /* */ $s = 35; case 35: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; }
  11430. _arg$7 = $clone(_r$16, reflect.Value);
  11431. _r$17 = compare(_arg$6, _arg$7); /* */ $s = 36; case 36: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; }
  11432. $s = -1; return _r$17;
  11433. /* } else { */ case 13:
  11434. _r$18 = aType.String(); /* */ $s = 37; case 37: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; }
  11435. $panic(new $String("bad type in compare: " + _r$18));
  11436. /* } */ case 14:
  11437. case 1:
  11438. $s = -1; return 0;
  11439. /* */ } return; } if ($f === undefined) { $f = { $blk: compare }; } $f._1 = _1; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._arg$6 = _arg$6; $f._arg$7 = _arg$7; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$16 = _r$16; $f._r$17 = _r$17; $f._r$18 = _r$18; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$10 = _tmp$10; $f._tmp$11 = _tmp$11; $f._tmp$12 = _tmp$12; $f._tmp$13 = _tmp$13; $f._tmp$14 = _tmp$14; $f._tmp$15 = _tmp$15; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.a = a; $f.a$1 = a$1; $f.a$2 = a$2; $f.a$3 = a$3; $f.a$4 = a$4; $f.a$5 = a$5; $f.aType = aType; $f.aVal = aVal; $f.ap = ap; $f.b = b; $f.b$1 = b$1; $f.b$2 = b$2; $f.b$3 = b$3; $f.b$4 = b$4; $f.b$5 = b$5; $f.bType = bType; $f.bVal = bVal; $f.bp = bp; $f.c = c; $f.c$1 = c$1; $f.c$2 = c$2; $f.c$3 = c$3; $f.c$4 = c$4; $f.c$5 = c$5; $f.i = i; $f.i$1 = i$1; $f.ok = ok; $f.ok$1 = ok$1; $f.$s = $s; $f.$r = $r; return $f;
  11440. };
  11441. nilCompare = function(aVal, bVal) {
  11442. var aVal, bVal;
  11443. if ($clone(aVal, reflect.Value).IsNil()) {
  11444. if ($clone(bVal, reflect.Value).IsNil()) {
  11445. return [0, true];
  11446. }
  11447. return [-1, true];
  11448. }
  11449. if ($clone(bVal, reflect.Value).IsNil()) {
  11450. return [1, true];
  11451. }
  11452. return [0, false];
  11453. };
  11454. floatCompare = function(a, b) {
  11455. var a, b;
  11456. if (isNaN(a)) {
  11457. return -1;
  11458. } else if (isNaN(b)) {
  11459. return 1;
  11460. } else if (a < b) {
  11461. return -1;
  11462. } else if (a > b) {
  11463. return 1;
  11464. }
  11465. return 0;
  11466. };
  11467. isNaN = function(a) {
  11468. var a;
  11469. return !((a === a));
  11470. };
  11471. ptrType.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}];
  11472. SortedMap.init("", [{prop: "Key", name: "Key", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: sliceType, tag: ""}]);
  11473. $init = function() {
  11474. $pkg.$init = function() {};
  11475. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  11476. $r = reflect.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  11477. $r = sort.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  11478. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  11479. };
  11480. $pkg.$init = $init;
  11481. return $pkg;
  11482. })();
  11483. $packages["io"] = (function() {
  11484. var $pkg = {}, $init, errors, sync, atomic, Reader, Writer, ReadWriteCloser, ReaderFrom, WriterTo, RuneReader, RuneScanner, LimitedReader, sliceType, ptrType$1, errWhence, errOffset, ReadAtLeast, ReadFull, Copy, copyBuffer;
  11485. errors = $packages["errors"];
  11486. sync = $packages["sync"];
  11487. atomic = $packages["sync/atomic"];
  11488. Reader = $pkg.Reader = $newType(8, $kindInterface, "io.Reader", true, "io", true, null);
  11489. Writer = $pkg.Writer = $newType(8, $kindInterface, "io.Writer", true, "io", true, null);
  11490. ReadWriteCloser = $pkg.ReadWriteCloser = $newType(8, $kindInterface, "io.ReadWriteCloser", true, "io", true, null);
  11491. ReaderFrom = $pkg.ReaderFrom = $newType(8, $kindInterface, "io.ReaderFrom", true, "io", true, null);
  11492. WriterTo = $pkg.WriterTo = $newType(8, $kindInterface, "io.WriterTo", true, "io", true, null);
  11493. RuneReader = $pkg.RuneReader = $newType(8, $kindInterface, "io.RuneReader", true, "io", true, null);
  11494. RuneScanner = $pkg.RuneScanner = $newType(8, $kindInterface, "io.RuneScanner", true, "io", true, null);
  11495. LimitedReader = $pkg.LimitedReader = $newType(0, $kindStruct, "io.LimitedReader", true, "io", true, function(R_, N_) {
  11496. this.$val = this;
  11497. if (arguments.length === 0) {
  11498. this.R = $ifaceNil;
  11499. this.N = new $Int64(0, 0);
  11500. return;
  11501. }
  11502. this.R = R_;
  11503. this.N = N_;
  11504. });
  11505. sliceType = $sliceType($Uint8);
  11506. ptrType$1 = $ptrType(LimitedReader);
  11507. ReadAtLeast = function(r, buf, min) {
  11508. var _r, _tmp, _tmp$1, _tuple, buf, err, min, n, nn, r, $s, $r;
  11509. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; buf = $f.buf; err = $f.err; min = $f.min; n = $f.n; nn = $f.nn; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  11510. n = 0;
  11511. err = $ifaceNil;
  11512. if (buf.$length < min) {
  11513. _tmp = 0;
  11514. _tmp$1 = $pkg.ErrShortBuffer;
  11515. n = _tmp;
  11516. err = _tmp$1;
  11517. $s = -1; return [n, err];
  11518. }
  11519. /* while (true) { */ case 1:
  11520. /* if (!(n < min && $interfaceIsEqual(err, $ifaceNil))) { break; } */ if(!(n < min && $interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
  11521. nn = 0;
  11522. _r = r.Read($subslice(buf, n)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  11523. _tuple = _r;
  11524. nn = _tuple[0];
  11525. err = _tuple[1];
  11526. n = n + (nn) >> 0;
  11527. /* } */ $s = 1; continue; case 2:
  11528. if (n >= min) {
  11529. err = $ifaceNil;
  11530. } else if (n > 0 && $interfaceIsEqual(err, $pkg.EOF)) {
  11531. err = $pkg.ErrUnexpectedEOF;
  11532. }
  11533. $s = -1; return [n, err];
  11534. /* */ } return; } if ($f === undefined) { $f = { $blk: ReadAtLeast }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.buf = buf; $f.err = err; $f.min = min; $f.n = n; $f.nn = nn; $f.r = r; $f.$s = $s; $f.$r = $r; return $f;
  11535. };
  11536. $pkg.ReadAtLeast = ReadAtLeast;
  11537. ReadFull = function(r, buf) {
  11538. var _r, _tuple, buf, err, n, r, $s, $r;
  11539. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; buf = $f.buf; err = $f.err; n = $f.n; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  11540. n = 0;
  11541. err = $ifaceNil;
  11542. _r = ReadAtLeast(r, buf, buf.$length); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  11543. _tuple = _r;
  11544. n = _tuple[0];
  11545. err = _tuple[1];
  11546. $s = -1; return [n, err];
  11547. /* */ } return; } if ($f === undefined) { $f = { $blk: ReadFull }; } $f._r = _r; $f._tuple = _tuple; $f.buf = buf; $f.err = err; $f.n = n; $f.r = r; $f.$s = $s; $f.$r = $r; return $f;
  11548. };
  11549. $pkg.ReadFull = ReadFull;
  11550. Copy = function(dst, src) {
  11551. var _r, _tuple, dst, err, src, written, $s, $r;
  11552. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; dst = $f.dst; err = $f.err; src = $f.src; written = $f.written; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  11553. written = new $Int64(0, 0);
  11554. err = $ifaceNil;
  11555. _r = copyBuffer(dst, src, sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  11556. _tuple = _r;
  11557. written = _tuple[0];
  11558. err = _tuple[1];
  11559. $s = -1; return [written, err];
  11560. /* */ } return; } if ($f === undefined) { $f = { $blk: Copy }; } $f._r = _r; $f._tuple = _tuple; $f.dst = dst; $f.err = err; $f.src = src; $f.written = written; $f.$s = $s; $f.$r = $r; return $f;
  11561. };
  11562. $pkg.Copy = Copy;
  11563. copyBuffer = function(dst, src, buf) {
  11564. var _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, buf, dst, er, err, ew, l, nr, nw, ok, ok$1, ok$2, rt, size, src, written, wt, x, x$1, x$2, x$3, x$4, $s, $r;
  11565. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; buf = $f.buf; dst = $f.dst; er = $f.er; err = $f.err; ew = $f.ew; l = $f.l; nr = $f.nr; nw = $f.nw; ok = $f.ok; ok$1 = $f.ok$1; ok$2 = $f.ok$2; rt = $f.rt; size = $f.size; src = $f.src; written = $f.written; wt = $f.wt; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  11566. written = new $Int64(0, 0);
  11567. err = $ifaceNil;
  11568. _tuple = $assertType(src, WriterTo, true);
  11569. wt = _tuple[0];
  11570. ok = _tuple[1];
  11571. /* */ if (ok) { $s = 1; continue; }
  11572. /* */ $s = 2; continue;
  11573. /* if (ok) { */ case 1:
  11574. _r = wt.WriteTo(dst); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  11575. _tuple$1 = _r;
  11576. written = _tuple$1[0];
  11577. err = _tuple$1[1];
  11578. $s = -1; return [written, err];
  11579. /* } */ case 2:
  11580. _tuple$2 = $assertType(dst, ReaderFrom, true);
  11581. rt = _tuple$2[0];
  11582. ok$1 = _tuple$2[1];
  11583. /* */ if (ok$1) { $s = 4; continue; }
  11584. /* */ $s = 5; continue;
  11585. /* if (ok$1) { */ case 4:
  11586. _r$1 = rt.ReadFrom(src); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  11587. _tuple$3 = _r$1;
  11588. written = _tuple$3[0];
  11589. err = _tuple$3[1];
  11590. $s = -1; return [written, err];
  11591. /* } */ case 5:
  11592. if (buf === sliceType.nil) {
  11593. size = 32768;
  11594. _tuple$4 = $assertType(src, ptrType$1, true);
  11595. l = _tuple$4[0];
  11596. ok$2 = _tuple$4[1];
  11597. if (ok$2 && (x = (new $Int64(0, size)), x$1 = l.N, (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low > x$1.$low)))) {
  11598. if ((x$2 = l.N, (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low < 1)))) {
  11599. size = 1;
  11600. } else {
  11601. size = (((x$3 = l.N, x$3.$low + ((x$3.$high >> 31) * 4294967296)) >> 0));
  11602. }
  11603. }
  11604. buf = $makeSlice(sliceType, size);
  11605. }
  11606. /* while (true) { */ case 7:
  11607. _r$2 = src.Read(buf); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  11608. _tuple$5 = _r$2;
  11609. nr = _tuple$5[0];
  11610. er = _tuple$5[1];
  11611. /* */ if (nr > 0) { $s = 10; continue; }
  11612. /* */ $s = 11; continue;
  11613. /* if (nr > 0) { */ case 10:
  11614. _r$3 = dst.Write($subslice(buf, 0, nr)); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  11615. _tuple$6 = _r$3;
  11616. nw = _tuple$6[0];
  11617. ew = _tuple$6[1];
  11618. if (nw > 0) {
  11619. written = (x$4 = (new $Int64(0, nw)), new $Int64(written.$high + x$4.$high, written.$low + x$4.$low));
  11620. }
  11621. if (!($interfaceIsEqual(ew, $ifaceNil))) {
  11622. err = ew;
  11623. /* break; */ $s = 8; continue;
  11624. }
  11625. if (!((nr === nw))) {
  11626. err = $pkg.ErrShortWrite;
  11627. /* break; */ $s = 8; continue;
  11628. }
  11629. /* } */ case 11:
  11630. if (!($interfaceIsEqual(er, $ifaceNil))) {
  11631. if (!($interfaceIsEqual(er, $pkg.EOF))) {
  11632. err = er;
  11633. }
  11634. /* break; */ $s = 8; continue;
  11635. }
  11636. /* } */ $s = 7; continue; case 8:
  11637. _tmp = written;
  11638. _tmp$1 = err;
  11639. written = _tmp;
  11640. err = _tmp$1;
  11641. $s = -1; return [written, err];
  11642. /* */ } return; } if ($f === undefined) { $f = { $blk: copyBuffer }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f.buf = buf; $f.dst = dst; $f.er = er; $f.err = err; $f.ew = ew; $f.l = l; $f.nr = nr; $f.nw = nw; $f.ok = ok; $f.ok$1 = ok$1; $f.ok$2 = ok$2; $f.rt = rt; $f.size = size; $f.src = src; $f.written = written; $f.wt = wt; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.$s = $s; $f.$r = $r; return $f;
  11643. };
  11644. LimitedReader.ptr.prototype.Read = function(p) {
  11645. var _r, _tmp, _tmp$1, _tuple, err, l, n, p, x, x$1, x$2, x$3, x$4, $s, $r;
  11646. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; err = $f.err; l = $f.l; n = $f.n; p = $f.p; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  11647. n = 0;
  11648. err = $ifaceNil;
  11649. l = this;
  11650. if ((x = l.N, (x.$high < 0 || (x.$high === 0 && x.$low <= 0)))) {
  11651. _tmp = 0;
  11652. _tmp$1 = $pkg.EOF;
  11653. n = _tmp;
  11654. err = _tmp$1;
  11655. $s = -1; return [n, err];
  11656. }
  11657. if ((x$1 = (new $Int64(0, p.$length)), x$2 = l.N, (x$1.$high > x$2.$high || (x$1.$high === x$2.$high && x$1.$low > x$2.$low)))) {
  11658. p = $subslice(p, 0, $flatten64(l.N));
  11659. }
  11660. _r = l.R.Read(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  11661. _tuple = _r;
  11662. n = _tuple[0];
  11663. err = _tuple[1];
  11664. l.N = (x$3 = l.N, x$4 = (new $Int64(0, n)), new $Int64(x$3.$high - x$4.$high, x$3.$low - x$4.$low));
  11665. $s = -1; return [n, err];
  11666. /* */ } return; } if ($f === undefined) { $f = { $blk: LimitedReader.ptr.prototype.Read }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.err = err; $f.l = l; $f.n = n; $f.p = p; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.$s = $s; $f.$r = $r; return $f;
  11667. };
  11668. LimitedReader.prototype.Read = function(p) { return this.$val.Read(p); };
  11669. ptrType$1.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}];
  11670. Reader.init([{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]);
  11671. Writer.init([{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]);
  11672. ReadWriteCloser.init([{prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]);
  11673. ReaderFrom.init([{prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([Reader], [$Int64, $error], false)}]);
  11674. WriterTo.init([{prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([Writer], [$Int64, $error], false)}]);
  11675. RuneReader.init([{prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}]);
  11676. RuneScanner.init([{prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}]);
  11677. LimitedReader.init("", [{prop: "R", name: "R", embedded: false, exported: true, typ: Reader, tag: ""}, {prop: "N", name: "N", embedded: false, exported: true, typ: $Int64, tag: ""}]);
  11678. $init = function() {
  11679. $pkg.$init = function() {};
  11680. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  11681. $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  11682. $r = sync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  11683. $r = atomic.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  11684. $pkg.ErrShortWrite = errors.New("short write");
  11685. $pkg.ErrShortBuffer = errors.New("short buffer");
  11686. $pkg.EOF = errors.New("EOF");
  11687. $pkg.ErrUnexpectedEOF = errors.New("unexpected EOF");
  11688. $pkg.ErrNoProgress = errors.New("multiple Read calls return no data or error");
  11689. errWhence = errors.New("Seek: invalid whence");
  11690. errOffset = errors.New("Seek: invalid offset");
  11691. $pkg.ErrClosedPipe = errors.New("io: read/write on closed pipe");
  11692. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  11693. };
  11694. $pkg.$init = $init;
  11695. return $pkg;
  11696. })();
  11697. $packages["syscall"] = (function() {
  11698. var $pkg = {}, $init, js, race, runtime, sync, RawConn, NetlinkRouteRequest, NetlinkMessage, NetlinkRouteAttr, SockaddrLinklayer, SockaddrNetlink, mmapper, Errno, Sockaddr, SockaddrInet4, SockaddrInet6, SockaddrUnix, Timespec, Stat_t, RawSockaddrInet4, RawSockaddrInet6, RawSockaddrUnix, RawSockaddrLinklayer, RawSockaddrNetlink, RawSockaddr, RawSockaddrAny, _Socklen, Linger, Iovec, IPMreq, IPMreqn, IPv6Mreq, Msghdr, NlMsghdr, RtGenmsg, RtAttr, IfInfomsg, IfAddrmsg, sliceType, sliceType$1, ptrType$2, ptrType$4, arrayType$1, ptrType$9, arrayType$2, ptrType$12, sliceType$6, ptrType$13, sliceType$7, ptrType$14, arrayType$4, arrayType$5, arrayType$8, arrayType$9, arrayType$10, arrayType$11, ptrType$19, ptrType$20, structType, ptrType$23, funcType, funcType$1, ptrType$24, ptrType$25, ptrType$26, mapType, funcType$2, funcType$3, ptrType$27, ptrType$28, ptrType$29, ptrType$30, ptrType$32, warningPrinted, lineBuffer, syscallModule, alreadyTriedToLoad, minusOne, envs, mapper, errEAGAIN, errEINVAL, errENOENT, ioSync, ioSync$24ptr, errors, init, printWarning, printToConsole, Exit, indexByte, runtime_envs, syscallByName, Syscall, Syscall6, RawSyscall, BytePtrFromString, readInt, readIntBE, readIntLE, ParseDirent, CloseOnExec, SetNonblock, msanRead, msanWrite, nlmAlignOf, rtaAlignOf, newNetlinkRouteRequest, NetlinkRIB, ParseNetlinkMessage, netlinkMessageHeaderAndData, ParseNetlinkRouteAttr, netlinkRouteAttrAndValue, itoa, uitoa, Getpagesize, Chmod, Fchmodat, Open, anyToSockaddr, Accept, Accept4, Getsockname, SetsockoptIPMreqn, Recvmsg, SendmsgN, ReadDirent, direntIno, direntReclen, direntNamlen, Stat, Lstat, errnoErr, Read, Write, Bind, GetsockoptInt, Recvfrom, Sendto, SetsockoptByte, SetsockoptInt, SetsockoptInet4Addr, SetsockoptIPMreq, SetsockoptIPv6Mreq, SetsockoptLinger, Socket, fchmodat, openat, Close, Dup, Fchdir, Fchmod, fcntl, Fsync, Getdents, read, write, munmap, Fchown, Fstat, Ftruncate, Pread, Pwrite, Seek, Shutdown, accept, accept4, bind, fstatat, getsockopt, setsockopt, socket, getsockname, recvfrom, sendto, recvmsg, sendmsg, mmap;
  11699. js = $packages["github.com/gopherjs/gopherjs/js"];
  11700. race = $packages["internal/race"];
  11701. runtime = $packages["runtime"];
  11702. sync = $packages["sync"];
  11703. RawConn = $pkg.RawConn = $newType(8, $kindInterface, "syscall.RawConn", true, "syscall", true, null);
  11704. NetlinkRouteRequest = $pkg.NetlinkRouteRequest = $newType(0, $kindStruct, "syscall.NetlinkRouteRequest", true, "syscall", true, function(Header_, Data_) {
  11705. this.$val = this;
  11706. if (arguments.length === 0) {
  11707. this.Header = new NlMsghdr.ptr(0, 0, 0, 0, 0);
  11708. this.Data = new RtGenmsg.ptr(0);
  11709. return;
  11710. }
  11711. this.Header = Header_;
  11712. this.Data = Data_;
  11713. });
  11714. NetlinkMessage = $pkg.NetlinkMessage = $newType(0, $kindStruct, "syscall.NetlinkMessage", true, "syscall", true, function(Header_, Data_) {
  11715. this.$val = this;
  11716. if (arguments.length === 0) {
  11717. this.Header = new NlMsghdr.ptr(0, 0, 0, 0, 0);
  11718. this.Data = sliceType.nil;
  11719. return;
  11720. }
  11721. this.Header = Header_;
  11722. this.Data = Data_;
  11723. });
  11724. NetlinkRouteAttr = $pkg.NetlinkRouteAttr = $newType(0, $kindStruct, "syscall.NetlinkRouteAttr", true, "syscall", true, function(Attr_, Value_) {
  11725. this.$val = this;
  11726. if (arguments.length === 0) {
  11727. this.Attr = new RtAttr.ptr(0, 0);
  11728. this.Value = sliceType.nil;
  11729. return;
  11730. }
  11731. this.Attr = Attr_;
  11732. this.Value = Value_;
  11733. });
  11734. SockaddrLinklayer = $pkg.SockaddrLinklayer = $newType(0, $kindStruct, "syscall.SockaddrLinklayer", true, "syscall", true, function(Protocol_, Ifindex_, Hatype_, Pkttype_, Halen_, Addr_, raw_) {
  11735. this.$val = this;
  11736. if (arguments.length === 0) {
  11737. this.Protocol = 0;
  11738. this.Ifindex = 0;
  11739. this.Hatype = 0;
  11740. this.Pkttype = 0;
  11741. this.Halen = 0;
  11742. this.Addr = arrayType$1.zero();
  11743. this.raw = new RawSockaddrLinklayer.ptr(0, 0, 0, 0, 0, 0, arrayType$1.zero());
  11744. return;
  11745. }
  11746. this.Protocol = Protocol_;
  11747. this.Ifindex = Ifindex_;
  11748. this.Hatype = Hatype_;
  11749. this.Pkttype = Pkttype_;
  11750. this.Halen = Halen_;
  11751. this.Addr = Addr_;
  11752. this.raw = raw_;
  11753. });
  11754. SockaddrNetlink = $pkg.SockaddrNetlink = $newType(0, $kindStruct, "syscall.SockaddrNetlink", true, "syscall", true, function(Family_, Pad_, Pid_, Groups_, raw_) {
  11755. this.$val = this;
  11756. if (arguments.length === 0) {
  11757. this.Family = 0;
  11758. this.Pad = 0;
  11759. this.Pid = 0;
  11760. this.Groups = 0;
  11761. this.raw = new RawSockaddrNetlink.ptr(0, 0, 0, 0);
  11762. return;
  11763. }
  11764. this.Family = Family_;
  11765. this.Pad = Pad_;
  11766. this.Pid = Pid_;
  11767. this.Groups = Groups_;
  11768. this.raw = raw_;
  11769. });
  11770. mmapper = $pkg.mmapper = $newType(0, $kindStruct, "syscall.mmapper", true, "syscall", false, function(Mutex_, active_, mmap_, munmap_) {
  11771. this.$val = this;
  11772. if (arguments.length === 0) {
  11773. this.Mutex = new sync.Mutex.ptr(0, 0);
  11774. this.active = false;
  11775. this.mmap = $throwNilPointerError;
  11776. this.munmap = $throwNilPointerError;
  11777. return;
  11778. }
  11779. this.Mutex = Mutex_;
  11780. this.active = active_;
  11781. this.mmap = mmap_;
  11782. this.munmap = munmap_;
  11783. });
  11784. Errno = $pkg.Errno = $newType(4, $kindUintptr, "syscall.Errno", true, "syscall", true, null);
  11785. Sockaddr = $pkg.Sockaddr = $newType(8, $kindInterface, "syscall.Sockaddr", true, "syscall", true, null);
  11786. SockaddrInet4 = $pkg.SockaddrInet4 = $newType(0, $kindStruct, "syscall.SockaddrInet4", true, "syscall", true, function(Port_, Addr_, raw_) {
  11787. this.$val = this;
  11788. if (arguments.length === 0) {
  11789. this.Port = 0;
  11790. this.Addr = arrayType$9.zero();
  11791. this.raw = new RawSockaddrInet4.ptr(0, 0, arrayType$9.zero(), arrayType$1.zero());
  11792. return;
  11793. }
  11794. this.Port = Port_;
  11795. this.Addr = Addr_;
  11796. this.raw = raw_;
  11797. });
  11798. SockaddrInet6 = $pkg.SockaddrInet6 = $newType(0, $kindStruct, "syscall.SockaddrInet6", true, "syscall", true, function(Port_, ZoneId_, Addr_, raw_) {
  11799. this.$val = this;
  11800. if (arguments.length === 0) {
  11801. this.Port = 0;
  11802. this.ZoneId = 0;
  11803. this.Addr = arrayType$2.zero();
  11804. this.raw = new RawSockaddrInet6.ptr(0, 0, 0, arrayType$2.zero(), 0);
  11805. return;
  11806. }
  11807. this.Port = Port_;
  11808. this.ZoneId = ZoneId_;
  11809. this.Addr = Addr_;
  11810. this.raw = raw_;
  11811. });
  11812. SockaddrUnix = $pkg.SockaddrUnix = $newType(0, $kindStruct, "syscall.SockaddrUnix", true, "syscall", true, function(Name_, raw_) {
  11813. this.$val = this;
  11814. if (arguments.length === 0) {
  11815. this.Name = "";
  11816. this.raw = new RawSockaddrUnix.ptr(0, arrayType$8.zero());
  11817. return;
  11818. }
  11819. this.Name = Name_;
  11820. this.raw = raw_;
  11821. });
  11822. Timespec = $pkg.Timespec = $newType(0, $kindStruct, "syscall.Timespec", true, "syscall", true, function(Sec_, Nsec_) {
  11823. this.$val = this;
  11824. if (arguments.length === 0) {
  11825. this.Sec = new $Int64(0, 0);
  11826. this.Nsec = new $Int64(0, 0);
  11827. return;
  11828. }
  11829. this.Sec = Sec_;
  11830. this.Nsec = Nsec_;
  11831. });
  11832. Stat_t = $pkg.Stat_t = $newType(0, $kindStruct, "syscall.Stat_t", true, "syscall", true, function(Dev_, Ino_, Nlink_, Mode_, Uid_, Gid_, X__pad0_, Rdev_, Size_, Blksize_, Blocks_, Atim_, Mtim_, Ctim_, X__unused_) {
  11833. this.$val = this;
  11834. if (arguments.length === 0) {
  11835. this.Dev = new $Uint64(0, 0);
  11836. this.Ino = new $Uint64(0, 0);
  11837. this.Nlink = new $Uint64(0, 0);
  11838. this.Mode = 0;
  11839. this.Uid = 0;
  11840. this.Gid = 0;
  11841. this.X__pad0 = 0;
  11842. this.Rdev = new $Uint64(0, 0);
  11843. this.Size = new $Int64(0, 0);
  11844. this.Blksize = new $Int64(0, 0);
  11845. this.Blocks = new $Int64(0, 0);
  11846. this.Atim = new Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0));
  11847. this.Mtim = new Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0));
  11848. this.Ctim = new Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0));
  11849. this.X__unused = arrayType$5.zero();
  11850. return;
  11851. }
  11852. this.Dev = Dev_;
  11853. this.Ino = Ino_;
  11854. this.Nlink = Nlink_;
  11855. this.Mode = Mode_;
  11856. this.Uid = Uid_;
  11857. this.Gid = Gid_;
  11858. this.X__pad0 = X__pad0_;
  11859. this.Rdev = Rdev_;
  11860. this.Size = Size_;
  11861. this.Blksize = Blksize_;
  11862. this.Blocks = Blocks_;
  11863. this.Atim = Atim_;
  11864. this.Mtim = Mtim_;
  11865. this.Ctim = Ctim_;
  11866. this.X__unused = X__unused_;
  11867. });
  11868. RawSockaddrInet4 = $pkg.RawSockaddrInet4 = $newType(0, $kindStruct, "syscall.RawSockaddrInet4", true, "syscall", true, function(Family_, Port_, Addr_, Zero_) {
  11869. this.$val = this;
  11870. if (arguments.length === 0) {
  11871. this.Family = 0;
  11872. this.Port = 0;
  11873. this.Addr = arrayType$9.zero();
  11874. this.Zero = arrayType$1.zero();
  11875. return;
  11876. }
  11877. this.Family = Family_;
  11878. this.Port = Port_;
  11879. this.Addr = Addr_;
  11880. this.Zero = Zero_;
  11881. });
  11882. RawSockaddrInet6 = $pkg.RawSockaddrInet6 = $newType(0, $kindStruct, "syscall.RawSockaddrInet6", true, "syscall", true, function(Family_, Port_, Flowinfo_, Addr_, Scope_id_) {
  11883. this.$val = this;
  11884. if (arguments.length === 0) {
  11885. this.Family = 0;
  11886. this.Port = 0;
  11887. this.Flowinfo = 0;
  11888. this.Addr = arrayType$2.zero();
  11889. this.Scope_id = 0;
  11890. return;
  11891. }
  11892. this.Family = Family_;
  11893. this.Port = Port_;
  11894. this.Flowinfo = Flowinfo_;
  11895. this.Addr = Addr_;
  11896. this.Scope_id = Scope_id_;
  11897. });
  11898. RawSockaddrUnix = $pkg.RawSockaddrUnix = $newType(0, $kindStruct, "syscall.RawSockaddrUnix", true, "syscall", true, function(Family_, Path_) {
  11899. this.$val = this;
  11900. if (arguments.length === 0) {
  11901. this.Family = 0;
  11902. this.Path = arrayType$8.zero();
  11903. return;
  11904. }
  11905. this.Family = Family_;
  11906. this.Path = Path_;
  11907. });
  11908. RawSockaddrLinklayer = $pkg.RawSockaddrLinklayer = $newType(0, $kindStruct, "syscall.RawSockaddrLinklayer", true, "syscall", true, function(Family_, Protocol_, Ifindex_, Hatype_, Pkttype_, Halen_, Addr_) {
  11909. this.$val = this;
  11910. if (arguments.length === 0) {
  11911. this.Family = 0;
  11912. this.Protocol = 0;
  11913. this.Ifindex = 0;
  11914. this.Hatype = 0;
  11915. this.Pkttype = 0;
  11916. this.Halen = 0;
  11917. this.Addr = arrayType$1.zero();
  11918. return;
  11919. }
  11920. this.Family = Family_;
  11921. this.Protocol = Protocol_;
  11922. this.Ifindex = Ifindex_;
  11923. this.Hatype = Hatype_;
  11924. this.Pkttype = Pkttype_;
  11925. this.Halen = Halen_;
  11926. this.Addr = Addr_;
  11927. });
  11928. RawSockaddrNetlink = $pkg.RawSockaddrNetlink = $newType(0, $kindStruct, "syscall.RawSockaddrNetlink", true, "syscall", true, function(Family_, Pad_, Pid_, Groups_) {
  11929. this.$val = this;
  11930. if (arguments.length === 0) {
  11931. this.Family = 0;
  11932. this.Pad = 0;
  11933. this.Pid = 0;
  11934. this.Groups = 0;
  11935. return;
  11936. }
  11937. this.Family = Family_;
  11938. this.Pad = Pad_;
  11939. this.Pid = Pid_;
  11940. this.Groups = Groups_;
  11941. });
  11942. RawSockaddr = $pkg.RawSockaddr = $newType(0, $kindStruct, "syscall.RawSockaddr", true, "syscall", true, function(Family_, Data_) {
  11943. this.$val = this;
  11944. if (arguments.length === 0) {
  11945. this.Family = 0;
  11946. this.Data = arrayType$10.zero();
  11947. return;
  11948. }
  11949. this.Family = Family_;
  11950. this.Data = Data_;
  11951. });
  11952. RawSockaddrAny = $pkg.RawSockaddrAny = $newType(0, $kindStruct, "syscall.RawSockaddrAny", true, "syscall", true, function(Addr_, Pad_) {
  11953. this.$val = this;
  11954. if (arguments.length === 0) {
  11955. this.Addr = new RawSockaddr.ptr(0, arrayType$10.zero());
  11956. this.Pad = arrayType$11.zero();
  11957. return;
  11958. }
  11959. this.Addr = Addr_;
  11960. this.Pad = Pad_;
  11961. });
  11962. _Socklen = $pkg._Socklen = $newType(4, $kindUint32, "syscall._Socklen", true, "syscall", false, null);
  11963. Linger = $pkg.Linger = $newType(0, $kindStruct, "syscall.Linger", true, "syscall", true, function(Onoff_, Linger_) {
  11964. this.$val = this;
  11965. if (arguments.length === 0) {
  11966. this.Onoff = 0;
  11967. this.Linger = 0;
  11968. return;
  11969. }
  11970. this.Onoff = Onoff_;
  11971. this.Linger = Linger_;
  11972. });
  11973. Iovec = $pkg.Iovec = $newType(0, $kindStruct, "syscall.Iovec", true, "syscall", true, function(Base_, Len_) {
  11974. this.$val = this;
  11975. if (arguments.length === 0) {
  11976. this.Base = ptrType$2.nil;
  11977. this.Len = new $Uint64(0, 0);
  11978. return;
  11979. }
  11980. this.Base = Base_;
  11981. this.Len = Len_;
  11982. });
  11983. IPMreq = $pkg.IPMreq = $newType(0, $kindStruct, "syscall.IPMreq", true, "syscall", true, function(Multiaddr_, Interface_) {
  11984. this.$val = this;
  11985. if (arguments.length === 0) {
  11986. this.Multiaddr = arrayType$9.zero();
  11987. this.Interface = arrayType$9.zero();
  11988. return;
  11989. }
  11990. this.Multiaddr = Multiaddr_;
  11991. this.Interface = Interface_;
  11992. });
  11993. IPMreqn = $pkg.IPMreqn = $newType(0, $kindStruct, "syscall.IPMreqn", true, "syscall", true, function(Multiaddr_, Address_, Ifindex_) {
  11994. this.$val = this;
  11995. if (arguments.length === 0) {
  11996. this.Multiaddr = arrayType$9.zero();
  11997. this.Address = arrayType$9.zero();
  11998. this.Ifindex = 0;
  11999. return;
  12000. }
  12001. this.Multiaddr = Multiaddr_;
  12002. this.Address = Address_;
  12003. this.Ifindex = Ifindex_;
  12004. });
  12005. IPv6Mreq = $pkg.IPv6Mreq = $newType(0, $kindStruct, "syscall.IPv6Mreq", true, "syscall", true, function(Multiaddr_, Interface_) {
  12006. this.$val = this;
  12007. if (arguments.length === 0) {
  12008. this.Multiaddr = arrayType$2.zero();
  12009. this.Interface = 0;
  12010. return;
  12011. }
  12012. this.Multiaddr = Multiaddr_;
  12013. this.Interface = Interface_;
  12014. });
  12015. Msghdr = $pkg.Msghdr = $newType(0, $kindStruct, "syscall.Msghdr", true, "syscall", true, function(Name_, Namelen_, Pad_cgo_0_, Iov_, Iovlen_, Control_, Controllen_, Flags_, Pad_cgo_1_) {
  12016. this.$val = this;
  12017. if (arguments.length === 0) {
  12018. this.Name = ptrType$2.nil;
  12019. this.Namelen = 0;
  12020. this.Pad_cgo_0 = arrayType$9.zero();
  12021. this.Iov = ptrType$20.nil;
  12022. this.Iovlen = new $Uint64(0, 0);
  12023. this.Control = ptrType$2.nil;
  12024. this.Controllen = new $Uint64(0, 0);
  12025. this.Flags = 0;
  12026. this.Pad_cgo_1 = arrayType$9.zero();
  12027. return;
  12028. }
  12029. this.Name = Name_;
  12030. this.Namelen = Namelen_;
  12031. this.Pad_cgo_0 = Pad_cgo_0_;
  12032. this.Iov = Iov_;
  12033. this.Iovlen = Iovlen_;
  12034. this.Control = Control_;
  12035. this.Controllen = Controllen_;
  12036. this.Flags = Flags_;
  12037. this.Pad_cgo_1 = Pad_cgo_1_;
  12038. });
  12039. NlMsghdr = $pkg.NlMsghdr = $newType(0, $kindStruct, "syscall.NlMsghdr", true, "syscall", true, function(Len_, Type_, Flags_, Seq_, Pid_) {
  12040. this.$val = this;
  12041. if (arguments.length === 0) {
  12042. this.Len = 0;
  12043. this.Type = 0;
  12044. this.Flags = 0;
  12045. this.Seq = 0;
  12046. this.Pid = 0;
  12047. return;
  12048. }
  12049. this.Len = Len_;
  12050. this.Type = Type_;
  12051. this.Flags = Flags_;
  12052. this.Seq = Seq_;
  12053. this.Pid = Pid_;
  12054. });
  12055. RtGenmsg = $pkg.RtGenmsg = $newType(0, $kindStruct, "syscall.RtGenmsg", true, "syscall", true, function(Family_) {
  12056. this.$val = this;
  12057. if (arguments.length === 0) {
  12058. this.Family = 0;
  12059. return;
  12060. }
  12061. this.Family = Family_;
  12062. });
  12063. RtAttr = $pkg.RtAttr = $newType(0, $kindStruct, "syscall.RtAttr", true, "syscall", true, function(Len_, Type_) {
  12064. this.$val = this;
  12065. if (arguments.length === 0) {
  12066. this.Len = 0;
  12067. this.Type = 0;
  12068. return;
  12069. }
  12070. this.Len = Len_;
  12071. this.Type = Type_;
  12072. });
  12073. IfInfomsg = $pkg.IfInfomsg = $newType(0, $kindStruct, "syscall.IfInfomsg", true, "syscall", true, function(Family_, X__ifi_pad_, Type_, Index_, Flags_, Change_) {
  12074. this.$val = this;
  12075. if (arguments.length === 0) {
  12076. this.Family = 0;
  12077. this.X__ifi_pad = 0;
  12078. this.Type = 0;
  12079. this.Index = 0;
  12080. this.Flags = 0;
  12081. this.Change = 0;
  12082. return;
  12083. }
  12084. this.Family = Family_;
  12085. this.X__ifi_pad = X__ifi_pad_;
  12086. this.Type = Type_;
  12087. this.Index = Index_;
  12088. this.Flags = Flags_;
  12089. this.Change = Change_;
  12090. });
  12091. IfAddrmsg = $pkg.IfAddrmsg = $newType(0, $kindStruct, "syscall.IfAddrmsg", true, "syscall", true, function(Family_, Prefixlen_, Flags_, Scope_, Index_) {
  12092. this.$val = this;
  12093. if (arguments.length === 0) {
  12094. this.Family = 0;
  12095. this.Prefixlen = 0;
  12096. this.Flags = 0;
  12097. this.Scope = 0;
  12098. this.Index = 0;
  12099. return;
  12100. }
  12101. this.Family = Family_;
  12102. this.Prefixlen = Prefixlen_;
  12103. this.Flags = Flags_;
  12104. this.Scope = Scope_;
  12105. this.Index = Index_;
  12106. });
  12107. sliceType = $sliceType($Uint8);
  12108. sliceType$1 = $sliceType($String);
  12109. ptrType$2 = $ptrType($Uint8);
  12110. ptrType$4 = $ptrType($Int32);
  12111. arrayType$1 = $arrayType($Uint8, 8);
  12112. ptrType$9 = $ptrType($Uint16);
  12113. arrayType$2 = $arrayType($Uint8, 16);
  12114. ptrType$12 = $ptrType(SockaddrNetlink);
  12115. sliceType$6 = $sliceType(NetlinkMessage);
  12116. ptrType$13 = $ptrType(NlMsghdr);
  12117. sliceType$7 = $sliceType(NetlinkRouteAttr);
  12118. ptrType$14 = $ptrType(RtAttr);
  12119. arrayType$4 = $arrayType($Uint8, 32);
  12120. arrayType$5 = $arrayType($Int64, 3);
  12121. arrayType$8 = $arrayType($Int8, 108);
  12122. arrayType$9 = $arrayType($Uint8, 4);
  12123. arrayType$10 = $arrayType($Int8, 14);
  12124. arrayType$11 = $arrayType($Int8, 96);
  12125. ptrType$19 = $ptrType(_Socklen);
  12126. ptrType$20 = $ptrType(Iovec);
  12127. structType = $structType("syscall", [{prop: "addr", name: "addr", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "cap", name: "cap", embedded: false, exported: false, typ: $Int, tag: ""}]);
  12128. ptrType$23 = $ptrType($Int64);
  12129. funcType = $funcType([$Uintptr], [], false);
  12130. funcType$1 = $funcType([$Uintptr], [$Bool], false);
  12131. ptrType$24 = $ptrType(NetlinkRouteRequest);
  12132. ptrType$25 = $ptrType(SockaddrLinklayer);
  12133. ptrType$26 = $ptrType(mmapper);
  12134. mapType = $mapType(ptrType$2, sliceType);
  12135. funcType$2 = $funcType([$Uintptr, $Uintptr, $Int, $Int, $Int, $Int64], [$Uintptr, $error], false);
  12136. funcType$3 = $funcType([$Uintptr, $Uintptr], [$error], false);
  12137. ptrType$27 = $ptrType(SockaddrInet4);
  12138. ptrType$28 = $ptrType(SockaddrInet6);
  12139. ptrType$29 = $ptrType(SockaddrUnix);
  12140. ptrType$30 = $ptrType(Timespec);
  12141. ptrType$32 = $ptrType(Msghdr);
  12142. init = function() {
  12143. $flushConsole = (function() {
  12144. if (!((lineBuffer.$length === 0))) {
  12145. $global.console.log($externalize(($bytesToString(lineBuffer)), $String));
  12146. lineBuffer = sliceType.nil;
  12147. }
  12148. });
  12149. };
  12150. printWarning = function() {
  12151. if (!warningPrinted) {
  12152. $global.console.error($externalize("warning: system calls not available, see https://github.com/gopherjs/gopherjs/blob/master/doc/syscalls.md", $String));
  12153. }
  12154. warningPrinted = true;
  12155. };
  12156. printToConsole = function(b) {
  12157. var b, goPrintToConsole, i;
  12158. goPrintToConsole = $global.goPrintToConsole;
  12159. if (!(goPrintToConsole === undefined)) {
  12160. goPrintToConsole(b);
  12161. return;
  12162. }
  12163. lineBuffer = $appendSlice(lineBuffer, b);
  12164. while (true) {
  12165. i = indexByte(lineBuffer, 10);
  12166. if (i === -1) {
  12167. break;
  12168. }
  12169. $global.console.log($externalize(($bytesToString($subslice(lineBuffer, 0, i))), $String));
  12170. lineBuffer = $subslice(lineBuffer, (i + 1 >> 0));
  12171. }
  12172. };
  12173. Exit = function(code) {
  12174. var code;
  12175. Syscall(231, ((code >>> 0)), 0, 0);
  12176. };
  12177. $pkg.Exit = Exit;
  12178. indexByte = function(s, c) {
  12179. var _i, _ref, b, c, i, s;
  12180. _ref = s;
  12181. _i = 0;
  12182. while (true) {
  12183. if (!(_i < _ref.$length)) { break; }
  12184. i = _i;
  12185. b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  12186. if (b === c) {
  12187. return i;
  12188. }
  12189. _i++;
  12190. }
  12191. return -1;
  12192. };
  12193. runtime_envs = function() {
  12194. var envkeys, envs$1, i, jsEnv, key, process;
  12195. process = $global.process;
  12196. if (process === undefined) {
  12197. return sliceType$1.nil;
  12198. }
  12199. jsEnv = process.env;
  12200. envkeys = $global.Object.keys(jsEnv);
  12201. envs$1 = $makeSlice(sliceType$1, $parseInt(envkeys.length));
  12202. i = 0;
  12203. while (true) {
  12204. if (!(i < $parseInt(envkeys.length))) { break; }
  12205. key = $internalize(envkeys[i], $String);
  12206. ((i < 0 || i >= envs$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : envs$1.$array[envs$1.$offset + i] = key + "=" + $internalize(jsEnv[$externalize(key, $String)], $String));
  12207. i = i + (1) >> 0;
  12208. }
  12209. return envs$1;
  12210. };
  12211. syscallByName = function(name) {
  12212. var name, require, $deferred;
  12213. /* */ var $err = null; try { $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  12214. $deferred.push([(function() {
  12215. $recover();
  12216. }), []]);
  12217. if (syscallModule === null) {
  12218. if (alreadyTriedToLoad) {
  12219. return null;
  12220. }
  12221. alreadyTriedToLoad = true;
  12222. require = $global.require;
  12223. if (require === undefined) {
  12224. $panic(new $String(""));
  12225. }
  12226. syscallModule = require($externalize("syscall", $String));
  12227. }
  12228. return syscallModule[$externalize(name, $String)];
  12229. /* */ } catch(err) { $err = err; return null; } finally { $callDeferred($deferred, $err); }
  12230. };
  12231. Syscall = function(trap, a1, a2, a3) {
  12232. var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, a1, a2, a3, array, err, f, r, r1, r2, slice, trap;
  12233. r1 = 0;
  12234. r2 = 0;
  12235. err = 0;
  12236. f = syscallByName("Syscall");
  12237. if (!(f === null)) {
  12238. r = f(trap, a1, a2, a3);
  12239. _tmp = ((($parseInt(r[0]) >> 0) >>> 0));
  12240. _tmp$1 = ((($parseInt(r[1]) >> 0) >>> 0));
  12241. _tmp$2 = ((($parseInt(r[2]) >> 0) >>> 0));
  12242. r1 = _tmp;
  12243. r2 = _tmp$1;
  12244. err = _tmp$2;
  12245. return [r1, r2, err];
  12246. }
  12247. if ((trap === 1) && ((a1 === 1) || (a1 === 2))) {
  12248. array = a2;
  12249. slice = $makeSlice(sliceType, $parseInt(array.length));
  12250. slice.$array = array;
  12251. printToConsole(slice);
  12252. _tmp$3 = (($parseInt(array.length) >>> 0));
  12253. _tmp$4 = 0;
  12254. _tmp$5 = 0;
  12255. r1 = _tmp$3;
  12256. r2 = _tmp$4;
  12257. err = _tmp$5;
  12258. return [r1, r2, err];
  12259. }
  12260. if (trap === 231) {
  12261. runtime.Goexit();
  12262. }
  12263. printWarning();
  12264. _tmp$6 = ((minusOne >>> 0));
  12265. _tmp$7 = 0;
  12266. _tmp$8 = 13;
  12267. r1 = _tmp$6;
  12268. r2 = _tmp$7;
  12269. err = _tmp$8;
  12270. return [r1, r2, err];
  12271. };
  12272. $pkg.Syscall = Syscall;
  12273. Syscall6 = function(trap, a1, a2, a3, a4, a5, a6) {
  12274. var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, a1, a2, a3, a4, a5, a6, err, f, r, r1, r2, trap;
  12275. r1 = 0;
  12276. r2 = 0;
  12277. err = 0;
  12278. f = syscallByName("Syscall6");
  12279. if (!(f === null)) {
  12280. r = f(trap, a1, a2, a3, a4, a5, a6);
  12281. _tmp = ((($parseInt(r[0]) >> 0) >>> 0));
  12282. _tmp$1 = ((($parseInt(r[1]) >> 0) >>> 0));
  12283. _tmp$2 = ((($parseInt(r[2]) >> 0) >>> 0));
  12284. r1 = _tmp;
  12285. r2 = _tmp$1;
  12286. err = _tmp$2;
  12287. return [r1, r2, err];
  12288. }
  12289. if (!((trap === 202))) {
  12290. printWarning();
  12291. }
  12292. _tmp$3 = ((minusOne >>> 0));
  12293. _tmp$4 = 0;
  12294. _tmp$5 = 13;
  12295. r1 = _tmp$3;
  12296. r2 = _tmp$4;
  12297. err = _tmp$5;
  12298. return [r1, r2, err];
  12299. };
  12300. $pkg.Syscall6 = Syscall6;
  12301. RawSyscall = function(trap, a1, a2, a3) {
  12302. var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, a1, a2, a3, err, f, r, r1, r2, trap;
  12303. r1 = 0;
  12304. r2 = 0;
  12305. err = 0;
  12306. f = syscallByName("Syscall");
  12307. if (!(f === null)) {
  12308. r = f(trap, a1, a2, a3);
  12309. _tmp = ((($parseInt(r[0]) >> 0) >>> 0));
  12310. _tmp$1 = ((($parseInt(r[1]) >> 0) >>> 0));
  12311. _tmp$2 = ((($parseInt(r[2]) >> 0) >>> 0));
  12312. r1 = _tmp;
  12313. r2 = _tmp$1;
  12314. err = _tmp$2;
  12315. return [r1, r2, err];
  12316. }
  12317. printWarning();
  12318. _tmp$3 = ((minusOne >>> 0));
  12319. _tmp$4 = 0;
  12320. _tmp$5 = 13;
  12321. r1 = _tmp$3;
  12322. r2 = _tmp$4;
  12323. err = _tmp$5;
  12324. return [r1, r2, err];
  12325. };
  12326. $pkg.RawSyscall = RawSyscall;
  12327. BytePtrFromString = function(s) {
  12328. var _i, _ref, array, b, i, s;
  12329. array = new ($global.Uint8Array)(s.length + 1 >> 0);
  12330. _ref = (new sliceType($stringToBytes(s)));
  12331. _i = 0;
  12332. while (true) {
  12333. if (!(_i < _ref.$length)) { break; }
  12334. i = _i;
  12335. b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  12336. if (b === 0) {
  12337. return [ptrType$2.nil, new Errno(22)];
  12338. }
  12339. array[i] = b;
  12340. _i++;
  12341. }
  12342. array[s.length] = 0;
  12343. return [((array)), $ifaceNil];
  12344. };
  12345. $pkg.BytePtrFromString = BytePtrFromString;
  12346. readInt = function(b, off, size) {
  12347. var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, off, ok, size, u;
  12348. u = new $Uint64(0, 0);
  12349. ok = false;
  12350. if (b.$length < (((off + size >>> 0) >> 0))) {
  12351. _tmp = new $Uint64(0, 0);
  12352. _tmp$1 = false;
  12353. u = _tmp;
  12354. ok = _tmp$1;
  12355. return [u, ok];
  12356. }
  12357. if (false) {
  12358. _tmp$2 = readIntBE($subslice(b, off), size);
  12359. _tmp$3 = true;
  12360. u = _tmp$2;
  12361. ok = _tmp$3;
  12362. return [u, ok];
  12363. }
  12364. _tmp$4 = readIntLE($subslice(b, off), size);
  12365. _tmp$5 = true;
  12366. u = _tmp$4;
  12367. ok = _tmp$5;
  12368. return [u, ok];
  12369. };
  12370. readIntBE = function(b, size) {
  12371. var _1, b, size, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
  12372. _1 = size;
  12373. if (_1 === (1)) {
  12374. return (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0])));
  12375. } else if (_1 === (2)) {
  12376. $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]));
  12377. return (x = (new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), x$1 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 8), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0));
  12378. } else if (_1 === (4)) {
  12379. $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]));
  12380. return (x$2 = (x$3 = (x$4 = (new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), x$5 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 8), new $Uint64(x$4.$high | x$5.$high, (x$4.$low | x$5.$low) >>> 0)), x$6 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 16), new $Uint64(x$3.$high | x$6.$high, (x$3.$low | x$6.$low) >>> 0)), x$7 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 24), new $Uint64(x$2.$high | x$7.$high, (x$2.$low | x$7.$low) >>> 0));
  12381. } else if (_1 === (8)) {
  12382. $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]));
  12383. return (x$8 = (x$9 = (x$10 = (x$11 = (x$12 = (x$13 = (x$14 = (new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), x$15 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 8), new $Uint64(x$14.$high | x$15.$high, (x$14.$low | x$15.$low) >>> 0)), x$16 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 16), new $Uint64(x$13.$high | x$16.$high, (x$13.$low | x$16.$low) >>> 0)), x$17 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 24), new $Uint64(x$12.$high | x$17.$high, (x$12.$low | x$17.$low) >>> 0)), x$18 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 32), new $Uint64(x$11.$high | x$18.$high, (x$11.$low | x$18.$low) >>> 0)), x$19 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 40), new $Uint64(x$10.$high | x$19.$high, (x$10.$low | x$19.$low) >>> 0)), x$20 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 48), new $Uint64(x$9.$high | x$20.$high, (x$9.$low | x$20.$low) >>> 0)), x$21 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 56), new $Uint64(x$8.$high | x$21.$high, (x$8.$low | x$21.$low) >>> 0));
  12384. } else {
  12385. $panic(new $String("syscall: readInt with unsupported size"));
  12386. }
  12387. };
  12388. readIntLE = function(b, size) {
  12389. var _1, b, size, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
  12390. _1 = size;
  12391. if (_1 === (1)) {
  12392. return (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0])));
  12393. } else if (_1 === (2)) {
  12394. $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]));
  12395. return (x = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$1 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0));
  12396. } else if (_1 === (4)) {
  12397. $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]));
  12398. return (x$2 = (x$3 = (x$4 = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$5 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x$4.$high | x$5.$high, (x$4.$low | x$5.$low) >>> 0)), x$6 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 16), new $Uint64(x$3.$high | x$6.$high, (x$3.$low | x$6.$low) >>> 0)), x$7 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 24), new $Uint64(x$2.$high | x$7.$high, (x$2.$low | x$7.$low) >>> 0));
  12399. } else if (_1 === (8)) {
  12400. $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]));
  12401. return (x$8 = (x$9 = (x$10 = (x$11 = (x$12 = (x$13 = (x$14 = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$15 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x$14.$high | x$15.$high, (x$14.$low | x$15.$low) >>> 0)), x$16 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 16), new $Uint64(x$13.$high | x$16.$high, (x$13.$low | x$16.$low) >>> 0)), x$17 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 24), new $Uint64(x$12.$high | x$17.$high, (x$12.$low | x$17.$low) >>> 0)), x$18 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 32), new $Uint64(x$11.$high | x$18.$high, (x$11.$low | x$18.$low) >>> 0)), x$19 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 40), new $Uint64(x$10.$high | x$19.$high, (x$10.$low | x$19.$low) >>> 0)), x$20 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 48), new $Uint64(x$9.$high | x$20.$high, (x$9.$low | x$20.$low) >>> 0)), x$21 = $shiftLeft64((new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), 56), new $Uint64(x$8.$high | x$21.$high, (x$8.$low | x$21.$low) >>> 0));
  12402. } else {
  12403. $panic(new $String("syscall: readInt with unsupported size"));
  12404. }
  12405. };
  12406. ParseDirent = function(buf, max, names) {
  12407. var _i, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, buf, c, consumed, count, i, ino, max, name, names, namlen, newnames, ok, origlen, rec, reclen, x, x$1, x$2;
  12408. consumed = 0;
  12409. count = 0;
  12410. newnames = sliceType$1.nil;
  12411. origlen = buf.$length;
  12412. count = 0;
  12413. while (true) {
  12414. if (!(!((max === 0)) && buf.$length > 0)) { break; }
  12415. _tuple = direntReclen(buf);
  12416. reclen = _tuple[0];
  12417. ok = _tuple[1];
  12418. if (!ok || (x = (new $Uint64(0, buf.$length)), (reclen.$high > x.$high || (reclen.$high === x.$high && reclen.$low > x.$low)))) {
  12419. _tmp = origlen;
  12420. _tmp$1 = count;
  12421. _tmp$2 = names;
  12422. consumed = _tmp;
  12423. count = _tmp$1;
  12424. newnames = _tmp$2;
  12425. return [consumed, count, newnames];
  12426. }
  12427. rec = $subslice(buf, 0, $flatten64(reclen));
  12428. buf = $subslice(buf, $flatten64(reclen));
  12429. _tuple$1 = direntIno(rec);
  12430. ino = _tuple$1[0];
  12431. ok = _tuple$1[1];
  12432. if (!ok) {
  12433. break;
  12434. }
  12435. if ((ino.$high === 0 && ino.$low === 0)) {
  12436. continue;
  12437. }
  12438. _tuple$2 = direntNamlen(rec);
  12439. namlen = _tuple$2[0];
  12440. ok = _tuple$2[1];
  12441. if (!ok || (x$1 = new $Uint64(0 + namlen.$high, 19 + namlen.$low), x$2 = (new $Uint64(0, rec.$length)), (x$1.$high > x$2.$high || (x$1.$high === x$2.$high && x$1.$low > x$2.$low)))) {
  12442. break;
  12443. }
  12444. name = $subslice(rec, 19, $flatten64(new $Uint64(0 + namlen.$high, 19 + namlen.$low)));
  12445. _ref = name;
  12446. _i = 0;
  12447. while (true) {
  12448. if (!(_i < _ref.$length)) { break; }
  12449. i = _i;
  12450. c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  12451. if (c === 0) {
  12452. name = $subslice(name, 0, i);
  12453. break;
  12454. }
  12455. _i++;
  12456. }
  12457. if (($bytesToString(name)) === "." || ($bytesToString(name)) === "..") {
  12458. continue;
  12459. }
  12460. max = max - (1) >> 0;
  12461. count = count + (1) >> 0;
  12462. names = $append(names, ($bytesToString(name)));
  12463. }
  12464. _tmp$3 = origlen - buf.$length >> 0;
  12465. _tmp$4 = count;
  12466. _tmp$5 = names;
  12467. consumed = _tmp$3;
  12468. count = _tmp$4;
  12469. newnames = _tmp$5;
  12470. return [consumed, count, newnames];
  12471. };
  12472. $pkg.ParseDirent = ParseDirent;
  12473. CloseOnExec = function(fd) {
  12474. var fd;
  12475. fcntl(fd, 2, 1);
  12476. };
  12477. $pkg.CloseOnExec = CloseOnExec;
  12478. SetNonblock = function(fd, nonblocking) {
  12479. var _tuple, _tuple$1, err, fd, flag, nonblocking;
  12480. err = $ifaceNil;
  12481. _tuple = fcntl(fd, 3, 0);
  12482. flag = _tuple[0];
  12483. err = _tuple[1];
  12484. if (!($interfaceIsEqual(err, $ifaceNil))) {
  12485. err = err;
  12486. return err;
  12487. }
  12488. if (nonblocking) {
  12489. flag = flag | (2048);
  12490. } else {
  12491. flag = (flag & ~(2048)) >> 0;
  12492. }
  12493. _tuple$1 = fcntl(fd, 4, flag);
  12494. err = _tuple$1[1];
  12495. err = err;
  12496. return err;
  12497. };
  12498. $pkg.SetNonblock = SetNonblock;
  12499. msanRead = function(addr, len) {
  12500. var addr, len;
  12501. };
  12502. msanWrite = function(addr, len) {
  12503. var addr, len;
  12504. };
  12505. nlmAlignOf = function(msglen) {
  12506. var msglen;
  12507. return (((msglen + 4 >> 0) - 1 >> 0)) & -4;
  12508. };
  12509. rtaAlignOf = function(attrlen) {
  12510. var attrlen;
  12511. return (((attrlen + 4 >> 0) - 1 >> 0)) & -4;
  12512. };
  12513. NetlinkRouteRequest.ptr.prototype.toWireFormat = function() {
  12514. var b, rr;
  12515. rr = this;
  12516. b = $makeSlice(sliceType, rr.Header.Len);
  12517. (($sliceToArray($subslice(b, 0, 4)))).$set(rr.Header.Len);
  12518. (($sliceToArray($subslice(b, 4, 6)))).$set(rr.Header.Type);
  12519. (($sliceToArray($subslice(b, 6, 8)))).$set(rr.Header.Flags);
  12520. (($sliceToArray($subslice(b, 8, 12)))).$set(rr.Header.Seq);
  12521. (($sliceToArray($subslice(b, 12, 16)))).$set(rr.Header.Pid);
  12522. (16 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 16] = (rr.Data.Family));
  12523. return b;
  12524. };
  12525. NetlinkRouteRequest.prototype.toWireFormat = function() { return this.$val.toWireFormat(); };
  12526. newNetlinkRouteRequest = function(proto, seq, family) {
  12527. var family, proto, rr, seq;
  12528. rr = new NetlinkRouteRequest.ptr(new NlMsghdr.ptr(0, 0, 0, 0, 0), new RtGenmsg.ptr(0));
  12529. rr.Header.Len = 17;
  12530. rr.Header.Type = ((proto << 16 >>> 16));
  12531. rr.Header.Flags = 769;
  12532. rr.Header.Seq = ((seq >>> 0));
  12533. rr.Data.Family = ((family << 24 >>> 24));
  12534. return rr.toWireFormat();
  12535. };
  12536. NetlinkRIB = function(proto, family) {
  12537. var _i, _r, _r$1, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, err, err$1, err$2, err$3, err$4, family, lsa, lsa$1, m, msgs, nr, proto, rb, rbNew, s, tab, v, v$1, wb, $s, $deferred, $r;
  12538. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _ref$1 = $f._ref$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; err$3 = $f.err$3; err$4 = $f.err$4; family = $f.family; lsa = $f.lsa; lsa$1 = $f.lsa$1; m = $f.m; msgs = $f.msgs; nr = $f.nr; proto = $f.proto; rb = $f.rb; rbNew = $f.rbNew; s = $f.s; tab = $f.tab; v = $f.v; v$1 = $f.v$1; wb = $f.wb; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  12539. _tuple = Socket(16, 3, 0);
  12540. s = _tuple[0];
  12541. err = _tuple[1];
  12542. if (!($interfaceIsEqual(err, $ifaceNil))) {
  12543. $s = -1; return [sliceType.nil, err];
  12544. }
  12545. $deferred.push([Close, [s]]);
  12546. lsa = new SockaddrNetlink.ptr(16, 0, 0, 0, new RawSockaddrNetlink.ptr(0, 0, 0, 0));
  12547. _r = Bind(s, lsa); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  12548. err$1 = _r;
  12549. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  12550. $s = -1; return [sliceType.nil, err$1];
  12551. }
  12552. wb = newNetlinkRouteRequest(proto, 1, family);
  12553. _r$1 = Sendto(s, wb, 0, lsa); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  12554. err$2 = _r$1;
  12555. if (!($interfaceIsEqual(err$2, $ifaceNil))) {
  12556. $s = -1; return [sliceType.nil, err$2];
  12557. }
  12558. tab = sliceType.nil;
  12559. rbNew = $makeSlice(sliceType, Getpagesize());
  12560. done:
  12561. while (true) {
  12562. rb = rbNew;
  12563. _tuple$1 = Recvfrom(s, rb, 0);
  12564. nr = _tuple$1[0];
  12565. err$3 = _tuple$1[2];
  12566. if (!($interfaceIsEqual(err$3, $ifaceNil))) {
  12567. $s = -1; return [sliceType.nil, err$3];
  12568. }
  12569. if (nr < 16) {
  12570. $s = -1; return [sliceType.nil, new Errno(22)];
  12571. }
  12572. rb = $subslice(rb, 0, nr);
  12573. tab = $appendSlice(tab, rb);
  12574. _tuple$2 = ParseNetlinkMessage(rb);
  12575. msgs = _tuple$2[0];
  12576. err$3 = _tuple$2[1];
  12577. if (!($interfaceIsEqual(err$3, $ifaceNil))) {
  12578. $s = -1; return [sliceType.nil, err$3];
  12579. }
  12580. _ref = msgs;
  12581. _i = 0;
  12582. while (true) {
  12583. if (!(_i < _ref.$length)) { break; }
  12584. m = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), NetlinkMessage);
  12585. _tuple$3 = Getsockname(s);
  12586. lsa$1 = _tuple$3[0];
  12587. err$4 = _tuple$3[1];
  12588. if (!($interfaceIsEqual(err$4, $ifaceNil))) {
  12589. $s = -1; return [sliceType.nil, err$4];
  12590. }
  12591. _ref$1 = lsa$1;
  12592. if ($assertType(_ref$1, ptrType$12, true)[1]) {
  12593. v = _ref$1.$val;
  12594. if (!((m.Header.Seq === 1)) || !((m.Header.Pid === v.Pid))) {
  12595. $s = -1; return [sliceType.nil, new Errno(22)];
  12596. }
  12597. } else {
  12598. v$1 = _ref$1;
  12599. $s = -1; return [sliceType.nil, new Errno(22)];
  12600. }
  12601. if (m.Header.Type === 3) {
  12602. break done;
  12603. }
  12604. if (m.Header.Type === 2) {
  12605. $s = -1; return [sliceType.nil, new Errno(22)];
  12606. }
  12607. _i++;
  12608. }
  12609. }
  12610. $s = -1; return [tab, $ifaceNil];
  12611. /* */ } return; } } catch(err) { $err = err; $s = -1; return [sliceType.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: NetlinkRIB }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.err$3 = err$3; $f.err$4 = err$4; $f.family = family; $f.lsa = lsa; $f.lsa$1 = lsa$1; $f.m = m; $f.msgs = msgs; $f.nr = nr; $f.proto = proto; $f.rb = rb; $f.rbNew = rbNew; $f.s = s; $f.tab = tab; $f.v = v; $f.v$1 = v$1; $f.wb = wb; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  12612. };
  12613. $pkg.NetlinkRIB = NetlinkRIB;
  12614. ParseNetlinkMessage = function(b) {
  12615. var _tuple, b, dbuf, dlen, err, h, m, msgs;
  12616. msgs = sliceType$6.nil;
  12617. while (true) {
  12618. if (!(b.$length >= 16)) { break; }
  12619. _tuple = netlinkMessageHeaderAndData(b);
  12620. h = _tuple[0];
  12621. dbuf = _tuple[1];
  12622. dlen = _tuple[2];
  12623. err = _tuple[3];
  12624. if (!($interfaceIsEqual(err, $ifaceNil))) {
  12625. return [sliceType$6.nil, err];
  12626. }
  12627. m = new NetlinkMessage.ptr($clone(h, NlMsghdr), $subslice(dbuf, 0, (((h.Len >> 0)) - 16 >> 0)));
  12628. msgs = $append(msgs, m);
  12629. b = $subslice(b, dlen);
  12630. }
  12631. return [msgs, $ifaceNil];
  12632. };
  12633. $pkg.ParseNetlinkMessage = ParseNetlinkMessage;
  12634. netlinkMessageHeaderAndData = function(b) {
  12635. var _array, _struct, _view, b, h, l;
  12636. h = ((_array = ($sliceToArray(b)), _struct = new NlMsghdr.ptr(0, 0, 0, 0, 0), _view = new DataView(_array.buffer, _array.byteOffset), _struct.Len = _view.getUint32(0, true), _struct.Type = _view.getUint16(4, true), _struct.Flags = _view.getUint16(6, true), _struct.Seq = _view.getUint32(8, true), _struct.Pid = _view.getUint32(12, true), _struct));
  12637. l = nlmAlignOf(((h.Len >> 0)));
  12638. if (((h.Len >> 0)) < 16 || l > b.$length) {
  12639. return [ptrType$13.nil, sliceType.nil, 0, new Errno(22)];
  12640. }
  12641. return [h, $subslice(b, 16), l, $ifaceNil];
  12642. };
  12643. ParseNetlinkRouteAttr = function(m) {
  12644. var _1, _tuple, a, alen, attrs, b, err, m, ra, vbuf;
  12645. b = sliceType.nil;
  12646. _1 = m.Header.Type;
  12647. if ((_1 === (16)) || (_1 === (17))) {
  12648. b = $subslice(m.Data, 16);
  12649. } else if ((_1 === (20)) || (_1 === (21))) {
  12650. b = $subslice(m.Data, 8);
  12651. } else if ((_1 === (24)) || (_1 === (25))) {
  12652. b = $subslice(m.Data, 12);
  12653. } else {
  12654. return [sliceType$7.nil, new Errno(22)];
  12655. }
  12656. attrs = sliceType$7.nil;
  12657. while (true) {
  12658. if (!(b.$length >= 4)) { break; }
  12659. _tuple = netlinkRouteAttrAndValue(b);
  12660. a = _tuple[0];
  12661. vbuf = _tuple[1];
  12662. alen = _tuple[2];
  12663. err = _tuple[3];
  12664. if (!($interfaceIsEqual(err, $ifaceNil))) {
  12665. return [sliceType$7.nil, err];
  12666. }
  12667. ra = new NetlinkRouteAttr.ptr($clone(a, RtAttr), $subslice(vbuf, 0, (((a.Len >> 0)) - 4 >> 0)));
  12668. attrs = $append(attrs, ra);
  12669. b = $subslice(b, alen);
  12670. }
  12671. return [attrs, $ifaceNil];
  12672. };
  12673. $pkg.ParseNetlinkRouteAttr = ParseNetlinkRouteAttr;
  12674. netlinkRouteAttrAndValue = function(b) {
  12675. var _array, _struct, _view, a, b;
  12676. a = ((_array = ($sliceToArray(b)), _struct = new RtAttr.ptr(0, 0), _view = new DataView(_array.buffer, _array.byteOffset), _struct.Len = _view.getUint16(0, true), _struct.Type = _view.getUint16(2, true), _struct));
  12677. if (((a.Len >> 0)) < 4 || ((a.Len >> 0)) > b.$length) {
  12678. return [ptrType$14.nil, sliceType.nil, 0, new Errno(22)];
  12679. }
  12680. return [a, $subslice(b, 4), rtaAlignOf(((a.Len >> 0))), $ifaceNil];
  12681. };
  12682. itoa = function(val) {
  12683. var val;
  12684. if (val < 0) {
  12685. return "-" + uitoa(((-val >>> 0)));
  12686. }
  12687. return uitoa(((val >>> 0)));
  12688. };
  12689. uitoa = function(val) {
  12690. var _q, _r, buf, i, val;
  12691. buf = arrayType$4.zero();
  12692. i = 31;
  12693. while (true) {
  12694. if (!(val >= 10)) { break; }
  12695. ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = ((((_r = val % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) + 48 >>> 0) << 24 >>> 24)));
  12696. i = i - (1) >> 0;
  12697. val = (_q = val / (10), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"));
  12698. }
  12699. ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = (((val + 48 >>> 0) << 24 >>> 24)));
  12700. return ($bytesToString($subslice(new sliceType(buf), i)));
  12701. };
  12702. Timespec.ptr.prototype.Unix = function() {
  12703. var _tmp, _tmp$1, nsec, sec, ts;
  12704. sec = new $Int64(0, 0);
  12705. nsec = new $Int64(0, 0);
  12706. ts = this;
  12707. _tmp = (ts.Sec);
  12708. _tmp$1 = (ts.Nsec);
  12709. sec = _tmp;
  12710. nsec = _tmp$1;
  12711. return [sec, nsec];
  12712. };
  12713. Timespec.prototype.Unix = function() { return this.$val.Unix(); };
  12714. Timespec.ptr.prototype.Nano = function() {
  12715. var ts, x, x$1;
  12716. ts = this;
  12717. return (x = $mul64((ts.Sec), new $Int64(0, 1000000000)), x$1 = (ts.Nsec), new $Int64(x.$high + x$1.$high, x.$low + x$1.$low));
  12718. };
  12719. Timespec.prototype.Nano = function() { return this.$val.Nano(); };
  12720. Getpagesize = function() {
  12721. $throwRuntimeError("native function not implemented: syscall.Getpagesize");
  12722. };
  12723. $pkg.Getpagesize = Getpagesize;
  12724. Chmod = function(path, mode) {
  12725. var err, mode, path;
  12726. err = $ifaceNil;
  12727. err = Fchmodat(-100, path, mode, 0);
  12728. return err;
  12729. };
  12730. $pkg.Chmod = Chmod;
  12731. Fchmodat = function(dirfd, path, mode, flags) {
  12732. var dirfd, err, flags, mode, path;
  12733. err = $ifaceNil;
  12734. if (!((((flags & ~256) >> 0) === 0))) {
  12735. err = new Errno(22);
  12736. return err;
  12737. } else if (!(((flags & 256) === 0))) {
  12738. err = new Errno(95);
  12739. return err;
  12740. }
  12741. err = fchmodat(dirfd, path, mode);
  12742. return err;
  12743. };
  12744. $pkg.Fchmodat = Fchmodat;
  12745. Open = function(path, mode, perm) {
  12746. var _tuple, err, fd, mode, path, perm;
  12747. fd = 0;
  12748. err = $ifaceNil;
  12749. _tuple = openat(-100, path, mode | 0, perm);
  12750. fd = _tuple[0];
  12751. err = _tuple[1];
  12752. return [fd, err];
  12753. };
  12754. $pkg.Open = Open;
  12755. SockaddrInet4.ptr.prototype.sockaddr = function() {
  12756. var _array, _struct, _view, i, p, sa, x, x$1, x$2;
  12757. sa = this;
  12758. if (sa.Port < 0 || sa.Port > 65535) {
  12759. return [0, 0, new Errno(22)];
  12760. }
  12761. sa.raw.Family = 2;
  12762. p = (((x = sa.raw, (x.$ptr_Port || (x.$ptr_Port = new ptrType$9(function() { return this.$target.Port; }, function($v) { this.$target.Port = $v; }, x))))));
  12763. p.nilCheck, p[0] = (((sa.Port >> 8 >> 0) << 24 >>> 24));
  12764. p.nilCheck, p[1] = ((sa.Port << 24 >>> 24));
  12765. i = 0;
  12766. while (true) {
  12767. if (!(i < 4)) { break; }
  12768. (x$2 = sa.raw.Addr, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i] = (x$1 = sa.Addr, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i]))));
  12769. i = i + (1) >> 0;
  12770. }
  12771. _array = new Uint8Array(16);
  12772. return [(_array), 16, $ifaceNil];
  12773. };
  12774. SockaddrInet4.prototype.sockaddr = function() { return this.$val.sockaddr(); };
  12775. SockaddrInet6.ptr.prototype.sockaddr = function() {
  12776. var _array, _struct, _view, i, p, sa, x, x$1, x$2;
  12777. sa = this;
  12778. if (sa.Port < 0 || sa.Port > 65535) {
  12779. return [0, 0, new Errno(22)];
  12780. }
  12781. sa.raw.Family = 10;
  12782. p = (((x = sa.raw, (x.$ptr_Port || (x.$ptr_Port = new ptrType$9(function() { return this.$target.Port; }, function($v) { this.$target.Port = $v; }, x))))));
  12783. p.nilCheck, p[0] = (((sa.Port >> 8 >> 0) << 24 >>> 24));
  12784. p.nilCheck, p[1] = ((sa.Port << 24 >>> 24));
  12785. sa.raw.Scope_id = sa.ZoneId;
  12786. i = 0;
  12787. while (true) {
  12788. if (!(i < 16)) { break; }
  12789. (x$2 = sa.raw.Addr, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i] = (x$1 = sa.Addr, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i]))));
  12790. i = i + (1) >> 0;
  12791. }
  12792. _array = new Uint8Array(28);
  12793. return [(_array), 28, $ifaceNil];
  12794. };
  12795. SockaddrInet6.prototype.sockaddr = function() { return this.$val.sockaddr(); };
  12796. SockaddrUnix.ptr.prototype.sockaddr = function() {
  12797. var _array, _struct, _view, i, n, name, sa, sl, x;
  12798. sa = this;
  12799. name = sa.Name;
  12800. n = name.length;
  12801. if (n > 108) {
  12802. return [0, 0, new Errno(22)];
  12803. }
  12804. if ((n === 108) && !((name.charCodeAt(0) === 64))) {
  12805. return [0, 0, new Errno(22)];
  12806. }
  12807. sa.raw.Family = 1;
  12808. i = 0;
  12809. while (true) {
  12810. if (!(i < n)) { break; }
  12811. (x = sa.raw.Path, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i] = ((name.charCodeAt(i) << 24 >> 24))));
  12812. i = i + (1) >> 0;
  12813. }
  12814. sl = 2;
  12815. if (n > 0) {
  12816. sl = sl + ((((n >>> 0)) + 1 >>> 0)) >>> 0;
  12817. }
  12818. if (sa.raw.Path[0] === 64) {
  12819. sa.raw.Path[0] = 0;
  12820. sl = sl - (1) >>> 0;
  12821. }
  12822. _array = new Uint8Array(110);
  12823. return [(_array), sl, $ifaceNil];
  12824. };
  12825. SockaddrUnix.prototype.sockaddr = function() { return this.$val.sockaddr(); };
  12826. SockaddrLinklayer.ptr.prototype.sockaddr = function() {
  12827. var _array, _struct, _view, i, sa, x, x$1;
  12828. sa = this;
  12829. if (sa.Ifindex < 0 || sa.Ifindex > 2147483647) {
  12830. return [0, 0, new Errno(22)];
  12831. }
  12832. sa.raw.Family = 17;
  12833. sa.raw.Protocol = sa.Protocol;
  12834. sa.raw.Ifindex = ((sa.Ifindex >> 0));
  12835. sa.raw.Hatype = sa.Hatype;
  12836. sa.raw.Pkttype = sa.Pkttype;
  12837. sa.raw.Halen = sa.Halen;
  12838. i = 0;
  12839. while (true) {
  12840. if (!(i < 8)) { break; }
  12841. (x$1 = sa.raw.Addr, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i] = (x = sa.Addr, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i]))));
  12842. i = i + (1) >> 0;
  12843. }
  12844. _array = new Uint8Array(20);
  12845. return [(_array), 20, $ifaceNil];
  12846. };
  12847. SockaddrLinklayer.prototype.sockaddr = function() { return this.$val.sockaddr(); };
  12848. SockaddrNetlink.ptr.prototype.sockaddr = function() {
  12849. var _array, _struct, _view, sa;
  12850. sa = this;
  12851. sa.raw.Family = 16;
  12852. sa.raw.Pad = sa.Pad;
  12853. sa.raw.Pid = sa.Pid;
  12854. sa.raw.Groups = sa.Groups;
  12855. _array = new Uint8Array(12);
  12856. return [(_array), 12, $ifaceNil];
  12857. };
  12858. SockaddrNetlink.prototype.sockaddr = function() { return this.$val.sockaddr(); };
  12859. anyToSockaddr = function(rsa) {
  12860. var _1, _array, _array$1, _array$2, _array$3, _array$4, _array$5, _array$6, _array$7, _array$8, _array$9, _struct, _struct$1, _struct$2, _struct$3, _struct$4, _struct$5, _struct$6, _struct$7, _struct$8, _struct$9, _view, _view$1, _view$2, _view$3, _view$4, _view$5, _view$6, _view$7, _view$8, _view$9, bytes, i, i$1, i$2, n, p, p$1, pp, pp$1, pp$2, pp$3, pp$4, rsa, sa, sa$1, sa$2, sa$3, sa$4, x, x$1, x$2, x$3, x$4, x$5, x$6;
  12861. _1 = rsa.Addr.Family;
  12862. if (_1 === (16)) {
  12863. _array$1 = new Uint8Array(112);
  12864. pp = ((_array = (_array$1), _struct = new RawSockaddrNetlink.ptr(0, 0, 0, 0), _view = new DataView(_array.buffer, _array.byteOffset), _struct.Family = _view.getUint16(0, true), _struct.Pad = _view.getUint16(2, true), _struct.Pid = _view.getUint32(4, true), _struct.Groups = _view.getUint32(8, true), _struct));
  12865. _struct$1 = rsa, _view$1 = new DataView(_array$1.buffer, _array$1.byteOffset), _struct$1.Addr.Family = _view$1.getUint16(0, true), _struct$1.Addr.Data = new ($nativeArray($kindInt8))(_array$1.buffer, $min(_array$1.byteOffset + 2, _array$1.buffer.byteLength)), _struct$1.Pad = new ($nativeArray($kindInt8))(_array$1.buffer, $min(_array$1.byteOffset + 16, _array$1.buffer.byteLength));
  12866. sa = new SockaddrNetlink.ptr(0, 0, 0, 0, new RawSockaddrNetlink.ptr(0, 0, 0, 0));
  12867. sa.Family = pp.Family;
  12868. sa.Pad = pp.Pad;
  12869. sa.Pid = pp.Pid;
  12870. sa.Groups = pp.Groups;
  12871. return [sa, $ifaceNil];
  12872. } else if (_1 === (17)) {
  12873. _array$3 = new Uint8Array(112);
  12874. pp$1 = ((_array$2 = (_array$3), _struct$2 = new RawSockaddrLinklayer.ptr(0, 0, 0, 0, 0, 0, arrayType$1.zero()), _view$2 = new DataView(_array$2.buffer, _array$2.byteOffset), _struct$2.Family = _view$2.getUint16(0, true), _struct$2.Protocol = _view$2.getUint16(2, true), _struct$2.Ifindex = _view$2.getInt32(4, true), _struct$2.Hatype = _view$2.getUint16(8, true), _struct$2.Pkttype = _view$2.getUint8(10, true), _struct$2.Halen = _view$2.getUint8(11, true), _struct$2.Addr = new ($nativeArray($kindUint8))(_array$2.buffer, $min(_array$2.byteOffset + 12, _array$2.buffer.byteLength)), _struct$2));
  12875. _struct$3 = rsa, _view$3 = new DataView(_array$3.buffer, _array$3.byteOffset), _struct$3.Addr.Family = _view$3.getUint16(0, true), _struct$3.Addr.Data = new ($nativeArray($kindInt8))(_array$3.buffer, $min(_array$3.byteOffset + 2, _array$3.buffer.byteLength)), _struct$3.Pad = new ($nativeArray($kindInt8))(_array$3.buffer, $min(_array$3.byteOffset + 16, _array$3.buffer.byteLength));
  12876. sa$1 = new SockaddrLinklayer.ptr(0, 0, 0, 0, 0, arrayType$1.zero(), new RawSockaddrLinklayer.ptr(0, 0, 0, 0, 0, 0, arrayType$1.zero()));
  12877. sa$1.Protocol = pp$1.Protocol;
  12878. sa$1.Ifindex = ((pp$1.Ifindex >> 0));
  12879. sa$1.Hatype = pp$1.Hatype;
  12880. sa$1.Pkttype = pp$1.Pkttype;
  12881. sa$1.Halen = pp$1.Halen;
  12882. i = 0;
  12883. while (true) {
  12884. if (!(i < 8)) { break; }
  12885. (x$1 = sa$1.Addr, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i] = (x = pp$1.Addr, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i]))));
  12886. i = i + (1) >> 0;
  12887. }
  12888. return [sa$1, $ifaceNil];
  12889. } else if (_1 === (1)) {
  12890. _array$5 = new Uint8Array(112);
  12891. pp$2 = ((_array$4 = (_array$5), _struct$4 = new RawSockaddrUnix.ptr(0, arrayType$8.zero()), _view$4 = new DataView(_array$4.buffer, _array$4.byteOffset), _struct$4.Family = _view$4.getUint16(0, true), _struct$4.Path = new ($nativeArray($kindInt8))(_array$4.buffer, $min(_array$4.byteOffset + 2, _array$4.buffer.byteLength)), _struct$4));
  12892. _struct$5 = rsa, _view$5 = new DataView(_array$5.buffer, _array$5.byteOffset), _struct$5.Addr.Family = _view$5.getUint16(0, true), _struct$5.Addr.Data = new ($nativeArray($kindInt8))(_array$5.buffer, $min(_array$5.byteOffset + 2, _array$5.buffer.byteLength)), _struct$5.Pad = new ($nativeArray($kindInt8))(_array$5.buffer, $min(_array$5.byteOffset + 16, _array$5.buffer.byteLength));
  12893. sa$2 = new SockaddrUnix.ptr("", new RawSockaddrUnix.ptr(0, arrayType$8.zero()));
  12894. if (pp$2.Path[0] === 0) {
  12895. pp$2.Path[0] = 64;
  12896. }
  12897. n = 0;
  12898. while (true) {
  12899. if (!(n < 108 && !(((x$2 = pp$2.Path, ((n < 0 || n >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[n])) === 0)))) { break; }
  12900. n = n + (1) >> 0;
  12901. }
  12902. bytes = $subslice(new sliceType((($sliceToArray(new sliceType(pp$2.Path))))), 0, n);
  12903. sa$2.Name = ($bytesToString(bytes));
  12904. return [sa$2, $ifaceNil];
  12905. } else if (_1 === (2)) {
  12906. _array$7 = new Uint8Array(112);
  12907. pp$3 = ((_array$6 = (_array$7), _struct$6 = new RawSockaddrInet4.ptr(0, 0, arrayType$9.zero(), arrayType$1.zero()), _view$6 = new DataView(_array$6.buffer, _array$6.byteOffset), _struct$6.Family = _view$6.getUint16(0, true), _struct$6.Port = _view$6.getUint16(2, true), _struct$6.Addr = new ($nativeArray($kindUint8))(_array$6.buffer, $min(_array$6.byteOffset + 4, _array$6.buffer.byteLength)), _struct$6.Zero = new ($nativeArray($kindUint8))(_array$6.buffer, $min(_array$6.byteOffset + 8, _array$6.buffer.byteLength)), _struct$6));
  12908. _struct$7 = rsa, _view$7 = new DataView(_array$7.buffer, _array$7.byteOffset), _struct$7.Addr.Family = _view$7.getUint16(0, true), _struct$7.Addr.Data = new ($nativeArray($kindInt8))(_array$7.buffer, $min(_array$7.byteOffset + 2, _array$7.buffer.byteLength)), _struct$7.Pad = new ($nativeArray($kindInt8))(_array$7.buffer, $min(_array$7.byteOffset + 16, _array$7.buffer.byteLength));
  12909. sa$3 = new SockaddrInet4.ptr(0, arrayType$9.zero(), new RawSockaddrInet4.ptr(0, 0, arrayType$9.zero(), arrayType$1.zero()));
  12910. p = (((pp$3.$ptr_Port || (pp$3.$ptr_Port = new ptrType$9(function() { return this.$target.Port; }, function($v) { this.$target.Port = $v; }, pp$3)))));
  12911. sa$3.Port = ((((p.nilCheck, p[0]) >> 0)) << 8 >> 0) + (((p.nilCheck, p[1]) >> 0)) >> 0;
  12912. i$1 = 0;
  12913. while (true) {
  12914. if (!(i$1 < 4)) { break; }
  12915. (x$4 = sa$3.Addr, ((i$1 < 0 || i$1 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[i$1] = (x$3 = pp$3.Addr, ((i$1 < 0 || i$1 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[i$1]))));
  12916. i$1 = i$1 + (1) >> 0;
  12917. }
  12918. return [sa$3, $ifaceNil];
  12919. } else if (_1 === (10)) {
  12920. _array$9 = new Uint8Array(112);
  12921. pp$4 = ((_array$8 = (_array$9), _struct$8 = new RawSockaddrInet6.ptr(0, 0, 0, arrayType$2.zero(), 0), _view$8 = new DataView(_array$8.buffer, _array$8.byteOffset), _struct$8.Family = _view$8.getUint16(0, true), _struct$8.Port = _view$8.getUint16(2, true), _struct$8.Flowinfo = _view$8.getUint32(4, true), _struct$8.Addr = new ($nativeArray($kindUint8))(_array$8.buffer, $min(_array$8.byteOffset + 8, _array$8.buffer.byteLength)), _struct$8.Scope_id = _view$8.getUint32(24, true), _struct$8));
  12922. _struct$9 = rsa, _view$9 = new DataView(_array$9.buffer, _array$9.byteOffset), _struct$9.Addr.Family = _view$9.getUint16(0, true), _struct$9.Addr.Data = new ($nativeArray($kindInt8))(_array$9.buffer, $min(_array$9.byteOffset + 2, _array$9.buffer.byteLength)), _struct$9.Pad = new ($nativeArray($kindInt8))(_array$9.buffer, $min(_array$9.byteOffset + 16, _array$9.buffer.byteLength));
  12923. sa$4 = new SockaddrInet6.ptr(0, 0, arrayType$2.zero(), new RawSockaddrInet6.ptr(0, 0, 0, arrayType$2.zero(), 0));
  12924. p$1 = (((pp$4.$ptr_Port || (pp$4.$ptr_Port = new ptrType$9(function() { return this.$target.Port; }, function($v) { this.$target.Port = $v; }, pp$4)))));
  12925. sa$4.Port = ((((p$1.nilCheck, p$1[0]) >> 0)) << 8 >> 0) + (((p$1.nilCheck, p$1[1]) >> 0)) >> 0;
  12926. sa$4.ZoneId = pp$4.Scope_id;
  12927. i$2 = 0;
  12928. while (true) {
  12929. if (!(i$2 < 16)) { break; }
  12930. (x$6 = sa$4.Addr, ((i$2 < 0 || i$2 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[i$2] = (x$5 = pp$4.Addr, ((i$2 < 0 || i$2 >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[i$2]))));
  12931. i$2 = i$2 + (1) >> 0;
  12932. }
  12933. return [sa$4, $ifaceNil];
  12934. }
  12935. return [$ifaceNil, new Errno(97)];
  12936. };
  12937. Accept = function(fd) {
  12938. var _tuple, _tuple$1, err, fd, len, len$24ptr, nfd, rsa, sa;
  12939. nfd = 0;
  12940. sa = $ifaceNil;
  12941. err = $ifaceNil;
  12942. rsa = new RawSockaddrAny.ptr(new RawSockaddr.ptr(0, arrayType$10.zero()), arrayType$11.zero());
  12943. len = 112;
  12944. _tuple = accept(fd, rsa, (len$24ptr || (len$24ptr = new ptrType$19(function() { return len; }, function($v) { len = $v; }))));
  12945. nfd = _tuple[0];
  12946. err = _tuple[1];
  12947. if (!($interfaceIsEqual(err, $ifaceNil))) {
  12948. return [nfd, sa, err];
  12949. }
  12950. _tuple$1 = anyToSockaddr(rsa);
  12951. sa = _tuple$1[0];
  12952. err = _tuple$1[1];
  12953. if (!($interfaceIsEqual(err, $ifaceNil))) {
  12954. Close(nfd);
  12955. nfd = 0;
  12956. }
  12957. return [nfd, sa, err];
  12958. };
  12959. $pkg.Accept = Accept;
  12960. Accept4 = function(fd, flags) {
  12961. var _tuple, _tuple$1, err, fd, flags, len, len$24ptr, nfd, rsa, sa;
  12962. nfd = 0;
  12963. sa = $ifaceNil;
  12964. err = $ifaceNil;
  12965. rsa = new RawSockaddrAny.ptr(new RawSockaddr.ptr(0, arrayType$10.zero()), arrayType$11.zero());
  12966. len = 112;
  12967. _tuple = accept4(fd, rsa, (len$24ptr || (len$24ptr = new ptrType$19(function() { return len; }, function($v) { len = $v; }))), flags);
  12968. nfd = _tuple[0];
  12969. err = _tuple[1];
  12970. if (!($interfaceIsEqual(err, $ifaceNil))) {
  12971. return [nfd, sa, err];
  12972. }
  12973. if (len > 112) {
  12974. $panic(new $String("RawSockaddrAny too small"));
  12975. }
  12976. _tuple$1 = anyToSockaddr(rsa);
  12977. sa = _tuple$1[0];
  12978. err = _tuple$1[1];
  12979. if (!($interfaceIsEqual(err, $ifaceNil))) {
  12980. Close(nfd);
  12981. nfd = 0;
  12982. }
  12983. return [nfd, sa, err];
  12984. };
  12985. $pkg.Accept4 = Accept4;
  12986. Getsockname = function(fd) {
  12987. var _tuple, err, fd, len, len$24ptr, rsa, sa;
  12988. sa = $ifaceNil;
  12989. err = $ifaceNil;
  12990. rsa = new RawSockaddrAny.ptr(new RawSockaddr.ptr(0, arrayType$10.zero()), arrayType$11.zero());
  12991. len = 112;
  12992. err = getsockname(fd, rsa, (len$24ptr || (len$24ptr = new ptrType$19(function() { return len; }, function($v) { len = $v; }))));
  12993. if (!($interfaceIsEqual(err, $ifaceNil))) {
  12994. return [sa, err];
  12995. }
  12996. _tuple = anyToSockaddr(rsa);
  12997. sa = _tuple[0];
  12998. err = _tuple[1];
  12999. return [sa, err];
  13000. };
  13001. $pkg.Getsockname = Getsockname;
  13002. SetsockoptIPMreqn = function(fd, level, opt, mreq) {
  13003. var _array, _struct, _view, err, fd, level, mreq, opt;
  13004. err = $ifaceNil;
  13005. _array = new Uint8Array(12);
  13006. err = setsockopt(fd, level, opt, (_array), 12);
  13007. _struct = mreq, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Multiaddr = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 0, _array.buffer.byteLength)), _struct.Address = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 4, _array.buffer.byteLength)), _struct.Ifindex = _view.getInt32(8, true);
  13008. return err;
  13009. };
  13010. $pkg.SetsockoptIPMreqn = SetsockoptIPMreqn;
  13011. Recvmsg = function(fd, p, oob, flags) {
  13012. var _array, _struct, _tuple, _tuple$1, _tuple$2, _view, dummy, dummy$24ptr, err, fd, flags, from, iov, msg, n, oob, oobn, p, recvflags, rsa, sockType;
  13013. n = 0;
  13014. oobn = 0;
  13015. recvflags = 0;
  13016. from = $ifaceNil;
  13017. err = $ifaceNil;
  13018. msg = new Msghdr.ptr(ptrType$2.nil, 0, arrayType$9.zero(), ptrType$20.nil, new $Uint64(0, 0), ptrType$2.nil, new $Uint64(0, 0), 0, arrayType$9.zero());
  13019. rsa = new RawSockaddrAny.ptr(new RawSockaddr.ptr(0, arrayType$10.zero()), arrayType$11.zero());
  13020. _array = new Uint8Array(112);
  13021. msg.Name = ((_array));
  13022. _struct = rsa, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Addr.Family = _view.getUint16(0, true), _struct.Addr.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 2, _array.buffer.byteLength)), _struct.Pad = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 16, _array.buffer.byteLength));
  13023. msg.Namelen = 112;
  13024. iov = new Iovec.ptr(ptrType$2.nil, new $Uint64(0, 0));
  13025. if (p.$length > 0) {
  13026. iov.Base = $indexPtr(p.$array, p.$offset + 0, ptrType$2);
  13027. iov.SetLen(p.$length);
  13028. }
  13029. dummy = 0;
  13030. if (oob.$length > 0) {
  13031. if (p.$length === 0) {
  13032. sockType = 0;
  13033. _tuple = GetsockoptInt(fd, 1, 3);
  13034. sockType = _tuple[0];
  13035. err = _tuple[1];
  13036. if (!($interfaceIsEqual(err, $ifaceNil))) {
  13037. return [n, oobn, recvflags, from, err];
  13038. }
  13039. if (!((sockType === 2))) {
  13040. iov.Base = (dummy$24ptr || (dummy$24ptr = new ptrType$2(function() { return dummy; }, function($v) { dummy = $v; })));
  13041. iov.SetLen(1);
  13042. }
  13043. }
  13044. msg.Control = $indexPtr(oob.$array, oob.$offset + 0, ptrType$2);
  13045. msg.SetControllen(oob.$length);
  13046. }
  13047. msg.Iov = iov;
  13048. msg.Iovlen = new $Uint64(0, 1);
  13049. _tuple$1 = recvmsg(fd, msg, flags);
  13050. n = _tuple$1[0];
  13051. err = _tuple$1[1];
  13052. if (!($interfaceIsEqual(err, $ifaceNil))) {
  13053. return [n, oobn, recvflags, from, err];
  13054. }
  13055. oobn = ((msg.Controllen.$low >> 0));
  13056. recvflags = ((msg.Flags >> 0));
  13057. if (!((rsa.Addr.Family === 0))) {
  13058. _tuple$2 = anyToSockaddr(rsa);
  13059. from = _tuple$2[0];
  13060. err = _tuple$2[1];
  13061. }
  13062. return [n, oobn, recvflags, from, err];
  13063. };
  13064. $pkg.Recvmsg = Recvmsg;
  13065. SendmsgN = function(fd, p, oob, to, flags) {
  13066. var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, dummy, err, err$1, fd, flags, iov, msg, n, oob, p, ptr, salen, sockType, to, $s, $r;
  13067. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; dummy = $f.dummy; err = $f.err; err$1 = $f.err$1; fd = $f.fd; flags = $f.flags; iov = $f.iov; msg = $f.msg; n = $f.n; oob = $f.oob; p = $f.p; ptr = $f.ptr; salen = $f.salen; sockType = $f.sockType; to = $f.to; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  13068. dummy = [dummy];
  13069. iov = [iov];
  13070. msg = [msg];
  13071. n = 0;
  13072. err = $ifaceNil;
  13073. ptr = 0;
  13074. salen = 0;
  13075. /* */ if (!($interfaceIsEqual(to, $ifaceNil))) { $s = 1; continue; }
  13076. /* */ $s = 2; continue;
  13077. /* if (!($interfaceIsEqual(to, $ifaceNil))) { */ case 1:
  13078. err$1 = $ifaceNil;
  13079. _r = to.sockaddr(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  13080. _tuple = _r;
  13081. ptr = _tuple[0];
  13082. salen = _tuple[1];
  13083. err$1 = _tuple[2];
  13084. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  13085. _tmp = 0;
  13086. _tmp$1 = err$1;
  13087. n = _tmp;
  13088. err = _tmp$1;
  13089. $s = -1; return [n, err];
  13090. }
  13091. /* } */ case 2:
  13092. msg[0] = new Msghdr.ptr(ptrType$2.nil, 0, arrayType$9.zero(), ptrType$20.nil, new $Uint64(0, 0), ptrType$2.nil, new $Uint64(0, 0), 0, arrayType$9.zero());
  13093. msg[0].Name = (ptr);
  13094. msg[0].Namelen = ((salen >>> 0));
  13095. iov[0] = new Iovec.ptr(ptrType$2.nil, new $Uint64(0, 0));
  13096. if (p.$length > 0) {
  13097. iov[0].Base = $indexPtr(p.$array, p.$offset + 0, ptrType$2);
  13098. iov[0].SetLen(p.$length);
  13099. }
  13100. dummy[0] = 0;
  13101. if (oob.$length > 0) {
  13102. if (p.$length === 0) {
  13103. sockType = 0;
  13104. _tuple$1 = GetsockoptInt(fd, 1, 3);
  13105. sockType = _tuple$1[0];
  13106. err = _tuple$1[1];
  13107. if (!($interfaceIsEqual(err, $ifaceNil))) {
  13108. _tmp$2 = 0;
  13109. _tmp$3 = err;
  13110. n = _tmp$2;
  13111. err = _tmp$3;
  13112. $s = -1; return [n, err];
  13113. }
  13114. if (!((sockType === 2))) {
  13115. iov[0].Base = (dummy.$ptr || (dummy.$ptr = new ptrType$2(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, dummy)));
  13116. iov[0].SetLen(1);
  13117. }
  13118. }
  13119. msg[0].Control = $indexPtr(oob.$array, oob.$offset + 0, ptrType$2);
  13120. msg[0].SetControllen(oob.$length);
  13121. }
  13122. msg[0].Iov = iov[0];
  13123. msg[0].Iovlen = new $Uint64(0, 1);
  13124. _tuple$2 = sendmsg(fd, msg[0], flags);
  13125. n = _tuple$2[0];
  13126. err = _tuple$2[1];
  13127. if (!($interfaceIsEqual(err, $ifaceNil))) {
  13128. _tmp$4 = 0;
  13129. _tmp$5 = err;
  13130. n = _tmp$4;
  13131. err = _tmp$5;
  13132. $s = -1; return [n, err];
  13133. }
  13134. if (oob.$length > 0 && (p.$length === 0)) {
  13135. n = 0;
  13136. }
  13137. _tmp$6 = n;
  13138. _tmp$7 = $ifaceNil;
  13139. n = _tmp$6;
  13140. err = _tmp$7;
  13141. $s = -1; return [n, err];
  13142. /* */ } return; } if ($f === undefined) { $f = { $blk: SendmsgN }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.dummy = dummy; $f.err = err; $f.err$1 = err$1; $f.fd = fd; $f.flags = flags; $f.iov = iov; $f.msg = msg; $f.n = n; $f.oob = oob; $f.p = p; $f.ptr = ptr; $f.salen = salen; $f.sockType = sockType; $f.to = to; $f.$s = $s; $f.$r = $r; return $f;
  13143. };
  13144. $pkg.SendmsgN = SendmsgN;
  13145. ReadDirent = function(fd, buf) {
  13146. var _tuple, buf, err, fd, n;
  13147. n = 0;
  13148. err = $ifaceNil;
  13149. _tuple = Getdents(fd, buf);
  13150. n = _tuple[0];
  13151. err = _tuple[1];
  13152. return [n, err];
  13153. };
  13154. $pkg.ReadDirent = ReadDirent;
  13155. direntIno = function(buf) {
  13156. var buf;
  13157. return readInt(buf, 0, 8);
  13158. };
  13159. direntReclen = function(buf) {
  13160. var buf;
  13161. return readInt(buf, 16, 2);
  13162. };
  13163. direntNamlen = function(buf) {
  13164. var _tuple, buf, ok, reclen;
  13165. _tuple = direntReclen(buf);
  13166. reclen = _tuple[0];
  13167. ok = _tuple[1];
  13168. if (!ok) {
  13169. return [new $Uint64(0, 0), false];
  13170. }
  13171. return [new $Uint64(reclen.$high - 0, reclen.$low - 19), true];
  13172. };
  13173. Stat = function(path, stat) {
  13174. var err, path, stat;
  13175. err = $ifaceNil;
  13176. err = fstatat(-100, path, stat, 0);
  13177. return err;
  13178. };
  13179. $pkg.Stat = Stat;
  13180. Lstat = function(path, stat) {
  13181. var err, path, stat;
  13182. err = $ifaceNil;
  13183. err = fstatat(-100, path, stat, 256);
  13184. return err;
  13185. };
  13186. $pkg.Lstat = Lstat;
  13187. Iovec.ptr.prototype.SetLen = function(length) {
  13188. var iov, length;
  13189. iov = this;
  13190. iov.Len = (new $Uint64(0, length));
  13191. };
  13192. Iovec.prototype.SetLen = function(length) { return this.$val.SetLen(length); };
  13193. Msghdr.ptr.prototype.SetControllen = function(length) {
  13194. var length, msghdr;
  13195. msghdr = this;
  13196. msghdr.Controllen = (new $Uint64(0, length));
  13197. };
  13198. Msghdr.prototype.SetControllen = function(length) { return this.$val.SetControllen(length); };
  13199. mmapper.ptr.prototype.Mmap = function(fd, offset, length, prot, flags) {
  13200. var _key, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, addr, b, data, err, errno, fd, flags, length, m, offset, p, prot, sl, $s, $deferred, $r;
  13201. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _key = $f._key; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; addr = $f.addr; b = $f.b; data = $f.data; err = $f.err; errno = $f.errno; fd = $f.fd; flags = $f.flags; length = $f.length; m = $f.m; offset = $f.offset; p = $f.p; prot = $f.prot; sl = $f.sl; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  13202. sl = [sl];
  13203. data = sliceType.nil;
  13204. err = $ifaceNil;
  13205. m = this;
  13206. if (length <= 0) {
  13207. _tmp = sliceType.nil;
  13208. _tmp$1 = new Errno(22);
  13209. data = _tmp;
  13210. err = _tmp$1;
  13211. $s = -1; return [data, err];
  13212. }
  13213. _r = m.mmap(0, ((length >>> 0)), prot, flags, fd, offset); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  13214. _tuple = _r;
  13215. addr = _tuple[0];
  13216. errno = _tuple[1];
  13217. if (!($interfaceIsEqual(errno, $ifaceNil))) {
  13218. _tmp$2 = sliceType.nil;
  13219. _tmp$3 = errno;
  13220. data = _tmp$2;
  13221. err = _tmp$3;
  13222. $s = -1; return [data, err];
  13223. }
  13224. sl[0] = new structType.ptr(addr, length, length);
  13225. b = sl[0];
  13226. p = $indexPtr(b.$array, b.$offset + (b.$capacity - 1 >> 0), ptrType$2);
  13227. $r = m.Mutex.Lock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  13228. $deferred.push([$methodVal(m.Mutex, "Unlock"), []]);
  13229. _key = p; (m.active || $throwRuntimeError("assignment to entry in nil map"))[ptrType$2.keyFor(_key)] = { k: _key, v: b };
  13230. _tmp$4 = b;
  13231. _tmp$5 = $ifaceNil;
  13232. data = _tmp$4;
  13233. err = _tmp$5;
  13234. $s = -1; return [data, err];
  13235. /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [data, err]; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: mmapper.ptr.prototype.Mmap }; } $f._key = _key; $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f.addr = addr; $f.b = b; $f.data = data; $f.err = err; $f.errno = errno; $f.fd = fd; $f.flags = flags; $f.length = length; $f.m = m; $f.offset = offset; $f.p = p; $f.prot = prot; $f.sl = sl; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  13236. };
  13237. mmapper.prototype.Mmap = function(fd, offset, length, prot, flags) { return this.$val.Mmap(fd, offset, length, prot, flags); };
  13238. mmapper.ptr.prototype.Munmap = function(data) {
  13239. var _entry, _r, b, data, err, errno, m, p, $s, $deferred, $r;
  13240. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _r = $f._r; b = $f.b; data = $f.data; err = $f.err; errno = $f.errno; m = $f.m; p = $f.p; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  13241. err = $ifaceNil;
  13242. m = this;
  13243. if ((data.$length === 0) || !((data.$length === data.$capacity))) {
  13244. err = new Errno(22);
  13245. $s = -1; return err;
  13246. }
  13247. p = $indexPtr(data.$array, data.$offset + (data.$capacity - 1 >> 0), ptrType$2);
  13248. $r = m.Mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  13249. $deferred.push([$methodVal(m.Mutex, "Unlock"), []]);
  13250. b = (_entry = m.active[ptrType$2.keyFor(p)], _entry !== undefined ? _entry.v : sliceType.nil);
  13251. if (b === sliceType.nil || !($indexPtr(b.$array, b.$offset + 0, ptrType$2) === $indexPtr(data.$array, data.$offset + 0, ptrType$2))) {
  13252. err = new Errno(22);
  13253. $s = -1; return err;
  13254. }
  13255. _r = m.munmap((($sliceToArray(b))), ((b.$length >>> 0))); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  13256. errno = _r;
  13257. if (!($interfaceIsEqual(errno, $ifaceNil))) {
  13258. err = errno;
  13259. $s = -1; return err;
  13260. }
  13261. delete m.active[ptrType$2.keyFor(p)];
  13262. err = $ifaceNil;
  13263. $s = -1; return err;
  13264. /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: mmapper.ptr.prototype.Munmap }; } $f._entry = _entry; $f._r = _r; $f.b = b; $f.data = data; $f.err = err; $f.errno = errno; $f.m = m; $f.p = p; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  13265. };
  13266. mmapper.prototype.Munmap = function(data) { return this.$val.Munmap(data); };
  13267. Errno.prototype.Error = function() {
  13268. var e, s;
  13269. e = this.$val;
  13270. if (0 <= ((e >> 0)) && ((e >> 0)) < 133) {
  13271. s = ((e < 0 || e >= errors.length) ? ($throwRuntimeError("index out of range"), undefined) : errors[e]);
  13272. if (!(s === "")) {
  13273. return s;
  13274. }
  13275. }
  13276. return "errno " + itoa(((e >> 0)));
  13277. };
  13278. $ptrType(Errno).prototype.Error = function() { return new Errno(this.$get()).Error(); };
  13279. Errno.prototype.Temporary = function() {
  13280. var e;
  13281. e = this.$val;
  13282. return (e === 4) || (e === 24) || new Errno(e).Timeout();
  13283. };
  13284. $ptrType(Errno).prototype.Temporary = function() { return new Errno(this.$get()).Temporary(); };
  13285. Errno.prototype.Timeout = function() {
  13286. var e;
  13287. e = this.$val;
  13288. return (e === 11) || (e === 11) || (e === 110);
  13289. };
  13290. $ptrType(Errno).prototype.Timeout = function() { return new Errno(this.$get()).Timeout(); };
  13291. errnoErr = function(e) {
  13292. var _1, e;
  13293. _1 = e;
  13294. if (_1 === (0)) {
  13295. return $ifaceNil;
  13296. } else if (_1 === (11)) {
  13297. return errEAGAIN;
  13298. } else if (_1 === (22)) {
  13299. return errEINVAL;
  13300. } else if (_1 === (2)) {
  13301. return errENOENT;
  13302. }
  13303. return new Errno(e);
  13304. };
  13305. Read = function(fd, p) {
  13306. var _tuple, err, fd, n, p;
  13307. n = 0;
  13308. err = $ifaceNil;
  13309. _tuple = read(fd, p);
  13310. n = _tuple[0];
  13311. err = _tuple[1];
  13312. if (false) {
  13313. if (n > 0) {
  13314. race.WriteRange(($sliceToArray(p)), n);
  13315. }
  13316. if ($interfaceIsEqual(err, $ifaceNil)) {
  13317. race.Acquire(((ioSync$24ptr || (ioSync$24ptr = new ptrType$23(function() { return ioSync; }, function($v) { ioSync = $v; })))));
  13318. }
  13319. }
  13320. if (false && n > 0) {
  13321. msanWrite(($sliceToArray(p)), n);
  13322. }
  13323. return [n, err];
  13324. };
  13325. $pkg.Read = Read;
  13326. Write = function(fd, p) {
  13327. var _tuple, err, fd, n, p;
  13328. n = 0;
  13329. err = $ifaceNil;
  13330. if (false) {
  13331. race.ReleaseMerge(((ioSync$24ptr || (ioSync$24ptr = new ptrType$23(function() { return ioSync; }, function($v) { ioSync = $v; })))));
  13332. }
  13333. _tuple = write(fd, p);
  13334. n = _tuple[0];
  13335. err = _tuple[1];
  13336. if (false && n > 0) {
  13337. race.ReadRange(($sliceToArray(p)), n);
  13338. }
  13339. if (false && n > 0) {
  13340. msanRead(($sliceToArray(p)), n);
  13341. }
  13342. return [n, err];
  13343. };
  13344. $pkg.Write = Write;
  13345. Bind = function(fd, sa) {
  13346. var _r, _tuple, err, fd, n, ptr, sa, $s, $r;
  13347. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; fd = $f.fd; n = $f.n; ptr = $f.ptr; sa = $f.sa; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  13348. err = $ifaceNil;
  13349. _r = sa.sockaddr(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  13350. _tuple = _r;
  13351. ptr = _tuple[0];
  13352. n = _tuple[1];
  13353. err = _tuple[2];
  13354. if (!($interfaceIsEqual(err, $ifaceNil))) {
  13355. err = err;
  13356. $s = -1; return err;
  13357. }
  13358. err = bind(fd, ptr, n);
  13359. $s = -1; return err;
  13360. /* */ } return; } if ($f === undefined) { $f = { $blk: Bind }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.fd = fd; $f.n = n; $f.ptr = ptr; $f.sa = sa; $f.$s = $s; $f.$r = $r; return $f;
  13361. };
  13362. $pkg.Bind = Bind;
  13363. GetsockoptInt = function(fd, level, opt) {
  13364. var _tmp, _tmp$1, err, fd, level, n, n$24ptr, opt, vallen, vallen$24ptr, value;
  13365. value = 0;
  13366. err = $ifaceNil;
  13367. n = 0;
  13368. vallen = 4;
  13369. err = getsockopt(fd, level, opt, ((n$24ptr || (n$24ptr = new ptrType$4(function() { return n; }, function($v) { n = $v; })))), (vallen$24ptr || (vallen$24ptr = new ptrType$19(function() { return vallen; }, function($v) { vallen = $v; }))));
  13370. _tmp = ((n >> 0));
  13371. _tmp$1 = err;
  13372. value = _tmp;
  13373. err = _tmp$1;
  13374. return [value, err];
  13375. };
  13376. $pkg.GetsockoptInt = GetsockoptInt;
  13377. Recvfrom = function(fd, p, flags) {
  13378. var _tuple, _tuple$1, err, fd, flags, from, len, len$24ptr, n, p, rsa;
  13379. n = 0;
  13380. from = $ifaceNil;
  13381. err = $ifaceNil;
  13382. rsa = new RawSockaddrAny.ptr(new RawSockaddr.ptr(0, arrayType$10.zero()), arrayType$11.zero());
  13383. len = 112;
  13384. _tuple = recvfrom(fd, p, flags, rsa, (len$24ptr || (len$24ptr = new ptrType$19(function() { return len; }, function($v) { len = $v; }))));
  13385. n = _tuple[0];
  13386. err = _tuple[1];
  13387. if (!($interfaceIsEqual(err, $ifaceNil))) {
  13388. return [n, from, err];
  13389. }
  13390. if (!((rsa.Addr.Family === 0))) {
  13391. _tuple$1 = anyToSockaddr(rsa);
  13392. from = _tuple$1[0];
  13393. err = _tuple$1[1];
  13394. }
  13395. return [n, from, err];
  13396. };
  13397. $pkg.Recvfrom = Recvfrom;
  13398. Sendto = function(fd, p, flags, to) {
  13399. var _r, _tuple, err, fd, flags, n, p, ptr, to, $s, $r;
  13400. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; fd = $f.fd; flags = $f.flags; n = $f.n; p = $f.p; ptr = $f.ptr; to = $f.to; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  13401. err = $ifaceNil;
  13402. _r = to.sockaddr(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  13403. _tuple = _r;
  13404. ptr = _tuple[0];
  13405. n = _tuple[1];
  13406. err = _tuple[2];
  13407. if (!($interfaceIsEqual(err, $ifaceNil))) {
  13408. err = err;
  13409. $s = -1; return err;
  13410. }
  13411. err = sendto(fd, p, flags, ptr, n);
  13412. $s = -1; return err;
  13413. /* */ } return; } if ($f === undefined) { $f = { $blk: Sendto }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.fd = fd; $f.flags = flags; $f.n = n; $f.p = p; $f.ptr = ptr; $f.to = to; $f.$s = $s; $f.$r = $r; return $f;
  13414. };
  13415. $pkg.Sendto = Sendto;
  13416. SetsockoptByte = function(fd, level, opt, value) {
  13417. var err, fd, level, opt, value, value$24ptr;
  13418. err = $ifaceNil;
  13419. err = setsockopt(fd, level, opt, ((value$24ptr || (value$24ptr = new ptrType$2(function() { return value; }, function($v) { value = $v; })))), 1);
  13420. return err;
  13421. };
  13422. $pkg.SetsockoptByte = SetsockoptByte;
  13423. SetsockoptInt = function(fd, level, opt, value) {
  13424. var err, fd, level, n, n$24ptr, opt, value;
  13425. err = $ifaceNil;
  13426. n = ((value >> 0));
  13427. err = setsockopt(fd, level, opt, ((n$24ptr || (n$24ptr = new ptrType$4(function() { return n; }, function($v) { n = $v; })))), 4);
  13428. return err;
  13429. };
  13430. $pkg.SetsockoptInt = SetsockoptInt;
  13431. SetsockoptInet4Addr = function(fd, level, opt, value) {
  13432. var err, fd, level, opt, value;
  13433. err = $ifaceNil;
  13434. err = setsockopt(fd, level, opt, ($sliceToArray(new sliceType(value))), 4);
  13435. return err;
  13436. };
  13437. $pkg.SetsockoptInet4Addr = SetsockoptInet4Addr;
  13438. SetsockoptIPMreq = function(fd, level, opt, mreq) {
  13439. var _array, _struct, _view, err, fd, level, mreq, opt;
  13440. err = $ifaceNil;
  13441. _array = new Uint8Array(8);
  13442. err = setsockopt(fd, level, opt, (_array), 8);
  13443. _struct = mreq, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Multiaddr = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 0, _array.buffer.byteLength)), _struct.Interface = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 4, _array.buffer.byteLength));
  13444. return err;
  13445. };
  13446. $pkg.SetsockoptIPMreq = SetsockoptIPMreq;
  13447. SetsockoptIPv6Mreq = function(fd, level, opt, mreq) {
  13448. var _array, _struct, _view, err, fd, level, mreq, opt;
  13449. err = $ifaceNil;
  13450. _array = new Uint8Array(20);
  13451. err = setsockopt(fd, level, opt, (_array), 20);
  13452. _struct = mreq, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Multiaddr = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 0, _array.buffer.byteLength)), _struct.Interface = _view.getUint32(16, true);
  13453. return err;
  13454. };
  13455. $pkg.SetsockoptIPv6Mreq = SetsockoptIPv6Mreq;
  13456. SetsockoptLinger = function(fd, level, opt, l) {
  13457. var _array, _struct, _view, err, fd, l, level, opt;
  13458. err = $ifaceNil;
  13459. _array = new Uint8Array(8);
  13460. err = setsockopt(fd, level, opt, (_array), 8);
  13461. _struct = l, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Onoff = _view.getInt32(0, true), _struct.Linger = _view.getInt32(4, true);
  13462. return err;
  13463. };
  13464. $pkg.SetsockoptLinger = SetsockoptLinger;
  13465. Socket = function(domain, typ, proto) {
  13466. var _tmp, _tmp$1, _tuple, domain, err, fd, proto, typ;
  13467. fd = 0;
  13468. err = $ifaceNil;
  13469. if ((domain === 10) && $pkg.SocketDisableIPv6) {
  13470. _tmp = -1;
  13471. _tmp$1 = new Errno(97);
  13472. fd = _tmp;
  13473. err = _tmp$1;
  13474. return [fd, err];
  13475. }
  13476. _tuple = socket(domain, typ, proto);
  13477. fd = _tuple[0];
  13478. err = _tuple[1];
  13479. return [fd, err];
  13480. };
  13481. $pkg.Socket = Socket;
  13482. fchmodat = function(dirfd, path, mode) {
  13483. var _p0, _tuple, _tuple$1, dirfd, e1, err, mode, path;
  13484. err = $ifaceNil;
  13485. _p0 = ptrType$2.nil;
  13486. _tuple = BytePtrFromString(path);
  13487. _p0 = _tuple[0];
  13488. err = _tuple[1];
  13489. if (!($interfaceIsEqual(err, $ifaceNil))) {
  13490. return err;
  13491. }
  13492. _tuple$1 = Syscall(268, ((dirfd >>> 0)), ((_p0)), ((mode >>> 0)));
  13493. e1 = _tuple$1[2];
  13494. if (!((e1 === 0))) {
  13495. err = errnoErr(e1);
  13496. }
  13497. return err;
  13498. };
  13499. openat = function(dirfd, path, flags, mode) {
  13500. var _p0, _tuple, _tuple$1, dirfd, e1, err, fd, flags, mode, path, r0;
  13501. fd = 0;
  13502. err = $ifaceNil;
  13503. _p0 = ptrType$2.nil;
  13504. _tuple = BytePtrFromString(path);
  13505. _p0 = _tuple[0];
  13506. err = _tuple[1];
  13507. if (!($interfaceIsEqual(err, $ifaceNil))) {
  13508. return [fd, err];
  13509. }
  13510. _tuple$1 = Syscall6(257, ((dirfd >>> 0)), ((_p0)), ((flags >>> 0)), ((mode >>> 0)), 0, 0);
  13511. r0 = _tuple$1[0];
  13512. e1 = _tuple$1[2];
  13513. fd = ((r0 >> 0));
  13514. if (!((e1 === 0))) {
  13515. err = errnoErr(e1);
  13516. }
  13517. return [fd, err];
  13518. };
  13519. Close = function(fd) {
  13520. var _tuple, e1, err, fd;
  13521. err = $ifaceNil;
  13522. _tuple = Syscall(3, ((fd >>> 0)), 0, 0);
  13523. e1 = _tuple[2];
  13524. if (!((e1 === 0))) {
  13525. err = errnoErr(e1);
  13526. }
  13527. return err;
  13528. };
  13529. $pkg.Close = Close;
  13530. Dup = function(oldfd) {
  13531. var _tuple, e1, err, fd, oldfd, r0;
  13532. fd = 0;
  13533. err = $ifaceNil;
  13534. _tuple = Syscall(32, ((oldfd >>> 0)), 0, 0);
  13535. r0 = _tuple[0];
  13536. e1 = _tuple[2];
  13537. fd = ((r0 >> 0));
  13538. if (!((e1 === 0))) {
  13539. err = errnoErr(e1);
  13540. }
  13541. return [fd, err];
  13542. };
  13543. $pkg.Dup = Dup;
  13544. Fchdir = function(fd) {
  13545. var _tuple, e1, err, fd;
  13546. err = $ifaceNil;
  13547. _tuple = Syscall(81, ((fd >>> 0)), 0, 0);
  13548. e1 = _tuple[2];
  13549. if (!((e1 === 0))) {
  13550. err = errnoErr(e1);
  13551. }
  13552. return err;
  13553. };
  13554. $pkg.Fchdir = Fchdir;
  13555. Fchmod = function(fd, mode) {
  13556. var _tuple, e1, err, fd, mode;
  13557. err = $ifaceNil;
  13558. _tuple = Syscall(91, ((fd >>> 0)), ((mode >>> 0)), 0);
  13559. e1 = _tuple[2];
  13560. if (!((e1 === 0))) {
  13561. err = errnoErr(e1);
  13562. }
  13563. return err;
  13564. };
  13565. $pkg.Fchmod = Fchmod;
  13566. fcntl = function(fd, cmd, arg) {
  13567. var _tuple, arg, cmd, e1, err, fd, r0, val;
  13568. val = 0;
  13569. err = $ifaceNil;
  13570. _tuple = Syscall(72, ((fd >>> 0)), ((cmd >>> 0)), ((arg >>> 0)));
  13571. r0 = _tuple[0];
  13572. e1 = _tuple[2];
  13573. val = ((r0 >> 0));
  13574. if (!((e1 === 0))) {
  13575. err = errnoErr(e1);
  13576. }
  13577. return [val, err];
  13578. };
  13579. Fsync = function(fd) {
  13580. var _tuple, e1, err, fd;
  13581. err = $ifaceNil;
  13582. _tuple = Syscall(74, ((fd >>> 0)), 0, 0);
  13583. e1 = _tuple[2];
  13584. if (!((e1 === 0))) {
  13585. err = errnoErr(e1);
  13586. }
  13587. return err;
  13588. };
  13589. $pkg.Fsync = Fsync;
  13590. Getdents = function(fd, buf) {
  13591. var _p0, _tuple, buf, e1, err, fd, n, r0;
  13592. n = 0;
  13593. err = $ifaceNil;
  13594. _p0 = 0;
  13595. if (buf.$length > 0) {
  13596. _p0 = ($sliceToArray(buf));
  13597. } else {
  13598. _p0 = (new Uint8Array(0));
  13599. }
  13600. _tuple = Syscall(217, ((fd >>> 0)), (_p0), ((buf.$length >>> 0)));
  13601. r0 = _tuple[0];
  13602. e1 = _tuple[2];
  13603. n = ((r0 >> 0));
  13604. if (!((e1 === 0))) {
  13605. err = errnoErr(e1);
  13606. }
  13607. return [n, err];
  13608. };
  13609. $pkg.Getdents = Getdents;
  13610. read = function(fd, p) {
  13611. var _p0, _tuple, e1, err, fd, n, p, r0;
  13612. n = 0;
  13613. err = $ifaceNil;
  13614. _p0 = 0;
  13615. if (p.$length > 0) {
  13616. _p0 = ($sliceToArray(p));
  13617. } else {
  13618. _p0 = (new Uint8Array(0));
  13619. }
  13620. _tuple = Syscall(0, ((fd >>> 0)), (_p0), ((p.$length >>> 0)));
  13621. r0 = _tuple[0];
  13622. e1 = _tuple[2];
  13623. n = ((r0 >> 0));
  13624. if (!((e1 === 0))) {
  13625. err = errnoErr(e1);
  13626. }
  13627. return [n, err];
  13628. };
  13629. write = function(fd, p) {
  13630. var _p0, _tuple, e1, err, fd, n, p, r0;
  13631. n = 0;
  13632. err = $ifaceNil;
  13633. _p0 = 0;
  13634. if (p.$length > 0) {
  13635. _p0 = ($sliceToArray(p));
  13636. } else {
  13637. _p0 = (new Uint8Array(0));
  13638. }
  13639. _tuple = Syscall(1, ((fd >>> 0)), (_p0), ((p.$length >>> 0)));
  13640. r0 = _tuple[0];
  13641. e1 = _tuple[2];
  13642. n = ((r0 >> 0));
  13643. if (!((e1 === 0))) {
  13644. err = errnoErr(e1);
  13645. }
  13646. return [n, err];
  13647. };
  13648. munmap = function(addr, length) {
  13649. var _tuple, addr, e1, err, length;
  13650. err = $ifaceNil;
  13651. _tuple = Syscall(11, (addr), (length), 0);
  13652. e1 = _tuple[2];
  13653. if (!((e1 === 0))) {
  13654. err = errnoErr(e1);
  13655. }
  13656. return err;
  13657. };
  13658. Fchown = function(fd, uid, gid) {
  13659. var _tuple, e1, err, fd, gid, uid;
  13660. err = $ifaceNil;
  13661. _tuple = Syscall(93, ((fd >>> 0)), ((uid >>> 0)), ((gid >>> 0)));
  13662. e1 = _tuple[2];
  13663. if (!((e1 === 0))) {
  13664. err = errnoErr(e1);
  13665. }
  13666. return err;
  13667. };
  13668. $pkg.Fchown = Fchown;
  13669. Fstat = function(fd, stat) {
  13670. var _array, _struct, _tuple, _view, e1, err, fd, stat;
  13671. err = $ifaceNil;
  13672. _array = new Uint8Array(144);
  13673. _tuple = Syscall(5, ((fd >>> 0)), ((_array)), 0);
  13674. _struct = stat, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Dev = new $Uint64(_view.getUint32(4, true), _view.getUint32(0, true)), _struct.Ino = new $Uint64(_view.getUint32(12, true), _view.getUint32(8, true)), _struct.Nlink = new $Uint64(_view.getUint32(20, true), _view.getUint32(16, true)), _struct.Mode = _view.getUint32(24, true), _struct.Uid = _view.getUint32(28, true), _struct.Gid = _view.getUint32(32, true), _struct.X__pad0 = _view.getInt32(36, true), _struct.Rdev = new $Uint64(_view.getUint32(44, true), _view.getUint32(40, true)), _struct.Size = new $Int64(_view.getUint32(52, true), _view.getUint32(48, true)), _struct.Blksize = new $Int64(_view.getUint32(60, true), _view.getUint32(56, true)), _struct.Blocks = new $Int64(_view.getUint32(68, true), _view.getUint32(64, true)), _struct.Atim.Sec = new $Int64(_view.getUint32(76, true), _view.getUint32(72, true)), _struct.Atim.Nsec = new $Int64(_view.getUint32(84, true), _view.getUint32(80, true)), _struct.Mtim.Sec = new $Int64(_view.getUint32(92, true), _view.getUint32(88, true)), _struct.Mtim.Nsec = new $Int64(_view.getUint32(100, true), _view.getUint32(96, true)), _struct.Ctim.Sec = new $Int64(_view.getUint32(108, true), _view.getUint32(104, true)), _struct.Ctim.Nsec = new $Int64(_view.getUint32(116, true), _view.getUint32(112, true)), _struct.X__unused = new ($nativeArray($kindInt64))(_array.buffer, $min(_array.byteOffset + 120, _array.buffer.byteLength));
  13675. e1 = _tuple[2];
  13676. if (!((e1 === 0))) {
  13677. err = errnoErr(e1);
  13678. }
  13679. return err;
  13680. };
  13681. $pkg.Fstat = Fstat;
  13682. Ftruncate = function(fd, length) {
  13683. var _tuple, e1, err, fd, length;
  13684. err = $ifaceNil;
  13685. _tuple = Syscall(77, ((fd >>> 0)), ((length.$low >>> 0)), 0);
  13686. e1 = _tuple[2];
  13687. if (!((e1 === 0))) {
  13688. err = errnoErr(e1);
  13689. }
  13690. return err;
  13691. };
  13692. $pkg.Ftruncate = Ftruncate;
  13693. Pread = function(fd, p, offset) {
  13694. var _p0, _tuple, e1, err, fd, n, offset, p, r0;
  13695. n = 0;
  13696. err = $ifaceNil;
  13697. _p0 = 0;
  13698. if (p.$length > 0) {
  13699. _p0 = ($sliceToArray(p));
  13700. } else {
  13701. _p0 = (new Uint8Array(0));
  13702. }
  13703. _tuple = Syscall6(17, ((fd >>> 0)), (_p0), ((p.$length >>> 0)), ((offset.$low >>> 0)), 0, 0);
  13704. r0 = _tuple[0];
  13705. e1 = _tuple[2];
  13706. n = ((r0 >> 0));
  13707. if (!((e1 === 0))) {
  13708. err = errnoErr(e1);
  13709. }
  13710. return [n, err];
  13711. };
  13712. $pkg.Pread = Pread;
  13713. Pwrite = function(fd, p, offset) {
  13714. var _p0, _tuple, e1, err, fd, n, offset, p, r0;
  13715. n = 0;
  13716. err = $ifaceNil;
  13717. _p0 = 0;
  13718. if (p.$length > 0) {
  13719. _p0 = ($sliceToArray(p));
  13720. } else {
  13721. _p0 = (new Uint8Array(0));
  13722. }
  13723. _tuple = Syscall6(18, ((fd >>> 0)), (_p0), ((p.$length >>> 0)), ((offset.$low >>> 0)), 0, 0);
  13724. r0 = _tuple[0];
  13725. e1 = _tuple[2];
  13726. n = ((r0 >> 0));
  13727. if (!((e1 === 0))) {
  13728. err = errnoErr(e1);
  13729. }
  13730. return [n, err];
  13731. };
  13732. $pkg.Pwrite = Pwrite;
  13733. Seek = function(fd, offset, whence) {
  13734. var _tuple, e1, err, fd, off, offset, r0, whence;
  13735. off = new $Int64(0, 0);
  13736. err = $ifaceNil;
  13737. _tuple = Syscall(8, ((fd >>> 0)), ((offset.$low >>> 0)), ((whence >>> 0)));
  13738. r0 = _tuple[0];
  13739. e1 = _tuple[2];
  13740. off = (new $Int64(0, r0.constructor === Number ? r0 : 1));
  13741. if (!((e1 === 0))) {
  13742. err = errnoErr(e1);
  13743. }
  13744. return [off, err];
  13745. };
  13746. $pkg.Seek = Seek;
  13747. Shutdown = function(fd, how) {
  13748. var _tuple, e1, err, fd, how;
  13749. err = $ifaceNil;
  13750. _tuple = Syscall(48, ((fd >>> 0)), ((how >>> 0)), 0);
  13751. e1 = _tuple[2];
  13752. if (!((e1 === 0))) {
  13753. err = errnoErr(e1);
  13754. }
  13755. return err;
  13756. };
  13757. $pkg.Shutdown = Shutdown;
  13758. accept = function(s, rsa, addrlen) {
  13759. var _array, _struct, _tuple, _view, addrlen, e1, err, fd, r0, rsa, s;
  13760. fd = 0;
  13761. err = $ifaceNil;
  13762. _array = new Uint8Array(112);
  13763. _tuple = Syscall(43, ((s >>> 0)), ((_array)), ((addrlen)));
  13764. _struct = rsa, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Addr.Family = _view.getUint16(0, true), _struct.Addr.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 2, _array.buffer.byteLength)), _struct.Pad = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 16, _array.buffer.byteLength));
  13765. r0 = _tuple[0];
  13766. e1 = _tuple[2];
  13767. fd = ((r0 >> 0));
  13768. if (!((e1 === 0))) {
  13769. err = errnoErr(e1);
  13770. }
  13771. return [fd, err];
  13772. };
  13773. accept4 = function(s, rsa, addrlen, flags) {
  13774. var _array, _struct, _tuple, _view, addrlen, e1, err, fd, flags, r0, rsa, s;
  13775. fd = 0;
  13776. err = $ifaceNil;
  13777. _array = new Uint8Array(112);
  13778. _tuple = Syscall6(288, ((s >>> 0)), ((_array)), ((addrlen)), ((flags >>> 0)), 0, 0);
  13779. _struct = rsa, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Addr.Family = _view.getUint16(0, true), _struct.Addr.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 2, _array.buffer.byteLength)), _struct.Pad = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 16, _array.buffer.byteLength));
  13780. r0 = _tuple[0];
  13781. e1 = _tuple[2];
  13782. fd = ((r0 >> 0));
  13783. if (!((e1 === 0))) {
  13784. err = errnoErr(e1);
  13785. }
  13786. return [fd, err];
  13787. };
  13788. bind = function(s, addr, addrlen) {
  13789. var _tuple, addr, addrlen, e1, err, s;
  13790. err = $ifaceNil;
  13791. _tuple = Syscall(49, ((s >>> 0)), (addr), ((addrlen >>> 0)));
  13792. e1 = _tuple[2];
  13793. if (!((e1 === 0))) {
  13794. err = errnoErr(e1);
  13795. }
  13796. return err;
  13797. };
  13798. fstatat = function(fd, path, stat, flags) {
  13799. var _array, _p0, _struct, _tuple, _tuple$1, _view, e1, err, fd, flags, path, stat;
  13800. err = $ifaceNil;
  13801. _p0 = ptrType$2.nil;
  13802. _tuple = BytePtrFromString(path);
  13803. _p0 = _tuple[0];
  13804. err = _tuple[1];
  13805. if (!($interfaceIsEqual(err, $ifaceNil))) {
  13806. return err;
  13807. }
  13808. _array = new Uint8Array(144);
  13809. _tuple$1 = Syscall6(262, ((fd >>> 0)), ((_p0)), ((_array)), ((flags >>> 0)), 0, 0);
  13810. _struct = stat, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Dev = new $Uint64(_view.getUint32(4, true), _view.getUint32(0, true)), _struct.Ino = new $Uint64(_view.getUint32(12, true), _view.getUint32(8, true)), _struct.Nlink = new $Uint64(_view.getUint32(20, true), _view.getUint32(16, true)), _struct.Mode = _view.getUint32(24, true), _struct.Uid = _view.getUint32(28, true), _struct.Gid = _view.getUint32(32, true), _struct.X__pad0 = _view.getInt32(36, true), _struct.Rdev = new $Uint64(_view.getUint32(44, true), _view.getUint32(40, true)), _struct.Size = new $Int64(_view.getUint32(52, true), _view.getUint32(48, true)), _struct.Blksize = new $Int64(_view.getUint32(60, true), _view.getUint32(56, true)), _struct.Blocks = new $Int64(_view.getUint32(68, true), _view.getUint32(64, true)), _struct.Atim.Sec = new $Int64(_view.getUint32(76, true), _view.getUint32(72, true)), _struct.Atim.Nsec = new $Int64(_view.getUint32(84, true), _view.getUint32(80, true)), _struct.Mtim.Sec = new $Int64(_view.getUint32(92, true), _view.getUint32(88, true)), _struct.Mtim.Nsec = new $Int64(_view.getUint32(100, true), _view.getUint32(96, true)), _struct.Ctim.Sec = new $Int64(_view.getUint32(108, true), _view.getUint32(104, true)), _struct.Ctim.Nsec = new $Int64(_view.getUint32(116, true), _view.getUint32(112, true)), _struct.X__unused = new ($nativeArray($kindInt64))(_array.buffer, $min(_array.byteOffset + 120, _array.buffer.byteLength));
  13811. e1 = _tuple$1[2];
  13812. if (!((e1 === 0))) {
  13813. err = errnoErr(e1);
  13814. }
  13815. return err;
  13816. };
  13817. getsockopt = function(s, level, name, val, vallen) {
  13818. var _tuple, e1, err, level, name, s, val, vallen;
  13819. err = $ifaceNil;
  13820. _tuple = Syscall6(55, ((s >>> 0)), ((level >>> 0)), ((name >>> 0)), (val), ((vallen)), 0);
  13821. e1 = _tuple[2];
  13822. if (!((e1 === 0))) {
  13823. err = errnoErr(e1);
  13824. }
  13825. return err;
  13826. };
  13827. setsockopt = function(s, level, name, val, vallen) {
  13828. var _tuple, e1, err, level, name, s, val, vallen;
  13829. err = $ifaceNil;
  13830. _tuple = Syscall6(54, ((s >>> 0)), ((level >>> 0)), ((name >>> 0)), (val), (vallen), 0);
  13831. e1 = _tuple[2];
  13832. if (!((e1 === 0))) {
  13833. err = errnoErr(e1);
  13834. }
  13835. return err;
  13836. };
  13837. socket = function(domain, typ, proto) {
  13838. var _tuple, domain, e1, err, fd, proto, r0, typ;
  13839. fd = 0;
  13840. err = $ifaceNil;
  13841. _tuple = RawSyscall(41, ((domain >>> 0)), ((typ >>> 0)), ((proto >>> 0)));
  13842. r0 = _tuple[0];
  13843. e1 = _tuple[2];
  13844. fd = ((r0 >> 0));
  13845. if (!((e1 === 0))) {
  13846. err = errnoErr(e1);
  13847. }
  13848. return [fd, err];
  13849. };
  13850. getsockname = function(fd, rsa, addrlen) {
  13851. var _array, _struct, _tuple, _view, addrlen, e1, err, fd, rsa;
  13852. err = $ifaceNil;
  13853. _array = new Uint8Array(112);
  13854. _tuple = RawSyscall(51, ((fd >>> 0)), ((_array)), ((addrlen)));
  13855. _struct = rsa, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Addr.Family = _view.getUint16(0, true), _struct.Addr.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 2, _array.buffer.byteLength)), _struct.Pad = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 16, _array.buffer.byteLength));
  13856. e1 = _tuple[2];
  13857. if (!((e1 === 0))) {
  13858. err = errnoErr(e1);
  13859. }
  13860. return err;
  13861. };
  13862. recvfrom = function(fd, p, flags, from, fromlen) {
  13863. var _array, _p0, _struct, _tuple, _view, e1, err, fd, flags, from, fromlen, n, p, r0;
  13864. n = 0;
  13865. err = $ifaceNil;
  13866. _p0 = 0;
  13867. if (p.$length > 0) {
  13868. _p0 = ($sliceToArray(p));
  13869. } else {
  13870. _p0 = (new Uint8Array(0));
  13871. }
  13872. _array = new Uint8Array(112);
  13873. _tuple = Syscall6(45, ((fd >>> 0)), (_p0), ((p.$length >>> 0)), ((flags >>> 0)), ((_array)), ((fromlen)));
  13874. _struct = from, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Addr.Family = _view.getUint16(0, true), _struct.Addr.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 2, _array.buffer.byteLength)), _struct.Pad = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 16, _array.buffer.byteLength));
  13875. r0 = _tuple[0];
  13876. e1 = _tuple[2];
  13877. n = ((r0 >> 0));
  13878. if (!((e1 === 0))) {
  13879. err = errnoErr(e1);
  13880. }
  13881. return [n, err];
  13882. };
  13883. sendto = function(s, buf, flags, to, addrlen) {
  13884. var _p0, _tuple, addrlen, buf, e1, err, flags, s, to;
  13885. err = $ifaceNil;
  13886. _p0 = 0;
  13887. if (buf.$length > 0) {
  13888. _p0 = ($sliceToArray(buf));
  13889. } else {
  13890. _p0 = (new Uint8Array(0));
  13891. }
  13892. _tuple = Syscall6(44, ((s >>> 0)), (_p0), ((buf.$length >>> 0)), ((flags >>> 0)), (to), ((addrlen >>> 0)));
  13893. e1 = _tuple[2];
  13894. if (!((e1 === 0))) {
  13895. err = errnoErr(e1);
  13896. }
  13897. return err;
  13898. };
  13899. recvmsg = function(s, msg, flags) {
  13900. var _array, _struct, _tuple, _view, e1, err, flags, msg, n, r0, s;
  13901. n = 0;
  13902. err = $ifaceNil;
  13903. _array = new Uint8Array(48);
  13904. _tuple = Syscall(47, ((s >>> 0)), ((_array)), ((flags >>> 0)));
  13905. _struct = msg, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Namelen = _view.getUint32(4, true), _struct.Pad_cgo_0 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 8, _array.buffer.byteLength)), _struct.Iovlen = new $Uint64(_view.getUint32(20, true), _view.getUint32(16, true)), _struct.Controllen = new $Uint64(_view.getUint32(36, true), _view.getUint32(32, true)), _struct.Flags = _view.getInt32(40, true), _struct.Pad_cgo_1 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 44, _array.buffer.byteLength));
  13906. r0 = _tuple[0];
  13907. e1 = _tuple[2];
  13908. n = ((r0 >> 0));
  13909. if (!((e1 === 0))) {
  13910. err = errnoErr(e1);
  13911. }
  13912. return [n, err];
  13913. };
  13914. sendmsg = function(s, msg, flags) {
  13915. var _array, _struct, _tuple, _view, e1, err, flags, msg, n, r0, s;
  13916. n = 0;
  13917. err = $ifaceNil;
  13918. _array = new Uint8Array(48);
  13919. _tuple = Syscall(46, ((s >>> 0)), ((_array)), ((flags >>> 0)));
  13920. _struct = msg, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Namelen = _view.getUint32(4, true), _struct.Pad_cgo_0 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 8, _array.buffer.byteLength)), _struct.Iovlen = new $Uint64(_view.getUint32(20, true), _view.getUint32(16, true)), _struct.Controllen = new $Uint64(_view.getUint32(36, true), _view.getUint32(32, true)), _struct.Flags = _view.getInt32(40, true), _struct.Pad_cgo_1 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 44, _array.buffer.byteLength));
  13921. r0 = _tuple[0];
  13922. e1 = _tuple[2];
  13923. n = ((r0 >> 0));
  13924. if (!((e1 === 0))) {
  13925. err = errnoErr(e1);
  13926. }
  13927. return [n, err];
  13928. };
  13929. mmap = function(addr, length, prot, flags, fd, offset) {
  13930. var _tuple, addr, e1, err, fd, flags, length, offset, prot, r0, xaddr;
  13931. xaddr = 0;
  13932. err = $ifaceNil;
  13933. _tuple = Syscall6(9, (addr), (length), ((prot >>> 0)), ((flags >>> 0)), ((fd >>> 0)), ((offset.$low >>> 0)));
  13934. r0 = _tuple[0];
  13935. e1 = _tuple[2];
  13936. xaddr = (r0);
  13937. if (!((e1 === 0))) {
  13938. err = errnoErr(e1);
  13939. }
  13940. return [xaddr, err];
  13941. };
  13942. ptrType$24.methods = [{prop: "toWireFormat", name: "toWireFormat", pkg: "syscall", typ: $funcType([], [sliceType], false)}];
  13943. ptrType$25.methods = [{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}];
  13944. ptrType$12.methods = [{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}];
  13945. ptrType$26.methods = [{prop: "Mmap", name: "Mmap", pkg: "", typ: $funcType([$Int, $Int64, $Int, $Int, $Int], [sliceType, $error], false)}, {prop: "Munmap", name: "Munmap", pkg: "", typ: $funcType([sliceType], [$error], false)}];
  13946. Errno.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}];
  13947. ptrType$27.methods = [{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}];
  13948. ptrType$28.methods = [{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}];
  13949. ptrType$29.methods = [{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}];
  13950. ptrType$30.methods = [{prop: "Unix", name: "Unix", pkg: "", typ: $funcType([], [$Int64, $Int64], false)}, {prop: "Nano", name: "Nano", pkg: "", typ: $funcType([], [$Int64], false)}];
  13951. ptrType$20.methods = [{prop: "SetLen", name: "SetLen", pkg: "", typ: $funcType([$Int], [], false)}];
  13952. ptrType$32.methods = [{prop: "SetControllen", name: "SetControllen", pkg: "", typ: $funcType([$Int], [], false)}];
  13953. RawConn.init([{prop: "Control", name: "Control", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([funcType$1], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([funcType$1], [$error], false)}]);
  13954. NetlinkRouteRequest.init("", [{prop: "Header", name: "Header", embedded: false, exported: true, typ: NlMsghdr, tag: ""}, {prop: "Data", name: "Data", embedded: false, exported: true, typ: RtGenmsg, tag: ""}]);
  13955. NetlinkMessage.init("", [{prop: "Header", name: "Header", embedded: false, exported: true, typ: NlMsghdr, tag: ""}, {prop: "Data", name: "Data", embedded: false, exported: true, typ: sliceType, tag: ""}]);
  13956. NetlinkRouteAttr.init("", [{prop: "Attr", name: "Attr", embedded: false, exported: true, typ: RtAttr, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: sliceType, tag: ""}]);
  13957. SockaddrLinklayer.init("syscall", [{prop: "Protocol", name: "Protocol", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Ifindex", name: "Ifindex", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Hatype", name: "Hatype", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Pkttype", name: "Pkttype", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Halen", name: "Halen", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "raw", name: "raw", embedded: false, exported: false, typ: RawSockaddrLinklayer, tag: ""}]);
  13958. SockaddrNetlink.init("syscall", [{prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Pad", name: "Pad", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Pid", name: "Pid", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Groups", name: "Groups", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "raw", name: "raw", embedded: false, exported: false, typ: RawSockaddrNetlink, tag: ""}]);
  13959. mmapper.init("syscall", [{prop: "Mutex", name: "Mutex", embedded: true, exported: true, typ: sync.Mutex, tag: ""}, {prop: "active", name: "active", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "mmap", name: "mmap", embedded: false, exported: false, typ: funcType$2, tag: ""}, {prop: "munmap", name: "munmap", embedded: false, exported: false, typ: funcType$3, tag: ""}]);
  13960. Sockaddr.init([{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}]);
  13961. SockaddrInet4.init("syscall", [{prop: "Port", name: "Port", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType$9, tag: ""}, {prop: "raw", name: "raw", embedded: false, exported: false, typ: RawSockaddrInet4, tag: ""}]);
  13962. SockaddrInet6.init("syscall", [{prop: "Port", name: "Port", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "ZoneId", name: "ZoneId", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType$2, tag: ""}, {prop: "raw", name: "raw", embedded: false, exported: false, typ: RawSockaddrInet6, tag: ""}]);
  13963. SockaddrUnix.init("syscall", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "raw", name: "raw", embedded: false, exported: false, typ: RawSockaddrUnix, tag: ""}]);
  13964. Timespec.init("", [{prop: "Sec", name: "Sec", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Nsec", name: "Nsec", embedded: false, exported: true, typ: $Int64, tag: ""}]);
  13965. Stat_t.init("", [{prop: "Dev", name: "Dev", embedded: false, exported: true, typ: $Uint64, tag: ""}, {prop: "Ino", name: "Ino", embedded: false, exported: true, typ: $Uint64, tag: ""}, {prop: "Nlink", name: "Nlink", embedded: false, exported: true, typ: $Uint64, tag: ""}, {prop: "Mode", name: "Mode", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Uid", name: "Uid", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Gid", name: "Gid", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "X__pad0", name: "X__pad0", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Rdev", name: "Rdev", embedded: false, exported: true, typ: $Uint64, tag: ""}, {prop: "Size", name: "Size", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Blksize", name: "Blksize", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Blocks", name: "Blocks", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Atim", name: "Atim", embedded: false, exported: true, typ: Timespec, tag: ""}, {prop: "Mtim", name: "Mtim", embedded: false, exported: true, typ: Timespec, tag: ""}, {prop: "Ctim", name: "Ctim", embedded: false, exported: true, typ: Timespec, tag: ""}, {prop: "X__unused", name: "X__unused", embedded: false, exported: true, typ: arrayType$5, tag: ""}]);
  13966. RawSockaddrInet4.init("", [{prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Port", name: "Port", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType$9, tag: ""}, {prop: "Zero", name: "Zero", embedded: false, exported: true, typ: arrayType$1, tag: ""}]);
  13967. RawSockaddrInet6.init("", [{prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Port", name: "Port", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Flowinfo", name: "Flowinfo", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType$2, tag: ""}, {prop: "Scope_id", name: "Scope_id", embedded: false, exported: true, typ: $Uint32, tag: ""}]);
  13968. RawSockaddrUnix.init("", [{prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Path", name: "Path", embedded: false, exported: true, typ: arrayType$8, tag: ""}]);
  13969. RawSockaddrLinklayer.init("", [{prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Protocol", name: "Protocol", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Ifindex", name: "Ifindex", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Hatype", name: "Hatype", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Pkttype", name: "Pkttype", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Halen", name: "Halen", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType$1, tag: ""}]);
  13970. RawSockaddrNetlink.init("", [{prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Pad", name: "Pad", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Pid", name: "Pid", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Groups", name: "Groups", embedded: false, exported: true, typ: $Uint32, tag: ""}]);
  13971. RawSockaddr.init("", [{prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Data", name: "Data", embedded: false, exported: true, typ: arrayType$10, tag: ""}]);
  13972. RawSockaddrAny.init("", [{prop: "Addr", name: "Addr", embedded: false, exported: true, typ: RawSockaddr, tag: ""}, {prop: "Pad", name: "Pad", embedded: false, exported: true, typ: arrayType$11, tag: ""}]);
  13973. Linger.init("", [{prop: "Onoff", name: "Onoff", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Linger", name: "Linger", embedded: false, exported: true, typ: $Int32, tag: ""}]);
  13974. Iovec.init("", [{prop: "Base", name: "Base", embedded: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint64, tag: ""}]);
  13975. IPMreq.init("", [{prop: "Multiaddr", name: "Multiaddr", embedded: false, exported: true, typ: arrayType$9, tag: ""}, {prop: "Interface", name: "Interface", embedded: false, exported: true, typ: arrayType$9, tag: ""}]);
  13976. IPMreqn.init("", [{prop: "Multiaddr", name: "Multiaddr", embedded: false, exported: true, typ: arrayType$9, tag: ""}, {prop: "Address", name: "Address", embedded: false, exported: true, typ: arrayType$9, tag: ""}, {prop: "Ifindex", name: "Ifindex", embedded: false, exported: true, typ: $Int32, tag: ""}]);
  13977. IPv6Mreq.init("", [{prop: "Multiaddr", name: "Multiaddr", embedded: false, exported: true, typ: arrayType$2, tag: ""}, {prop: "Interface", name: "Interface", embedded: false, exported: true, typ: $Uint32, tag: ""}]);
  13978. Msghdr.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "Namelen", name: "Namelen", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Pad_cgo_0", name: "Pad_cgo_0", embedded: false, exported: true, typ: arrayType$9, tag: ""}, {prop: "Iov", name: "Iov", embedded: false, exported: true, typ: ptrType$20, tag: ""}, {prop: "Iovlen", name: "Iovlen", embedded: false, exported: true, typ: $Uint64, tag: ""}, {prop: "Control", name: "Control", embedded: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "Controllen", name: "Controllen", embedded: false, exported: true, typ: $Uint64, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Pad_cgo_1", name: "Pad_cgo_1", embedded: false, exported: true, typ: arrayType$9, tag: ""}]);
  13979. NlMsghdr.init("", [{prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Seq", name: "Seq", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Pid", name: "Pid", embedded: false, exported: true, typ: $Uint32, tag: ""}]);
  13980. RtGenmsg.init("", [{prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint8, tag: ""}]);
  13981. RtAttr.init("", [{prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: $Uint16, tag: ""}]);
  13982. IfInfomsg.init("", [{prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "X__ifi_pad", name: "X__ifi_pad", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Change", name: "Change", embedded: false, exported: true, typ: $Uint32, tag: ""}]);
  13983. IfAddrmsg.init("", [{prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Prefixlen", name: "Prefixlen", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Scope", name: "Scope", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: $Uint32, tag: ""}]);
  13984. $init = function() {
  13985. $pkg.$init = function() {};
  13986. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  13987. $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  13988. $r = race.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  13989. $r = runtime.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  13990. $r = sync.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  13991. lineBuffer = sliceType.nil;
  13992. syscallModule = null;
  13993. $pkg.ForkLock = new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, 0, 0);
  13994. $pkg.SocketDisableIPv6 = false;
  13995. ioSync = new $Int64(0, 0);
  13996. warningPrinted = false;
  13997. alreadyTriedToLoad = false;
  13998. minusOne = -1;
  13999. envs = runtime_envs();
  14000. $pkg.Stdin = 0;
  14001. $pkg.Stdout = 1;
  14002. $pkg.Stderr = 2;
  14003. errEAGAIN = new Errno(11);
  14004. errEINVAL = new Errno(22);
  14005. errENOENT = new Errno(2);
  14006. errors = $toNativeArray($kindString, ["", "operation not permitted", "no such file or directory", "no such process", "interrupted system call", "input/output error", "no such device or address", "argument list too long", "exec format error", "bad file descriptor", "no child processes", "resource temporarily unavailable", "cannot allocate memory", "permission denied", "bad address", "block device required", "device or resource busy", "file exists", "invalid cross-device link", "no such device", "not a directory", "is a directory", "invalid argument", "too many open files in system", "too many open files", "inappropriate ioctl for device", "text file busy", "file too large", "no space left on device", "illegal seek", "read-only file system", "too many links", "broken pipe", "numerical argument out of domain", "numerical result out of range", "resource deadlock avoided", "file name too long", "no locks available", "function not implemented", "directory not empty", "too many levels of symbolic links", "", "no message of desired type", "identifier removed", "channel number out of range", "level 2 not synchronized", "level 3 halted", "level 3 reset", "link number out of range", "protocol driver not attached", "no CSI structure available", "level 2 halted", "invalid exchange", "invalid request descriptor", "exchange full", "no anode", "invalid request code", "invalid slot", "", "bad font file format", "device not a stream", "no data available", "timer expired", "out of streams resources", "machine is not on the network", "package not installed", "object is remote", "link has been severed", "advertise error", "srmount error", "communication error on send", "protocol error", "multihop attempted", "RFS specific error", "bad message", "value too large for defined data type", "name not unique on network", "file descriptor in bad state", "remote address changed", "can not access a needed shared library", "accessing a corrupted shared library", ".lib section in a.out corrupted", "attempting to link in too many shared libraries", "cannot exec a shared library directly", "invalid or incomplete multibyte or wide character", "interrupted system call should be restarted", "streams pipe error", "too many users", "socket operation on non-socket", "destination address required", "message too long", "protocol wrong type for socket", "protocol not available", "protocol not supported", "socket type not supported", "operation not supported", "protocol family not supported", "address family not supported by protocol", "address already in use", "cannot assign requested address", "network is down", "network is unreachable", "network dropped connection on reset", "software caused connection abort", "connection reset by peer", "no buffer space available", "transport endpoint is already connected", "transport endpoint is not connected", "cannot send after transport endpoint shutdown", "too many references: cannot splice", "connection timed out", "connection refused", "host is down", "no route to host", "operation already in progress", "operation now in progress", "stale NFS file handle", "structure needs cleaning", "not a XENIX named type file", "no XENIX semaphores available", "is a named type file", "remote I/O error", "disk quota exceeded", "no medium found", "wrong medium type", "operation canceled", "required key not available", "key has expired", "key has been revoked", "key was rejected by service", "owner died", "state not recoverable", "operation not possible due to RF-kill"]);
  14007. mapper = new mmapper.ptr(new sync.Mutex.ptr(0, 0), {}, mmap, munmap);
  14008. init();
  14009. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  14010. };
  14011. $pkg.$init = $init;
  14012. return $pkg;
  14013. })();
  14014. $packages["github.com/gopherjs/gopherjs/nosync"] = (function() {
  14015. var $pkg = {}, $init, Mutex, Once, Pool, ptrType$1, funcType$1, ptrType$4, sliceType, ptrType$5, funcType$2;
  14016. Mutex = $pkg.Mutex = $newType(0, $kindStruct, "nosync.Mutex", true, "github.com/gopherjs/gopherjs/nosync", true, function(locked_) {
  14017. this.$val = this;
  14018. if (arguments.length === 0) {
  14019. this.locked = false;
  14020. return;
  14021. }
  14022. this.locked = locked_;
  14023. });
  14024. Once = $pkg.Once = $newType(0, $kindStruct, "nosync.Once", true, "github.com/gopherjs/gopherjs/nosync", true, function(doing_, done_) {
  14025. this.$val = this;
  14026. if (arguments.length === 0) {
  14027. this.doing = false;
  14028. this.done = false;
  14029. return;
  14030. }
  14031. this.doing = doing_;
  14032. this.done = done_;
  14033. });
  14034. Pool = $pkg.Pool = $newType(0, $kindStruct, "nosync.Pool", true, "github.com/gopherjs/gopherjs/nosync", true, function(store_, New_) {
  14035. this.$val = this;
  14036. if (arguments.length === 0) {
  14037. this.store = sliceType.nil;
  14038. this.New = $throwNilPointerError;
  14039. return;
  14040. }
  14041. this.store = store_;
  14042. this.New = New_;
  14043. });
  14044. ptrType$1 = $ptrType(Mutex);
  14045. funcType$1 = $funcType([], [], false);
  14046. ptrType$4 = $ptrType(Once);
  14047. sliceType = $sliceType($emptyInterface);
  14048. ptrType$5 = $ptrType(Pool);
  14049. funcType$2 = $funcType([], [$emptyInterface], false);
  14050. Mutex.ptr.prototype.Lock = function() {
  14051. var m;
  14052. m = this;
  14053. if (m.locked) {
  14054. $panic(new $String("nosync: mutex is already locked"));
  14055. }
  14056. m.locked = true;
  14057. };
  14058. Mutex.prototype.Lock = function() { return this.$val.Lock(); };
  14059. Mutex.ptr.prototype.Unlock = function() {
  14060. var m;
  14061. m = this;
  14062. if (!m.locked) {
  14063. $panic(new $String("nosync: unlock of unlocked mutex"));
  14064. }
  14065. m.locked = false;
  14066. };
  14067. Mutex.prototype.Unlock = function() { return this.$val.Unlock(); };
  14068. Once.ptr.prototype.Do = function(f) {
  14069. var f, o, $s, $deferred, $r;
  14070. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; o = $f.o; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  14071. o = [o];
  14072. o[0] = this;
  14073. if (o[0].done) {
  14074. $s = -1; return;
  14075. }
  14076. if (o[0].doing) {
  14077. $panic(new $String("nosync: Do called within f"));
  14078. }
  14079. o[0].doing = true;
  14080. $deferred.push([(function(o) { return function() {
  14081. o[0].doing = false;
  14082. o[0].done = true;
  14083. }; })(o), []]);
  14084. $r = f(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  14085. $s = -1; return;
  14086. /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: Once.ptr.prototype.Do }; } $f.f = f; $f.o = o; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  14087. };
  14088. Once.prototype.Do = function(f) { return this.$val.Do(f); };
  14089. Pool.ptr.prototype.Get = function() {
  14090. var _r, p, x, x$1, x$2, $s, $r;
  14091. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; p = $f.p; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  14092. p = this;
  14093. /* */ if (p.store.$length === 0) { $s = 1; continue; }
  14094. /* */ $s = 2; continue;
  14095. /* if (p.store.$length === 0) { */ case 1:
  14096. /* */ if (!(p.New === $throwNilPointerError)) { $s = 3; continue; }
  14097. /* */ $s = 4; continue;
  14098. /* if (!(p.New === $throwNilPointerError)) { */ case 3:
  14099. _r = p.New(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  14100. $s = -1; return _r;
  14101. /* } */ case 4:
  14102. $s = -1; return $ifaceNil;
  14103. /* } */ case 2:
  14104. x$2 = (x = p.store, x$1 = p.store.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]));
  14105. p.store = $subslice(p.store, 0, (p.store.$length - 1 >> 0));
  14106. $s = -1; return x$2;
  14107. /* */ } return; } if ($f === undefined) { $f = { $blk: Pool.ptr.prototype.Get }; } $f._r = _r; $f.p = p; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f;
  14108. };
  14109. Pool.prototype.Get = function() { return this.$val.Get(); };
  14110. Pool.ptr.prototype.Put = function(x) {
  14111. var p, x;
  14112. p = this;
  14113. if ($interfaceIsEqual(x, $ifaceNil)) {
  14114. return;
  14115. }
  14116. p.store = $append(p.store, x);
  14117. };
  14118. Pool.prototype.Put = function(x) { return this.$val.Put(x); };
  14119. ptrType$1.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}];
  14120. ptrType$4.methods = [{prop: "Do", name: "Do", pkg: "", typ: $funcType([funcType$1], [], false)}];
  14121. ptrType$5.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Put", name: "Put", pkg: "", typ: $funcType([$emptyInterface], [], false)}];
  14122. Mutex.init("github.com/gopherjs/gopherjs/nosync", [{prop: "locked", name: "locked", embedded: false, exported: false, typ: $Bool, tag: ""}]);
  14123. Once.init("github.com/gopherjs/gopherjs/nosync", [{prop: "doing", name: "doing", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "done", name: "done", embedded: false, exported: false, typ: $Bool, tag: ""}]);
  14124. Pool.init("github.com/gopherjs/gopherjs/nosync", [{prop: "store", name: "store", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "New", name: "New", embedded: false, exported: true, typ: funcType$2, tag: ""}]);
  14125. $init = function() {
  14126. $pkg.$init = function() {};
  14127. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  14128. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  14129. };
  14130. $pkg.$init = $init;
  14131. return $pkg;
  14132. })();
  14133. $packages["time"] = (function() {
  14134. var $pkg = {}, $init, errors, js, nosync, runtime, syscall, runtimeTimer, ParseError, Timer, Ticker, Time, Month, Weekday, Duration, Location, zone, zoneTrans, sliceType, sliceType$1, ptrType, sliceType$2, arrayType, sliceType$3, arrayType$1, arrayType$2, ptrType$2, chanType, arrayType$3, funcType$1, ptrType$3, ptrType$4, ptrType$5, chanType$1, ptrType$6, ptrType$7, zoneSources, std0x, longDayNames, shortDayNames, shortMonthNames, longMonthNames, atoiError, errBad, errLeadingInt, months, days, daysBefore, startNano, utcLoc, utcLoc$24ptr, localLoc, localLoc$24ptr, localOnce, errLocation, badData, x, init, initLocal, runtimeNano, now, startTimer, stopTimer, indexByte, startsWithLowerCase, nextStdChunk, match, lookup, appendInt, atoi, formatNano, quote, isDigit, getnum, cutspace, skip, Parse, parse, parseTimeZone, parseGMT, parseSignedOffset, parseNanoseconds, leadingInt, when, NewTimer, sendTime, NewTicker, absWeekday, absClock, fmtFrac, fmtInt, lessThanHalf, Until, absDate, daysIn, Now, unixTime, Unix, isLeap, norm, Date, div, FixedZone;
  14135. errors = $packages["errors"];
  14136. js = $packages["github.com/gopherjs/gopherjs/js"];
  14137. nosync = $packages["github.com/gopherjs/gopherjs/nosync"];
  14138. runtime = $packages["runtime"];
  14139. syscall = $packages["syscall"];
  14140. runtimeTimer = $pkg.runtimeTimer = $newType(0, $kindStruct, "time.runtimeTimer", true, "time", false, function(i_, when_, period_, f_, arg_, timeout_, active_) {
  14141. this.$val = this;
  14142. if (arguments.length === 0) {
  14143. this.i = 0;
  14144. this.when = new $Int64(0, 0);
  14145. this.period = new $Int64(0, 0);
  14146. this.f = $throwNilPointerError;
  14147. this.arg = $ifaceNil;
  14148. this.timeout = null;
  14149. this.active = false;
  14150. return;
  14151. }
  14152. this.i = i_;
  14153. this.when = when_;
  14154. this.period = period_;
  14155. this.f = f_;
  14156. this.arg = arg_;
  14157. this.timeout = timeout_;
  14158. this.active = active_;
  14159. });
  14160. ParseError = $pkg.ParseError = $newType(0, $kindStruct, "time.ParseError", true, "time", true, function(Layout_, Value_, LayoutElem_, ValueElem_, Message_) {
  14161. this.$val = this;
  14162. if (arguments.length === 0) {
  14163. this.Layout = "";
  14164. this.Value = "";
  14165. this.LayoutElem = "";
  14166. this.ValueElem = "";
  14167. this.Message = "";
  14168. return;
  14169. }
  14170. this.Layout = Layout_;
  14171. this.Value = Value_;
  14172. this.LayoutElem = LayoutElem_;
  14173. this.ValueElem = ValueElem_;
  14174. this.Message = Message_;
  14175. });
  14176. Timer = $pkg.Timer = $newType(0, $kindStruct, "time.Timer", true, "time", true, function(C_, r_) {
  14177. this.$val = this;
  14178. if (arguments.length === 0) {
  14179. this.C = $chanNil;
  14180. this.r = new runtimeTimer.ptr(0, new $Int64(0, 0), new $Int64(0, 0), $throwNilPointerError, $ifaceNil, null, false);
  14181. return;
  14182. }
  14183. this.C = C_;
  14184. this.r = r_;
  14185. });
  14186. Ticker = $pkg.Ticker = $newType(0, $kindStruct, "time.Ticker", true, "time", true, function(C_, r_) {
  14187. this.$val = this;
  14188. if (arguments.length === 0) {
  14189. this.C = $chanNil;
  14190. this.r = new runtimeTimer.ptr(0, new $Int64(0, 0), new $Int64(0, 0), $throwNilPointerError, $ifaceNil, null, false);
  14191. return;
  14192. }
  14193. this.C = C_;
  14194. this.r = r_;
  14195. });
  14196. Time = $pkg.Time = $newType(0, $kindStruct, "time.Time", true, "time", true, function(wall_, ext_, loc_) {
  14197. this.$val = this;
  14198. if (arguments.length === 0) {
  14199. this.wall = new $Uint64(0, 0);
  14200. this.ext = new $Int64(0, 0);
  14201. this.loc = ptrType$2.nil;
  14202. return;
  14203. }
  14204. this.wall = wall_;
  14205. this.ext = ext_;
  14206. this.loc = loc_;
  14207. });
  14208. Month = $pkg.Month = $newType(4, $kindInt, "time.Month", true, "time", true, null);
  14209. Weekday = $pkg.Weekday = $newType(4, $kindInt, "time.Weekday", true, "time", true, null);
  14210. Duration = $pkg.Duration = $newType(8, $kindInt64, "time.Duration", true, "time", true, null);
  14211. Location = $pkg.Location = $newType(0, $kindStruct, "time.Location", true, "time", true, function(name_, zone_, tx_, cacheStart_, cacheEnd_, cacheZone_) {
  14212. this.$val = this;
  14213. if (arguments.length === 0) {
  14214. this.name = "";
  14215. this.zone = sliceType.nil;
  14216. this.tx = sliceType$1.nil;
  14217. this.cacheStart = new $Int64(0, 0);
  14218. this.cacheEnd = new $Int64(0, 0);
  14219. this.cacheZone = ptrType.nil;
  14220. return;
  14221. }
  14222. this.name = name_;
  14223. this.zone = zone_;
  14224. this.tx = tx_;
  14225. this.cacheStart = cacheStart_;
  14226. this.cacheEnd = cacheEnd_;
  14227. this.cacheZone = cacheZone_;
  14228. });
  14229. zone = $pkg.zone = $newType(0, $kindStruct, "time.zone", true, "time", false, function(name_, offset_, isDST_) {
  14230. this.$val = this;
  14231. if (arguments.length === 0) {
  14232. this.name = "";
  14233. this.offset = 0;
  14234. this.isDST = false;
  14235. return;
  14236. }
  14237. this.name = name_;
  14238. this.offset = offset_;
  14239. this.isDST = isDST_;
  14240. });
  14241. zoneTrans = $pkg.zoneTrans = $newType(0, $kindStruct, "time.zoneTrans", true, "time", false, function(when_, index_, isstd_, isutc_) {
  14242. this.$val = this;
  14243. if (arguments.length === 0) {
  14244. this.when = new $Int64(0, 0);
  14245. this.index = 0;
  14246. this.isstd = false;
  14247. this.isutc = false;
  14248. return;
  14249. }
  14250. this.when = when_;
  14251. this.index = index_;
  14252. this.isstd = isstd_;
  14253. this.isutc = isutc_;
  14254. });
  14255. sliceType = $sliceType(zone);
  14256. sliceType$1 = $sliceType(zoneTrans);
  14257. ptrType = $ptrType(zone);
  14258. sliceType$2 = $sliceType($String);
  14259. arrayType = $arrayType($Uint8, 20);
  14260. sliceType$3 = $sliceType($Uint8);
  14261. arrayType$1 = $arrayType($Uint8, 9);
  14262. arrayType$2 = $arrayType($Uint8, 64);
  14263. ptrType$2 = $ptrType(Location);
  14264. chanType = $chanType(Time, false, false);
  14265. arrayType$3 = $arrayType($Uint8, 32);
  14266. funcType$1 = $funcType([$emptyInterface, $Uintptr], [], false);
  14267. ptrType$3 = $ptrType(js.Object);
  14268. ptrType$4 = $ptrType(ParseError);
  14269. ptrType$5 = $ptrType(Timer);
  14270. chanType$1 = $chanType(Time, false, true);
  14271. ptrType$6 = $ptrType(Ticker);
  14272. ptrType$7 = $ptrType(Time);
  14273. init = function() {
  14274. $unused(Unix(new $Int64(0, 0), new $Int64(0, 0)));
  14275. };
  14276. initLocal = function() {
  14277. var d, i, j, s;
  14278. d = new ($global.Date)();
  14279. s = $internalize(d, $String);
  14280. i = indexByte(s, 40);
  14281. j = indexByte(s, 41);
  14282. if ((i === -1) || (j === -1)) {
  14283. localLoc.name = "UTC";
  14284. return;
  14285. }
  14286. localLoc.name = $substring(s, (i + 1 >> 0), j);
  14287. localLoc.zone = new sliceType([new zone.ptr(localLoc.name, $imul(($parseInt(d.getTimezoneOffset()) >> 0), -60), false)]);
  14288. };
  14289. runtimeNano = function() {
  14290. return $mul64($internalize(new ($global.Date)().getTime(), $Int64), new $Int64(0, 1000000));
  14291. };
  14292. now = function() {
  14293. var _tmp, _tmp$1, _tmp$2, mono, n, nsec, sec, x$1;
  14294. sec = new $Int64(0, 0);
  14295. nsec = 0;
  14296. mono = new $Int64(0, 0);
  14297. n = runtimeNano();
  14298. _tmp = $div64(n, new $Int64(0, 1000000000), false);
  14299. _tmp$1 = (((x$1 = $div64(n, new $Int64(0, 1000000000), true), x$1.$low + ((x$1.$high >> 31) * 4294967296)) >> 0));
  14300. _tmp$2 = n;
  14301. sec = _tmp;
  14302. nsec = _tmp$1;
  14303. mono = _tmp$2;
  14304. return [sec, nsec, mono];
  14305. };
  14306. startTimer = function(t) {
  14307. var diff, t, x$1, x$2;
  14308. t.active = true;
  14309. diff = $div64(((x$1 = t.when, x$2 = runtimeNano(), new $Int64(x$1.$high - x$2.$high, x$1.$low - x$2.$low))), new $Int64(0, 1000000), false);
  14310. if ((diff.$high > 0 || (diff.$high === 0 && diff.$low > 2147483647))) {
  14311. return;
  14312. }
  14313. if ((diff.$high < 0 || (diff.$high === 0 && diff.$low < 0))) {
  14314. diff = new $Int64(0, 0);
  14315. }
  14316. t.timeout = $setTimeout((function() {
  14317. var x$3, x$4, x$5;
  14318. t.active = false;
  14319. if (!((x$3 = t.period, (x$3.$high === 0 && x$3.$low === 0)))) {
  14320. t.when = (x$4 = t.when, x$5 = t.period, new $Int64(x$4.$high + x$5.$high, x$4.$low + x$5.$low));
  14321. startTimer(t);
  14322. }
  14323. $go(t.f, [t.arg, 0]);
  14324. }), $externalize(new $Int64(diff.$high + 0, diff.$low + 1), $Int64));
  14325. };
  14326. stopTimer = function(t) {
  14327. var t, wasActive;
  14328. $global.clearTimeout(t.timeout);
  14329. wasActive = t.active;
  14330. t.active = false;
  14331. return wasActive;
  14332. };
  14333. indexByte = function(s, c) {
  14334. var c, s;
  14335. return $parseInt(s.indexOf($global.String.fromCharCode(c))) >> 0;
  14336. };
  14337. startsWithLowerCase = function(str) {
  14338. var c, str;
  14339. if (str.length === 0) {
  14340. return false;
  14341. }
  14342. c = str.charCodeAt(0);
  14343. return 97 <= c && c <= 122;
  14344. };
  14345. nextStdChunk = function(layout) {
  14346. var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$5, _tmp$50, _tmp$51, _tmp$52, _tmp$53, _tmp$54, _tmp$55, _tmp$56, _tmp$57, _tmp$58, _tmp$59, _tmp$6, _tmp$60, _tmp$61, _tmp$62, _tmp$63, _tmp$64, _tmp$65, _tmp$66, _tmp$67, _tmp$68, _tmp$69, _tmp$7, _tmp$70, _tmp$71, _tmp$72, _tmp$73, _tmp$74, _tmp$75, _tmp$76, _tmp$77, _tmp$78, _tmp$79, _tmp$8, _tmp$80, _tmp$81, _tmp$82, _tmp$83, _tmp$84, _tmp$85, _tmp$86, _tmp$9, c, ch, i, j, layout, prefix, std, std$1, suffix, x$1;
  14347. prefix = "";
  14348. std = 0;
  14349. suffix = "";
  14350. i = 0;
  14351. while (true) {
  14352. if (!(i < layout.length)) { break; }
  14353. c = ((layout.charCodeAt(i) >> 0));
  14354. _1 = c;
  14355. if (_1 === (74)) {
  14356. if (layout.length >= (i + 3 >> 0) && $substring(layout, i, (i + 3 >> 0)) === "Jan") {
  14357. if (layout.length >= (i + 7 >> 0) && $substring(layout, i, (i + 7 >> 0)) === "January") {
  14358. _tmp = $substring(layout, 0, i);
  14359. _tmp$1 = 257;
  14360. _tmp$2 = $substring(layout, (i + 7 >> 0));
  14361. prefix = _tmp;
  14362. std = _tmp$1;
  14363. suffix = _tmp$2;
  14364. return [prefix, std, suffix];
  14365. }
  14366. if (!startsWithLowerCase($substring(layout, (i + 3 >> 0)))) {
  14367. _tmp$3 = $substring(layout, 0, i);
  14368. _tmp$4 = 258;
  14369. _tmp$5 = $substring(layout, (i + 3 >> 0));
  14370. prefix = _tmp$3;
  14371. std = _tmp$4;
  14372. suffix = _tmp$5;
  14373. return [prefix, std, suffix];
  14374. }
  14375. }
  14376. } else if (_1 === (77)) {
  14377. if (layout.length >= (i + 3 >> 0)) {
  14378. if ($substring(layout, i, (i + 3 >> 0)) === "Mon") {
  14379. if (layout.length >= (i + 6 >> 0) && $substring(layout, i, (i + 6 >> 0)) === "Monday") {
  14380. _tmp$6 = $substring(layout, 0, i);
  14381. _tmp$7 = 261;
  14382. _tmp$8 = $substring(layout, (i + 6 >> 0));
  14383. prefix = _tmp$6;
  14384. std = _tmp$7;
  14385. suffix = _tmp$8;
  14386. return [prefix, std, suffix];
  14387. }
  14388. if (!startsWithLowerCase($substring(layout, (i + 3 >> 0)))) {
  14389. _tmp$9 = $substring(layout, 0, i);
  14390. _tmp$10 = 262;
  14391. _tmp$11 = $substring(layout, (i + 3 >> 0));
  14392. prefix = _tmp$9;
  14393. std = _tmp$10;
  14394. suffix = _tmp$11;
  14395. return [prefix, std, suffix];
  14396. }
  14397. }
  14398. if ($substring(layout, i, (i + 3 >> 0)) === "MST") {
  14399. _tmp$12 = $substring(layout, 0, i);
  14400. _tmp$13 = 21;
  14401. _tmp$14 = $substring(layout, (i + 3 >> 0));
  14402. prefix = _tmp$12;
  14403. std = _tmp$13;
  14404. suffix = _tmp$14;
  14405. return [prefix, std, suffix];
  14406. }
  14407. }
  14408. } else if (_1 === (48)) {
  14409. if (layout.length >= (i + 2 >> 0) && 49 <= layout.charCodeAt((i + 1 >> 0)) && layout.charCodeAt((i + 1 >> 0)) <= 54) {
  14410. _tmp$15 = $substring(layout, 0, i);
  14411. _tmp$16 = (x$1 = layout.charCodeAt((i + 1 >> 0)) - 49 << 24 >>> 24, ((x$1 < 0 || x$1 >= std0x.length) ? ($throwRuntimeError("index out of range"), undefined) : std0x[x$1]));
  14412. _tmp$17 = $substring(layout, (i + 2 >> 0));
  14413. prefix = _tmp$15;
  14414. std = _tmp$16;
  14415. suffix = _tmp$17;
  14416. return [prefix, std, suffix];
  14417. }
  14418. } else if (_1 === (49)) {
  14419. if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 53)) {
  14420. _tmp$18 = $substring(layout, 0, i);
  14421. _tmp$19 = 522;
  14422. _tmp$20 = $substring(layout, (i + 2 >> 0));
  14423. prefix = _tmp$18;
  14424. std = _tmp$19;
  14425. suffix = _tmp$20;
  14426. return [prefix, std, suffix];
  14427. }
  14428. _tmp$21 = $substring(layout, 0, i);
  14429. _tmp$22 = 259;
  14430. _tmp$23 = $substring(layout, (i + 1 >> 0));
  14431. prefix = _tmp$21;
  14432. std = _tmp$22;
  14433. suffix = _tmp$23;
  14434. return [prefix, std, suffix];
  14435. } else if (_1 === (50)) {
  14436. if (layout.length >= (i + 4 >> 0) && $substring(layout, i, (i + 4 >> 0)) === "2006") {
  14437. _tmp$24 = $substring(layout, 0, i);
  14438. _tmp$25 = 273;
  14439. _tmp$26 = $substring(layout, (i + 4 >> 0));
  14440. prefix = _tmp$24;
  14441. std = _tmp$25;
  14442. suffix = _tmp$26;
  14443. return [prefix, std, suffix];
  14444. }
  14445. _tmp$27 = $substring(layout, 0, i);
  14446. _tmp$28 = 263;
  14447. _tmp$29 = $substring(layout, (i + 1 >> 0));
  14448. prefix = _tmp$27;
  14449. std = _tmp$28;
  14450. suffix = _tmp$29;
  14451. return [prefix, std, suffix];
  14452. } else if (_1 === (95)) {
  14453. if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 50)) {
  14454. if (layout.length >= (i + 5 >> 0) && $substring(layout, (i + 1 >> 0), (i + 5 >> 0)) === "2006") {
  14455. _tmp$30 = $substring(layout, 0, (i + 1 >> 0));
  14456. _tmp$31 = 273;
  14457. _tmp$32 = $substring(layout, (i + 5 >> 0));
  14458. prefix = _tmp$30;
  14459. std = _tmp$31;
  14460. suffix = _tmp$32;
  14461. return [prefix, std, suffix];
  14462. }
  14463. _tmp$33 = $substring(layout, 0, i);
  14464. _tmp$34 = 264;
  14465. _tmp$35 = $substring(layout, (i + 2 >> 0));
  14466. prefix = _tmp$33;
  14467. std = _tmp$34;
  14468. suffix = _tmp$35;
  14469. return [prefix, std, suffix];
  14470. }
  14471. } else if (_1 === (51)) {
  14472. _tmp$36 = $substring(layout, 0, i);
  14473. _tmp$37 = 523;
  14474. _tmp$38 = $substring(layout, (i + 1 >> 0));
  14475. prefix = _tmp$36;
  14476. std = _tmp$37;
  14477. suffix = _tmp$38;
  14478. return [prefix, std, suffix];
  14479. } else if (_1 === (52)) {
  14480. _tmp$39 = $substring(layout, 0, i);
  14481. _tmp$40 = 525;
  14482. _tmp$41 = $substring(layout, (i + 1 >> 0));
  14483. prefix = _tmp$39;
  14484. std = _tmp$40;
  14485. suffix = _tmp$41;
  14486. return [prefix, std, suffix];
  14487. } else if (_1 === (53)) {
  14488. _tmp$42 = $substring(layout, 0, i);
  14489. _tmp$43 = 527;
  14490. _tmp$44 = $substring(layout, (i + 1 >> 0));
  14491. prefix = _tmp$42;
  14492. std = _tmp$43;
  14493. suffix = _tmp$44;
  14494. return [prefix, std, suffix];
  14495. } else if (_1 === (80)) {
  14496. if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 77)) {
  14497. _tmp$45 = $substring(layout, 0, i);
  14498. _tmp$46 = 531;
  14499. _tmp$47 = $substring(layout, (i + 2 >> 0));
  14500. prefix = _tmp$45;
  14501. std = _tmp$46;
  14502. suffix = _tmp$47;
  14503. return [prefix, std, suffix];
  14504. }
  14505. } else if (_1 === (112)) {
  14506. if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 109)) {
  14507. _tmp$48 = $substring(layout, 0, i);
  14508. _tmp$49 = 532;
  14509. _tmp$50 = $substring(layout, (i + 2 >> 0));
  14510. prefix = _tmp$48;
  14511. std = _tmp$49;
  14512. suffix = _tmp$50;
  14513. return [prefix, std, suffix];
  14514. }
  14515. } else if (_1 === (45)) {
  14516. if (layout.length >= (i + 7 >> 0) && $substring(layout, i, (i + 7 >> 0)) === "-070000") {
  14517. _tmp$51 = $substring(layout, 0, i);
  14518. _tmp$52 = 28;
  14519. _tmp$53 = $substring(layout, (i + 7 >> 0));
  14520. prefix = _tmp$51;
  14521. std = _tmp$52;
  14522. suffix = _tmp$53;
  14523. return [prefix, std, suffix];
  14524. }
  14525. if (layout.length >= (i + 9 >> 0) && $substring(layout, i, (i + 9 >> 0)) === "-07:00:00") {
  14526. _tmp$54 = $substring(layout, 0, i);
  14527. _tmp$55 = 31;
  14528. _tmp$56 = $substring(layout, (i + 9 >> 0));
  14529. prefix = _tmp$54;
  14530. std = _tmp$55;
  14531. suffix = _tmp$56;
  14532. return [prefix, std, suffix];
  14533. }
  14534. if (layout.length >= (i + 5 >> 0) && $substring(layout, i, (i + 5 >> 0)) === "-0700") {
  14535. _tmp$57 = $substring(layout, 0, i);
  14536. _tmp$58 = 27;
  14537. _tmp$59 = $substring(layout, (i + 5 >> 0));
  14538. prefix = _tmp$57;
  14539. std = _tmp$58;
  14540. suffix = _tmp$59;
  14541. return [prefix, std, suffix];
  14542. }
  14543. if (layout.length >= (i + 6 >> 0) && $substring(layout, i, (i + 6 >> 0)) === "-07:00") {
  14544. _tmp$60 = $substring(layout, 0, i);
  14545. _tmp$61 = 30;
  14546. _tmp$62 = $substring(layout, (i + 6 >> 0));
  14547. prefix = _tmp$60;
  14548. std = _tmp$61;
  14549. suffix = _tmp$62;
  14550. return [prefix, std, suffix];
  14551. }
  14552. if (layout.length >= (i + 3 >> 0) && $substring(layout, i, (i + 3 >> 0)) === "-07") {
  14553. _tmp$63 = $substring(layout, 0, i);
  14554. _tmp$64 = 29;
  14555. _tmp$65 = $substring(layout, (i + 3 >> 0));
  14556. prefix = _tmp$63;
  14557. std = _tmp$64;
  14558. suffix = _tmp$65;
  14559. return [prefix, std, suffix];
  14560. }
  14561. } else if (_1 === (90)) {
  14562. if (layout.length >= (i + 7 >> 0) && $substring(layout, i, (i + 7 >> 0)) === "Z070000") {
  14563. _tmp$66 = $substring(layout, 0, i);
  14564. _tmp$67 = 23;
  14565. _tmp$68 = $substring(layout, (i + 7 >> 0));
  14566. prefix = _tmp$66;
  14567. std = _tmp$67;
  14568. suffix = _tmp$68;
  14569. return [prefix, std, suffix];
  14570. }
  14571. if (layout.length >= (i + 9 >> 0) && $substring(layout, i, (i + 9 >> 0)) === "Z07:00:00") {
  14572. _tmp$69 = $substring(layout, 0, i);
  14573. _tmp$70 = 26;
  14574. _tmp$71 = $substring(layout, (i + 9 >> 0));
  14575. prefix = _tmp$69;
  14576. std = _tmp$70;
  14577. suffix = _tmp$71;
  14578. return [prefix, std, suffix];
  14579. }
  14580. if (layout.length >= (i + 5 >> 0) && $substring(layout, i, (i + 5 >> 0)) === "Z0700") {
  14581. _tmp$72 = $substring(layout, 0, i);
  14582. _tmp$73 = 22;
  14583. _tmp$74 = $substring(layout, (i + 5 >> 0));
  14584. prefix = _tmp$72;
  14585. std = _tmp$73;
  14586. suffix = _tmp$74;
  14587. return [prefix, std, suffix];
  14588. }
  14589. if (layout.length >= (i + 6 >> 0) && $substring(layout, i, (i + 6 >> 0)) === "Z07:00") {
  14590. _tmp$75 = $substring(layout, 0, i);
  14591. _tmp$76 = 25;
  14592. _tmp$77 = $substring(layout, (i + 6 >> 0));
  14593. prefix = _tmp$75;
  14594. std = _tmp$76;
  14595. suffix = _tmp$77;
  14596. return [prefix, std, suffix];
  14597. }
  14598. if (layout.length >= (i + 3 >> 0) && $substring(layout, i, (i + 3 >> 0)) === "Z07") {
  14599. _tmp$78 = $substring(layout, 0, i);
  14600. _tmp$79 = 24;
  14601. _tmp$80 = $substring(layout, (i + 3 >> 0));
  14602. prefix = _tmp$78;
  14603. std = _tmp$79;
  14604. suffix = _tmp$80;
  14605. return [prefix, std, suffix];
  14606. }
  14607. } else if (_1 === (46)) {
  14608. if ((i + 1 >> 0) < layout.length && ((layout.charCodeAt((i + 1 >> 0)) === 48) || (layout.charCodeAt((i + 1 >> 0)) === 57))) {
  14609. ch = layout.charCodeAt((i + 1 >> 0));
  14610. j = i + 1 >> 0;
  14611. while (true) {
  14612. if (!(j < layout.length && (layout.charCodeAt(j) === ch))) { break; }
  14613. j = j + (1) >> 0;
  14614. }
  14615. if (!isDigit(layout, j)) {
  14616. std$1 = 32;
  14617. if (layout.charCodeAt((i + 1 >> 0)) === 57) {
  14618. std$1 = 33;
  14619. }
  14620. std$1 = std$1 | ((((j - ((i + 1 >> 0)) >> 0)) << 16 >> 0));
  14621. _tmp$81 = $substring(layout, 0, i);
  14622. _tmp$82 = std$1;
  14623. _tmp$83 = $substring(layout, j);
  14624. prefix = _tmp$81;
  14625. std = _tmp$82;
  14626. suffix = _tmp$83;
  14627. return [prefix, std, suffix];
  14628. }
  14629. }
  14630. }
  14631. i = i + (1) >> 0;
  14632. }
  14633. _tmp$84 = layout;
  14634. _tmp$85 = 0;
  14635. _tmp$86 = "";
  14636. prefix = _tmp$84;
  14637. std = _tmp$85;
  14638. suffix = _tmp$86;
  14639. return [prefix, std, suffix];
  14640. };
  14641. match = function(s1, s2) {
  14642. var c1, c2, i, s1, s2;
  14643. i = 0;
  14644. while (true) {
  14645. if (!(i < s1.length)) { break; }
  14646. c1 = s1.charCodeAt(i);
  14647. c2 = s2.charCodeAt(i);
  14648. if (!((c1 === c2))) {
  14649. c1 = (c1 | (32)) >>> 0;
  14650. c2 = (c2 | (32)) >>> 0;
  14651. if (!((c1 === c2)) || c1 < 97 || c1 > 122) {
  14652. return false;
  14653. }
  14654. }
  14655. i = i + (1) >> 0;
  14656. }
  14657. return true;
  14658. };
  14659. lookup = function(tab, val) {
  14660. var _i, _ref, i, tab, v, val;
  14661. _ref = tab;
  14662. _i = 0;
  14663. while (true) {
  14664. if (!(_i < _ref.$length)) { break; }
  14665. i = _i;
  14666. v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  14667. if (val.length >= v.length && match($substring(val, 0, v.length), v)) {
  14668. return [i, $substring(val, v.length), $ifaceNil];
  14669. }
  14670. _i++;
  14671. }
  14672. return [-1, val, errBad];
  14673. };
  14674. appendInt = function(b, x$1, width) {
  14675. var _q, b, buf, i, q, u, w, width, x$1;
  14676. u = ((x$1 >>> 0));
  14677. if (x$1 < 0) {
  14678. b = $append(b, 45);
  14679. u = ((-x$1 >>> 0));
  14680. }
  14681. buf = arrayType.zero();
  14682. i = 20;
  14683. while (true) {
  14684. if (!(u >= 10)) { break; }
  14685. i = i - (1) >> 0;
  14686. q = (_q = u / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"));
  14687. ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = ((((48 + u >>> 0) - (q * 10 >>> 0) >>> 0) << 24 >>> 24)));
  14688. u = q;
  14689. }
  14690. i = i - (1) >> 0;
  14691. ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = (((48 + u >>> 0) << 24 >>> 24)));
  14692. w = 20 - i >> 0;
  14693. while (true) {
  14694. if (!(w < width)) { break; }
  14695. b = $append(b, 48);
  14696. w = w + (1) >> 0;
  14697. }
  14698. return $appendSlice(b, $subslice(new sliceType$3(buf), i));
  14699. };
  14700. atoi = function(s) {
  14701. var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, neg, q, rem, s, x$1;
  14702. x$1 = 0;
  14703. err = $ifaceNil;
  14704. neg = false;
  14705. if (!(s === "") && ((s.charCodeAt(0) === 45) || (s.charCodeAt(0) === 43))) {
  14706. neg = s.charCodeAt(0) === 45;
  14707. s = $substring(s, 1);
  14708. }
  14709. _tuple = leadingInt(s);
  14710. q = _tuple[0];
  14711. rem = _tuple[1];
  14712. err = _tuple[2];
  14713. x$1 = (((q.$low + ((q.$high >> 31) * 4294967296)) >> 0));
  14714. if (!($interfaceIsEqual(err, $ifaceNil)) || !(rem === "")) {
  14715. _tmp = 0;
  14716. _tmp$1 = atoiError;
  14717. x$1 = _tmp;
  14718. err = _tmp$1;
  14719. return [x$1, err];
  14720. }
  14721. if (neg) {
  14722. x$1 = -x$1;
  14723. }
  14724. _tmp$2 = x$1;
  14725. _tmp$3 = $ifaceNil;
  14726. x$1 = _tmp$2;
  14727. err = _tmp$3;
  14728. return [x$1, err];
  14729. };
  14730. formatNano = function(b, nanosec, n, trim) {
  14731. var _q, _r, b, buf, n, nanosec, start, trim, u, x$1;
  14732. u = nanosec;
  14733. buf = arrayType$1.zero();
  14734. start = 9;
  14735. while (true) {
  14736. if (!(start > 0)) { break; }
  14737. start = start - (1) >> 0;
  14738. ((start < 0 || start >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[start] = ((((_r = u % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) + 48 >>> 0) << 24 >>> 24)));
  14739. u = (_q = u / (10), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"));
  14740. }
  14741. if (n > 9) {
  14742. n = 9;
  14743. }
  14744. if (trim) {
  14745. while (true) {
  14746. if (!(n > 0 && ((x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[x$1])) === 48))) { break; }
  14747. n = n - (1) >> 0;
  14748. }
  14749. if (n === 0) {
  14750. return b;
  14751. }
  14752. }
  14753. b = $append(b, 46);
  14754. return $appendSlice(b, $subslice(new sliceType$3(buf), 0, n));
  14755. };
  14756. Time.ptr.prototype.String = function() {
  14757. var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, buf, m0, m1, m2, s, sign, t, wid, x$1, x$2, x$3, x$4, $s, $r;
  14758. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; buf = $f.buf; m0 = $f.m0; m1 = $f.m1; m2 = $f.m2; s = $f.s; sign = $f.sign; t = $f.t; wid = $f.wid; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  14759. t = this;
  14760. _r = $clone(t, Time).Format("2006-01-02 15:04:05.999999999 -0700 MST"); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  14761. s = _r;
  14762. if (!((x$1 = (x$2 = t.wall, new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) {
  14763. m2 = ((x$3 = t.ext, new $Uint64(x$3.$high, x$3.$low)));
  14764. sign = 43;
  14765. if ((x$4 = t.ext, (x$4.$high < 0 || (x$4.$high === 0 && x$4.$low < 0)))) {
  14766. sign = 45;
  14767. m2 = new $Uint64(-m2.$high, -m2.$low);
  14768. }
  14769. _tmp = $div64(m2, new $Uint64(0, 1000000000), false);
  14770. _tmp$1 = $div64(m2, new $Uint64(0, 1000000000), true);
  14771. m1 = _tmp;
  14772. m2 = _tmp$1;
  14773. _tmp$2 = $div64(m1, new $Uint64(0, 1000000000), false);
  14774. _tmp$3 = $div64(m1, new $Uint64(0, 1000000000), true);
  14775. m0 = _tmp$2;
  14776. m1 = _tmp$3;
  14777. buf = sliceType$3.nil;
  14778. buf = $appendSlice(buf, " m=");
  14779. buf = $append(buf, sign);
  14780. wid = 0;
  14781. if (!((m0.$high === 0 && m0.$low === 0))) {
  14782. buf = appendInt(buf, ((m0.$low >> 0)), 0);
  14783. wid = 9;
  14784. }
  14785. buf = appendInt(buf, ((m1.$low >> 0)), wid);
  14786. buf = $append(buf, 46);
  14787. buf = appendInt(buf, ((m2.$low >> 0)), 9);
  14788. s = s + (($bytesToString(buf)));
  14789. }
  14790. $s = -1; return s;
  14791. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.String }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f.buf = buf; $f.m0 = m0; $f.m1 = m1; $f.m2 = m2; $f.s = s; $f.sign = sign; $f.t = t; $f.wid = wid; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.$s = $s; $f.$r = $r; return $f;
  14792. };
  14793. Time.prototype.String = function() { return this.$val.String(); };
  14794. Time.ptr.prototype.Format = function(layout) {
  14795. var _r, b, buf, layout, max, t, $s, $r;
  14796. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; buf = $f.buf; layout = $f.layout; max = $f.max; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  14797. t = this;
  14798. b = sliceType$3.nil;
  14799. max = layout.length + 10 >> 0;
  14800. if (max < 64) {
  14801. buf = arrayType$2.zero();
  14802. b = $subslice(new sliceType$3(buf), 0, 0);
  14803. } else {
  14804. b = $makeSlice(sliceType$3, 0, max);
  14805. }
  14806. _r = $clone(t, Time).AppendFormat(b, layout); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  14807. b = _r;
  14808. $s = -1; return ($bytesToString(b));
  14809. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Format }; } $f._r = _r; $f.b = b; $f.buf = buf; $f.layout = layout; $f.max = max; $f.t = t; $f.$s = $s; $f.$r = $r; return $f;
  14810. };
  14811. Time.prototype.Format = function(layout) { return this.$val.Format(layout); };
  14812. Time.ptr.prototype.AppendFormat = function(b, layout) {
  14813. var _1, _q, _q$1, _q$2, _q$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, _tuple$3, abs, absoffset, b, day, hour, hr, hr$1, layout, m, min, month, name, offset, prefix, s, sec, std, suffix, t, y, year, zone$1, zone$2, $s, $r;
  14814. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _q = $f._q; _q$1 = $f._q$1; _q$2 = $f._q$2; _q$3 = $f._q$3; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; abs = $f.abs; absoffset = $f.absoffset; b = $f.b; day = $f.day; hour = $f.hour; hr = $f.hr; hr$1 = $f.hr$1; layout = $f.layout; m = $f.m; min = $f.min; month = $f.month; name = $f.name; offset = $f.offset; prefix = $f.prefix; s = $f.s; sec = $f.sec; std = $f.std; suffix = $f.suffix; t = $f.t; y = $f.y; year = $f.year; zone$1 = $f.zone$1; zone$2 = $f.zone$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  14815. t = this;
  14816. _r = $clone(t, Time).locabs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  14817. _tuple = _r;
  14818. name = _tuple[0];
  14819. offset = _tuple[1];
  14820. abs = _tuple[2];
  14821. year = -1;
  14822. month = 0;
  14823. day = 0;
  14824. hour = -1;
  14825. min = 0;
  14826. sec = 0;
  14827. while (true) {
  14828. if (!(!(layout === ""))) { break; }
  14829. _tuple$1 = nextStdChunk(layout);
  14830. prefix = _tuple$1[0];
  14831. std = _tuple$1[1];
  14832. suffix = _tuple$1[2];
  14833. if (!(prefix === "")) {
  14834. b = $appendSlice(b, prefix);
  14835. }
  14836. if (std === 0) {
  14837. break;
  14838. }
  14839. layout = suffix;
  14840. if (year < 0 && !(((std & 256) === 0))) {
  14841. _tuple$2 = absDate(abs, true);
  14842. year = _tuple$2[0];
  14843. month = _tuple$2[1];
  14844. day = _tuple$2[2];
  14845. }
  14846. if (hour < 0 && !(((std & 512) === 0))) {
  14847. _tuple$3 = absClock(abs);
  14848. hour = _tuple$3[0];
  14849. min = _tuple$3[1];
  14850. sec = _tuple$3[2];
  14851. }
  14852. switch (0) { default:
  14853. _1 = std & 65535;
  14854. if (_1 === (274)) {
  14855. y = year;
  14856. if (y < 0) {
  14857. y = -y;
  14858. }
  14859. b = appendInt(b, (_r$1 = y % 100, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")), 2);
  14860. } else if (_1 === (273)) {
  14861. b = appendInt(b, year, 4);
  14862. } else if (_1 === (258)) {
  14863. b = $appendSlice(b, $substring(new Month(month).String(), 0, 3));
  14864. } else if (_1 === (257)) {
  14865. m = new Month(month).String();
  14866. b = $appendSlice(b, m);
  14867. } else if (_1 === (259)) {
  14868. b = appendInt(b, ((month >> 0)), 0);
  14869. } else if (_1 === (260)) {
  14870. b = appendInt(b, ((month >> 0)), 2);
  14871. } else if (_1 === (262)) {
  14872. b = $appendSlice(b, $substring(new Weekday(absWeekday(abs)).String(), 0, 3));
  14873. } else if (_1 === (261)) {
  14874. s = new Weekday(absWeekday(abs)).String();
  14875. b = $appendSlice(b, s);
  14876. } else if (_1 === (263)) {
  14877. b = appendInt(b, day, 0);
  14878. } else if (_1 === (264)) {
  14879. if (day < 10) {
  14880. b = $append(b, 32);
  14881. }
  14882. b = appendInt(b, day, 0);
  14883. } else if (_1 === (265)) {
  14884. b = appendInt(b, day, 2);
  14885. } else if (_1 === (522)) {
  14886. b = appendInt(b, hour, 2);
  14887. } else if (_1 === (523)) {
  14888. hr = (_r$2 = hour % 12, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero"));
  14889. if (hr === 0) {
  14890. hr = 12;
  14891. }
  14892. b = appendInt(b, hr, 0);
  14893. } else if (_1 === (524)) {
  14894. hr$1 = (_r$3 = hour % 12, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero"));
  14895. if (hr$1 === 0) {
  14896. hr$1 = 12;
  14897. }
  14898. b = appendInt(b, hr$1, 2);
  14899. } else if (_1 === (525)) {
  14900. b = appendInt(b, min, 0);
  14901. } else if (_1 === (526)) {
  14902. b = appendInt(b, min, 2);
  14903. } else if (_1 === (527)) {
  14904. b = appendInt(b, sec, 0);
  14905. } else if (_1 === (528)) {
  14906. b = appendInt(b, sec, 2);
  14907. } else if (_1 === (531)) {
  14908. if (hour >= 12) {
  14909. b = $appendSlice(b, "PM");
  14910. } else {
  14911. b = $appendSlice(b, "AM");
  14912. }
  14913. } else if (_1 === (532)) {
  14914. if (hour >= 12) {
  14915. b = $appendSlice(b, "pm");
  14916. } else {
  14917. b = $appendSlice(b, "am");
  14918. }
  14919. } else if ((_1 === (22)) || (_1 === (25)) || (_1 === (23)) || (_1 === (24)) || (_1 === (26)) || (_1 === (27)) || (_1 === (30)) || (_1 === (28)) || (_1 === (29)) || (_1 === (31))) {
  14920. if ((offset === 0) && ((std === 22) || (std === 25) || (std === 23) || (std === 24) || (std === 26))) {
  14921. b = $append(b, 90);
  14922. break;
  14923. }
  14924. zone$1 = (_q = offset / 60, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
  14925. absoffset = offset;
  14926. if (zone$1 < 0) {
  14927. b = $append(b, 45);
  14928. zone$1 = -zone$1;
  14929. absoffset = -absoffset;
  14930. } else {
  14931. b = $append(b, 43);
  14932. }
  14933. b = appendInt(b, (_q$1 = zone$1 / 60, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), 2);
  14934. if ((std === 25) || (std === 30) || (std === 26) || (std === 31)) {
  14935. b = $append(b, 58);
  14936. }
  14937. if (!((std === 29)) && !((std === 24))) {
  14938. b = appendInt(b, (_r$4 = zone$1 % 60, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")), 2);
  14939. }
  14940. if ((std === 23) || (std === 28) || (std === 31) || (std === 26)) {
  14941. if ((std === 31) || (std === 26)) {
  14942. b = $append(b, 58);
  14943. }
  14944. b = appendInt(b, (_r$5 = absoffset % 60, _r$5 === _r$5 ? _r$5 : $throwRuntimeError("integer divide by zero")), 2);
  14945. }
  14946. } else if (_1 === (21)) {
  14947. if (!(name === "")) {
  14948. b = $appendSlice(b, name);
  14949. break;
  14950. }
  14951. zone$2 = (_q$2 = offset / 60, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero"));
  14952. if (zone$2 < 0) {
  14953. b = $append(b, 45);
  14954. zone$2 = -zone$2;
  14955. } else {
  14956. b = $append(b, 43);
  14957. }
  14958. b = appendInt(b, (_q$3 = zone$2 / 60, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")), 2);
  14959. b = appendInt(b, (_r$6 = zone$2 % 60, _r$6 === _r$6 ? _r$6 : $throwRuntimeError("integer divide by zero")), 2);
  14960. } else if ((_1 === (32)) || (_1 === (33))) {
  14961. b = formatNano(b, (($clone(t, Time).Nanosecond() >>> 0)), std >> 16 >> 0, (std & 65535) === 33);
  14962. }
  14963. }
  14964. }
  14965. $s = -1; return b;
  14966. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.AppendFormat }; } $f._1 = _1; $f._q = _q; $f._q$1 = _q$1; $f._q$2 = _q$2; $f._q$3 = _q$3; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.abs = abs; $f.absoffset = absoffset; $f.b = b; $f.day = day; $f.hour = hour; $f.hr = hr; $f.hr$1 = hr$1; $f.layout = layout; $f.m = m; $f.min = min; $f.month = month; $f.name = name; $f.offset = offset; $f.prefix = prefix; $f.s = s; $f.sec = sec; $f.std = std; $f.suffix = suffix; $f.t = t; $f.y = y; $f.year = year; $f.zone$1 = zone$1; $f.zone$2 = zone$2; $f.$s = $s; $f.$r = $r; return $f;
  14967. };
  14968. Time.prototype.AppendFormat = function(b, layout) { return this.$val.AppendFormat(b, layout); };
  14969. quote = function(s) {
  14970. var s;
  14971. return "\"" + s + "\"";
  14972. };
  14973. ParseError.ptr.prototype.Error = function() {
  14974. var e;
  14975. e = this;
  14976. if (e.Message === "") {
  14977. return "parsing time " + quote(e.Value) + " as " + quote(e.Layout) + ": cannot parse " + quote(e.ValueElem) + " as " + quote(e.LayoutElem);
  14978. }
  14979. return "parsing time " + quote(e.Value) + e.Message;
  14980. };
  14981. ParseError.prototype.Error = function() { return this.$val.Error(); };
  14982. isDigit = function(s, i) {
  14983. var c, i, s;
  14984. if (s.length <= i) {
  14985. return false;
  14986. }
  14987. c = s.charCodeAt(i);
  14988. return 48 <= c && c <= 57;
  14989. };
  14990. getnum = function(s, fixed) {
  14991. var fixed, s;
  14992. if (!isDigit(s, 0)) {
  14993. return [0, s, errBad];
  14994. }
  14995. if (!isDigit(s, 1)) {
  14996. if (fixed) {
  14997. return [0, s, errBad];
  14998. }
  14999. return [(((s.charCodeAt(0) - 48 << 24 >>> 24) >> 0)), $substring(s, 1), $ifaceNil];
  15000. }
  15001. return [($imul((((s.charCodeAt(0) - 48 << 24 >>> 24) >> 0)), 10)) + (((s.charCodeAt(1) - 48 << 24 >>> 24) >> 0)) >> 0, $substring(s, 2), $ifaceNil];
  15002. };
  15003. cutspace = function(s) {
  15004. var s;
  15005. while (true) {
  15006. if (!(s.length > 0 && (s.charCodeAt(0) === 32))) { break; }
  15007. s = $substring(s, 1);
  15008. }
  15009. return s;
  15010. };
  15011. skip = function(value, prefix) {
  15012. var prefix, value;
  15013. while (true) {
  15014. if (!(prefix.length > 0)) { break; }
  15015. if (prefix.charCodeAt(0) === 32) {
  15016. if (value.length > 0 && !((value.charCodeAt(0) === 32))) {
  15017. return [value, errBad];
  15018. }
  15019. prefix = cutspace(prefix);
  15020. value = cutspace(value);
  15021. continue;
  15022. }
  15023. if ((value.length === 0) || !((value.charCodeAt(0) === prefix.charCodeAt(0)))) {
  15024. return [value, errBad];
  15025. }
  15026. prefix = $substring(prefix, 1);
  15027. value = $substring(value, 1);
  15028. }
  15029. return [value, $ifaceNil];
  15030. };
  15031. Parse = function(layout, value) {
  15032. var _r, layout, value, $s, $r;
  15033. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; layout = $f.layout; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  15034. _r = parse(layout, value, $pkg.UTC, $pkg.Local); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  15035. $s = -1; return _r;
  15036. /* */ } return; } if ($f === undefined) { $f = { $blk: Parse }; } $f._r = _r; $f.layout = layout; $f.value = value; $f.$s = $s; $f.$r = $r; return $f;
  15037. };
  15038. $pkg.Parse = Parse;
  15039. parse = function(layout, value, defaultLocation, local) {
  15040. var _1, _2, _3, _4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, alayout, amSet, avalue, day, defaultLocation, err, hour, hour$1, hr, i, layout, local, min, min$1, mm, month, n, n$1, name, ndigit, nsec, offset, offset$1, ok, ok$1, p, pmSet, prefix, rangeErrString, sec, seconds, sign, ss, std, stdstr, suffix, t, t$1, value, x$1, x$2, year, z, zoneName, zoneOffset, $s, $r;
  15041. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _4 = $f._4; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$10 = $f._tmp$10; _tmp$11 = $f._tmp$11; _tmp$12 = $f._tmp$12; _tmp$13 = $f._tmp$13; _tmp$14 = $f._tmp$14; _tmp$15 = $f._tmp$15; _tmp$16 = $f._tmp$16; _tmp$17 = $f._tmp$17; _tmp$18 = $f._tmp$18; _tmp$19 = $f._tmp$19; _tmp$2 = $f._tmp$2; _tmp$20 = $f._tmp$20; _tmp$21 = $f._tmp$21; _tmp$22 = $f._tmp$22; _tmp$23 = $f._tmp$23; _tmp$24 = $f._tmp$24; _tmp$25 = $f._tmp$25; _tmp$26 = $f._tmp$26; _tmp$27 = $f._tmp$27; _tmp$28 = $f._tmp$28; _tmp$29 = $f._tmp$29; _tmp$3 = $f._tmp$3; _tmp$30 = $f._tmp$30; _tmp$31 = $f._tmp$31; _tmp$32 = $f._tmp$32; _tmp$33 = $f._tmp$33; _tmp$34 = $f._tmp$34; _tmp$35 = $f._tmp$35; _tmp$36 = $f._tmp$36; _tmp$37 = $f._tmp$37; _tmp$38 = $f._tmp$38; _tmp$39 = $f._tmp$39; _tmp$4 = $f._tmp$4; _tmp$40 = $f._tmp$40; _tmp$41 = $f._tmp$41; _tmp$42 = $f._tmp$42; _tmp$43 = $f._tmp$43; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$10 = $f._tuple$10; _tuple$11 = $f._tuple$11; _tuple$12 = $f._tuple$12; _tuple$13 = $f._tuple$13; _tuple$14 = $f._tuple$14; _tuple$15 = $f._tuple$15; _tuple$16 = $f._tuple$16; _tuple$17 = $f._tuple$17; _tuple$18 = $f._tuple$18; _tuple$19 = $f._tuple$19; _tuple$2 = $f._tuple$2; _tuple$20 = $f._tuple$20; _tuple$21 = $f._tuple$21; _tuple$22 = $f._tuple$22; _tuple$23 = $f._tuple$23; _tuple$24 = $f._tuple$24; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; _tuple$8 = $f._tuple$8; _tuple$9 = $f._tuple$9; alayout = $f.alayout; amSet = $f.amSet; avalue = $f.avalue; day = $f.day; defaultLocation = $f.defaultLocation; err = $f.err; hour = $f.hour; hour$1 = $f.hour$1; hr = $f.hr; i = $f.i; layout = $f.layout; local = $f.local; min = $f.min; min$1 = $f.min$1; mm = $f.mm; month = $f.month; n = $f.n; n$1 = $f.n$1; name = $f.name; ndigit = $f.ndigit; nsec = $f.nsec; offset = $f.offset; offset$1 = $f.offset$1; ok = $f.ok; ok$1 = $f.ok$1; p = $f.p; pmSet = $f.pmSet; prefix = $f.prefix; rangeErrString = $f.rangeErrString; sec = $f.sec; seconds = $f.seconds; sign = $f.sign; ss = $f.ss; std = $f.std; stdstr = $f.stdstr; suffix = $f.suffix; t = $f.t; t$1 = $f.t$1; value = $f.value; x$1 = $f.x$1; x$2 = $f.x$2; year = $f.year; z = $f.z; zoneName = $f.zoneName; zoneOffset = $f.zoneOffset; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  15042. _tmp = layout;
  15043. _tmp$1 = value;
  15044. alayout = _tmp;
  15045. avalue = _tmp$1;
  15046. rangeErrString = "";
  15047. amSet = false;
  15048. pmSet = false;
  15049. year = 0;
  15050. month = 1;
  15051. day = 1;
  15052. hour = 0;
  15053. min = 0;
  15054. sec = 0;
  15055. nsec = 0;
  15056. z = ptrType$2.nil;
  15057. zoneOffset = -1;
  15058. zoneName = "";
  15059. while (true) {
  15060. err = $ifaceNil;
  15061. _tuple = nextStdChunk(layout);
  15062. prefix = _tuple[0];
  15063. std = _tuple[1];
  15064. suffix = _tuple[2];
  15065. stdstr = $substring(layout, prefix.length, (layout.length - suffix.length >> 0));
  15066. _tuple$1 = skip(value, prefix);
  15067. value = _tuple$1[0];
  15068. err = _tuple$1[1];
  15069. if (!($interfaceIsEqual(err, $ifaceNil))) {
  15070. $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, prefix, value, "")];
  15071. }
  15072. if (std === 0) {
  15073. if (!((value.length === 0))) {
  15074. $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, "", value, ": extra text: " + value)];
  15075. }
  15076. break;
  15077. }
  15078. layout = suffix;
  15079. p = "";
  15080. switch (0) { default:
  15081. _1 = std & 65535;
  15082. if (_1 === (274)) {
  15083. if (value.length < 2) {
  15084. err = errBad;
  15085. break;
  15086. }
  15087. _tmp$2 = $substring(value, 0, 2);
  15088. _tmp$3 = $substring(value, 2);
  15089. p = _tmp$2;
  15090. value = _tmp$3;
  15091. _tuple$2 = atoi(p);
  15092. year = _tuple$2[0];
  15093. err = _tuple$2[1];
  15094. if (year >= 69) {
  15095. year = year + (1900) >> 0;
  15096. } else {
  15097. year = year + (2000) >> 0;
  15098. }
  15099. } else if (_1 === (273)) {
  15100. if (value.length < 4 || !isDigit(value, 0)) {
  15101. err = errBad;
  15102. break;
  15103. }
  15104. _tmp$4 = $substring(value, 0, 4);
  15105. _tmp$5 = $substring(value, 4);
  15106. p = _tmp$4;
  15107. value = _tmp$5;
  15108. _tuple$3 = atoi(p);
  15109. year = _tuple$3[0];
  15110. err = _tuple$3[1];
  15111. } else if (_1 === (258)) {
  15112. _tuple$4 = lookup(shortMonthNames, value);
  15113. month = _tuple$4[0];
  15114. value = _tuple$4[1];
  15115. err = _tuple$4[2];
  15116. month = month + (1) >> 0;
  15117. } else if (_1 === (257)) {
  15118. _tuple$5 = lookup(longMonthNames, value);
  15119. month = _tuple$5[0];
  15120. value = _tuple$5[1];
  15121. err = _tuple$5[2];
  15122. month = month + (1) >> 0;
  15123. } else if ((_1 === (259)) || (_1 === (260))) {
  15124. _tuple$6 = getnum(value, std === 260);
  15125. month = _tuple$6[0];
  15126. value = _tuple$6[1];
  15127. err = _tuple$6[2];
  15128. if (month <= 0 || 12 < month) {
  15129. rangeErrString = "month";
  15130. }
  15131. } else if (_1 === (262)) {
  15132. _tuple$7 = lookup(shortDayNames, value);
  15133. value = _tuple$7[1];
  15134. err = _tuple$7[2];
  15135. } else if (_1 === (261)) {
  15136. _tuple$8 = lookup(longDayNames, value);
  15137. value = _tuple$8[1];
  15138. err = _tuple$8[2];
  15139. } else if ((_1 === (263)) || (_1 === (264)) || (_1 === (265))) {
  15140. if ((std === 264) && value.length > 0 && (value.charCodeAt(0) === 32)) {
  15141. value = $substring(value, 1);
  15142. }
  15143. _tuple$9 = getnum(value, std === 265);
  15144. day = _tuple$9[0];
  15145. value = _tuple$9[1];
  15146. err = _tuple$9[2];
  15147. if (day < 0) {
  15148. rangeErrString = "day";
  15149. }
  15150. } else if (_1 === (522)) {
  15151. _tuple$10 = getnum(value, false);
  15152. hour = _tuple$10[0];
  15153. value = _tuple$10[1];
  15154. err = _tuple$10[2];
  15155. if (hour < 0 || 24 <= hour) {
  15156. rangeErrString = "hour";
  15157. }
  15158. } else if ((_1 === (523)) || (_1 === (524))) {
  15159. _tuple$11 = getnum(value, std === 524);
  15160. hour = _tuple$11[0];
  15161. value = _tuple$11[1];
  15162. err = _tuple$11[2];
  15163. if (hour < 0 || 12 < hour) {
  15164. rangeErrString = "hour";
  15165. }
  15166. } else if ((_1 === (525)) || (_1 === (526))) {
  15167. _tuple$12 = getnum(value, std === 526);
  15168. min = _tuple$12[0];
  15169. value = _tuple$12[1];
  15170. err = _tuple$12[2];
  15171. if (min < 0 || 60 <= min) {
  15172. rangeErrString = "minute";
  15173. }
  15174. } else if ((_1 === (527)) || (_1 === (528))) {
  15175. _tuple$13 = getnum(value, std === 528);
  15176. sec = _tuple$13[0];
  15177. value = _tuple$13[1];
  15178. err = _tuple$13[2];
  15179. if (sec < 0 || 60 <= sec) {
  15180. rangeErrString = "second";
  15181. break;
  15182. }
  15183. if (value.length >= 2 && (value.charCodeAt(0) === 46) && isDigit(value, 1)) {
  15184. _tuple$14 = nextStdChunk(layout);
  15185. std = _tuple$14[1];
  15186. std = std & (65535);
  15187. if ((std === 32) || (std === 33)) {
  15188. break;
  15189. }
  15190. n = 2;
  15191. while (true) {
  15192. if (!(n < value.length && isDigit(value, n))) { break; }
  15193. n = n + (1) >> 0;
  15194. }
  15195. _tuple$15 = parseNanoseconds(value, n);
  15196. nsec = _tuple$15[0];
  15197. rangeErrString = _tuple$15[1];
  15198. err = _tuple$15[2];
  15199. value = $substring(value, n);
  15200. }
  15201. } else if (_1 === (531)) {
  15202. if (value.length < 2) {
  15203. err = errBad;
  15204. break;
  15205. }
  15206. _tmp$6 = $substring(value, 0, 2);
  15207. _tmp$7 = $substring(value, 2);
  15208. p = _tmp$6;
  15209. value = _tmp$7;
  15210. _2 = p;
  15211. if (_2 === ("PM")) {
  15212. pmSet = true;
  15213. } else if (_2 === ("AM")) {
  15214. amSet = true;
  15215. } else {
  15216. err = errBad;
  15217. }
  15218. } else if (_1 === (532)) {
  15219. if (value.length < 2) {
  15220. err = errBad;
  15221. break;
  15222. }
  15223. _tmp$8 = $substring(value, 0, 2);
  15224. _tmp$9 = $substring(value, 2);
  15225. p = _tmp$8;
  15226. value = _tmp$9;
  15227. _3 = p;
  15228. if (_3 === ("pm")) {
  15229. pmSet = true;
  15230. } else if (_3 === ("am")) {
  15231. amSet = true;
  15232. } else {
  15233. err = errBad;
  15234. }
  15235. } else if ((_1 === (22)) || (_1 === (25)) || (_1 === (23)) || (_1 === (24)) || (_1 === (26)) || (_1 === (27)) || (_1 === (29)) || (_1 === (30)) || (_1 === (28)) || (_1 === (31))) {
  15236. if (((std === 22) || (std === 24) || (std === 25)) && value.length >= 1 && (value.charCodeAt(0) === 90)) {
  15237. value = $substring(value, 1);
  15238. z = $pkg.UTC;
  15239. break;
  15240. }
  15241. _tmp$10 = "";
  15242. _tmp$11 = "";
  15243. _tmp$12 = "";
  15244. _tmp$13 = "";
  15245. sign = _tmp$10;
  15246. hour$1 = _tmp$11;
  15247. min$1 = _tmp$12;
  15248. seconds = _tmp$13;
  15249. if ((std === 25) || (std === 30)) {
  15250. if (value.length < 6) {
  15251. err = errBad;
  15252. break;
  15253. }
  15254. if (!((value.charCodeAt(3) === 58))) {
  15255. err = errBad;
  15256. break;
  15257. }
  15258. _tmp$14 = $substring(value, 0, 1);
  15259. _tmp$15 = $substring(value, 1, 3);
  15260. _tmp$16 = $substring(value, 4, 6);
  15261. _tmp$17 = "00";
  15262. _tmp$18 = $substring(value, 6);
  15263. sign = _tmp$14;
  15264. hour$1 = _tmp$15;
  15265. min$1 = _tmp$16;
  15266. seconds = _tmp$17;
  15267. value = _tmp$18;
  15268. } else if ((std === 29) || (std === 24)) {
  15269. if (value.length < 3) {
  15270. err = errBad;
  15271. break;
  15272. }
  15273. _tmp$19 = $substring(value, 0, 1);
  15274. _tmp$20 = $substring(value, 1, 3);
  15275. _tmp$21 = "00";
  15276. _tmp$22 = "00";
  15277. _tmp$23 = $substring(value, 3);
  15278. sign = _tmp$19;
  15279. hour$1 = _tmp$20;
  15280. min$1 = _tmp$21;
  15281. seconds = _tmp$22;
  15282. value = _tmp$23;
  15283. } else if ((std === 26) || (std === 31)) {
  15284. if (value.length < 9) {
  15285. err = errBad;
  15286. break;
  15287. }
  15288. if (!((value.charCodeAt(3) === 58)) || !((value.charCodeAt(6) === 58))) {
  15289. err = errBad;
  15290. break;
  15291. }
  15292. _tmp$24 = $substring(value, 0, 1);
  15293. _tmp$25 = $substring(value, 1, 3);
  15294. _tmp$26 = $substring(value, 4, 6);
  15295. _tmp$27 = $substring(value, 7, 9);
  15296. _tmp$28 = $substring(value, 9);
  15297. sign = _tmp$24;
  15298. hour$1 = _tmp$25;
  15299. min$1 = _tmp$26;
  15300. seconds = _tmp$27;
  15301. value = _tmp$28;
  15302. } else if ((std === 23) || (std === 28)) {
  15303. if (value.length < 7) {
  15304. err = errBad;
  15305. break;
  15306. }
  15307. _tmp$29 = $substring(value, 0, 1);
  15308. _tmp$30 = $substring(value, 1, 3);
  15309. _tmp$31 = $substring(value, 3, 5);
  15310. _tmp$32 = $substring(value, 5, 7);
  15311. _tmp$33 = $substring(value, 7);
  15312. sign = _tmp$29;
  15313. hour$1 = _tmp$30;
  15314. min$1 = _tmp$31;
  15315. seconds = _tmp$32;
  15316. value = _tmp$33;
  15317. } else {
  15318. if (value.length < 5) {
  15319. err = errBad;
  15320. break;
  15321. }
  15322. _tmp$34 = $substring(value, 0, 1);
  15323. _tmp$35 = $substring(value, 1, 3);
  15324. _tmp$36 = $substring(value, 3, 5);
  15325. _tmp$37 = "00";
  15326. _tmp$38 = $substring(value, 5);
  15327. sign = _tmp$34;
  15328. hour$1 = _tmp$35;
  15329. min$1 = _tmp$36;
  15330. seconds = _tmp$37;
  15331. value = _tmp$38;
  15332. }
  15333. _tmp$39 = 0;
  15334. _tmp$40 = 0;
  15335. _tmp$41 = 0;
  15336. hr = _tmp$39;
  15337. mm = _tmp$40;
  15338. ss = _tmp$41;
  15339. _tuple$16 = atoi(hour$1);
  15340. hr = _tuple$16[0];
  15341. err = _tuple$16[1];
  15342. if ($interfaceIsEqual(err, $ifaceNil)) {
  15343. _tuple$17 = atoi(min$1);
  15344. mm = _tuple$17[0];
  15345. err = _tuple$17[1];
  15346. }
  15347. if ($interfaceIsEqual(err, $ifaceNil)) {
  15348. _tuple$18 = atoi(seconds);
  15349. ss = _tuple$18[0];
  15350. err = _tuple$18[1];
  15351. }
  15352. zoneOffset = ($imul(((($imul(hr, 60)) + mm >> 0)), 60)) + ss >> 0;
  15353. _4 = sign.charCodeAt(0);
  15354. if (_4 === (43)) {
  15355. } else if (_4 === (45)) {
  15356. zoneOffset = -zoneOffset;
  15357. } else {
  15358. err = errBad;
  15359. }
  15360. } else if (_1 === (21)) {
  15361. if (value.length >= 3 && $substring(value, 0, 3) === "UTC") {
  15362. z = $pkg.UTC;
  15363. value = $substring(value, 3);
  15364. break;
  15365. }
  15366. _tuple$19 = parseTimeZone(value);
  15367. n$1 = _tuple$19[0];
  15368. ok = _tuple$19[1];
  15369. if (!ok) {
  15370. err = errBad;
  15371. break;
  15372. }
  15373. _tmp$42 = $substring(value, 0, n$1);
  15374. _tmp$43 = $substring(value, n$1);
  15375. zoneName = _tmp$42;
  15376. value = _tmp$43;
  15377. } else if (_1 === (32)) {
  15378. ndigit = 1 + ((std >> 16 >> 0)) >> 0;
  15379. if (value.length < ndigit) {
  15380. err = errBad;
  15381. break;
  15382. }
  15383. _tuple$20 = parseNanoseconds(value, ndigit);
  15384. nsec = _tuple$20[0];
  15385. rangeErrString = _tuple$20[1];
  15386. err = _tuple$20[2];
  15387. value = $substring(value, ndigit);
  15388. } else if (_1 === (33)) {
  15389. if (value.length < 2 || !((value.charCodeAt(0) === 46)) || value.charCodeAt(1) < 48 || 57 < value.charCodeAt(1)) {
  15390. break;
  15391. }
  15392. i = 0;
  15393. while (true) {
  15394. if (!(i < 9 && (i + 1 >> 0) < value.length && 48 <= value.charCodeAt((i + 1 >> 0)) && value.charCodeAt((i + 1 >> 0)) <= 57)) { break; }
  15395. i = i + (1) >> 0;
  15396. }
  15397. _tuple$21 = parseNanoseconds(value, 1 + i >> 0);
  15398. nsec = _tuple$21[0];
  15399. rangeErrString = _tuple$21[1];
  15400. err = _tuple$21[2];
  15401. value = $substring(value, (1 + i >> 0));
  15402. }
  15403. }
  15404. if (!(rangeErrString === "")) {
  15405. $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, stdstr, value, ": " + rangeErrString + " out of range")];
  15406. }
  15407. if (!($interfaceIsEqual(err, $ifaceNil))) {
  15408. $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, stdstr, value, "")];
  15409. }
  15410. }
  15411. if (pmSet && hour < 12) {
  15412. hour = hour + (12) >> 0;
  15413. } else if (amSet && (hour === 12)) {
  15414. hour = 0;
  15415. }
  15416. if (day < 1 || day > daysIn(((month >> 0)), year)) {
  15417. $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, "", value, ": day out of range")];
  15418. }
  15419. /* */ if (!(z === ptrType$2.nil)) { $s = 1; continue; }
  15420. /* */ $s = 2; continue;
  15421. /* if (!(z === ptrType$2.nil)) { */ case 1:
  15422. _r = Date(year, ((month >> 0)), day, hour, min, sec, nsec, z); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  15423. $s = -1; return [_r, $ifaceNil];
  15424. /* } */ case 2:
  15425. /* */ if (!((zoneOffset === -1))) { $s = 4; continue; }
  15426. /* */ $s = 5; continue;
  15427. /* if (!((zoneOffset === -1))) { */ case 4:
  15428. _r$1 = Date(year, ((month >> 0)), day, hour, min, sec, nsec, $pkg.UTC); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  15429. t = $clone(_r$1, Time);
  15430. t.addSec((x$1 = (new $Int64(0, zoneOffset)), new $Int64(-x$1.$high, -x$1.$low)));
  15431. _r$2 = local.lookup(t.unixSec()); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  15432. _tuple$22 = _r$2;
  15433. name = _tuple$22[0];
  15434. offset = _tuple$22[1];
  15435. if ((offset === zoneOffset) && (zoneName === "" || name === zoneName)) {
  15436. t.setLoc(local);
  15437. $s = -1; return [t, $ifaceNil];
  15438. }
  15439. t.setLoc(FixedZone(zoneName, zoneOffset));
  15440. $s = -1; return [t, $ifaceNil];
  15441. /* } */ case 5:
  15442. /* */ if (!(zoneName === "")) { $s = 8; continue; }
  15443. /* */ $s = 9; continue;
  15444. /* if (!(zoneName === "")) { */ case 8:
  15445. _r$3 = Date(year, ((month >> 0)), day, hour, min, sec, nsec, $pkg.UTC); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  15446. t$1 = $clone(_r$3, Time);
  15447. _r$4 = local.lookupName(zoneName, t$1.unixSec()); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  15448. _tuple$23 = _r$4;
  15449. offset$1 = _tuple$23[0];
  15450. ok$1 = _tuple$23[1];
  15451. if (ok$1) {
  15452. t$1.addSec((x$2 = (new $Int64(0, offset$1)), new $Int64(-x$2.$high, -x$2.$low)));
  15453. t$1.setLoc(local);
  15454. $s = -1; return [t$1, $ifaceNil];
  15455. }
  15456. if (zoneName.length > 3 && $substring(zoneName, 0, 3) === "GMT") {
  15457. _tuple$24 = atoi($substring(zoneName, 3));
  15458. offset$1 = _tuple$24[0];
  15459. offset$1 = $imul(offset$1, (3600));
  15460. }
  15461. t$1.setLoc(FixedZone(zoneName, offset$1));
  15462. $s = -1; return [t$1, $ifaceNil];
  15463. /* } */ case 9:
  15464. _r$5 = Date(year, ((month >> 0)), day, hour, min, sec, nsec, defaultLocation); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  15465. $s = -1; return [_r$5, $ifaceNil];
  15466. /* */ } return; } if ($f === undefined) { $f = { $blk: parse }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._4 = _4; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$10 = _tmp$10; $f._tmp$11 = _tmp$11; $f._tmp$12 = _tmp$12; $f._tmp$13 = _tmp$13; $f._tmp$14 = _tmp$14; $f._tmp$15 = _tmp$15; $f._tmp$16 = _tmp$16; $f._tmp$17 = _tmp$17; $f._tmp$18 = _tmp$18; $f._tmp$19 = _tmp$19; $f._tmp$2 = _tmp$2; $f._tmp$20 = _tmp$20; $f._tmp$21 = _tmp$21; $f._tmp$22 = _tmp$22; $f._tmp$23 = _tmp$23; $f._tmp$24 = _tmp$24; $f._tmp$25 = _tmp$25; $f._tmp$26 = _tmp$26; $f._tmp$27 = _tmp$27; $f._tmp$28 = _tmp$28; $f._tmp$29 = _tmp$29; $f._tmp$3 = _tmp$3; $f._tmp$30 = _tmp$30; $f._tmp$31 = _tmp$31; $f._tmp$32 = _tmp$32; $f._tmp$33 = _tmp$33; $f._tmp$34 = _tmp$34; $f._tmp$35 = _tmp$35; $f._tmp$36 = _tmp$36; $f._tmp$37 = _tmp$37; $f._tmp$38 = _tmp$38; $f._tmp$39 = _tmp$39; $f._tmp$4 = _tmp$4; $f._tmp$40 = _tmp$40; $f._tmp$41 = _tmp$41; $f._tmp$42 = _tmp$42; $f._tmp$43 = _tmp$43; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$10 = _tuple$10; $f._tuple$11 = _tuple$11; $f._tuple$12 = _tuple$12; $f._tuple$13 = _tuple$13; $f._tuple$14 = _tuple$14; $f._tuple$15 = _tuple$15; $f._tuple$16 = _tuple$16; $f._tuple$17 = _tuple$17; $f._tuple$18 = _tuple$18; $f._tuple$19 = _tuple$19; $f._tuple$2 = _tuple$2; $f._tuple$20 = _tuple$20; $f._tuple$21 = _tuple$21; $f._tuple$22 = _tuple$22; $f._tuple$23 = _tuple$23; $f._tuple$24 = _tuple$24; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f._tuple$8 = _tuple$8; $f._tuple$9 = _tuple$9; $f.alayout = alayout; $f.amSet = amSet; $f.avalue = avalue; $f.day = day; $f.defaultLocation = defaultLocation; $f.err = err; $f.hour = hour; $f.hour$1 = hour$1; $f.hr = hr; $f.i = i; $f.layout = layout; $f.local = local; $f.min = min; $f.min$1 = min$1; $f.mm = mm; $f.month = month; $f.n = n; $f.n$1 = n$1; $f.name = name; $f.ndigit = ndigit; $f.nsec = nsec; $f.offset = offset; $f.offset$1 = offset$1; $f.ok = ok; $f.ok$1 = ok$1; $f.p = p; $f.pmSet = pmSet; $f.prefix = prefix; $f.rangeErrString = rangeErrString; $f.sec = sec; $f.seconds = seconds; $f.sign = sign; $f.ss = ss; $f.std = std; $f.stdstr = stdstr; $f.suffix = suffix; $f.t = t; $f.t$1 = t$1; $f.value = value; $f.x$1 = x$1; $f.x$2 = x$2; $f.year = year; $f.z = z; $f.zoneName = zoneName; $f.zoneOffset = zoneOffset; $f.$s = $s; $f.$r = $r; return $f;
  15467. };
  15468. parseTimeZone = function(value) {
  15469. var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, c, length, nUpper, ok, ok$1, value;
  15470. length = 0;
  15471. ok = false;
  15472. if (value.length < 3) {
  15473. _tmp = 0;
  15474. _tmp$1 = false;
  15475. length = _tmp;
  15476. ok = _tmp$1;
  15477. return [length, ok];
  15478. }
  15479. if (value.length >= 4 && ($substring(value, 0, 4) === "ChST" || $substring(value, 0, 4) === "MeST")) {
  15480. _tmp$2 = 4;
  15481. _tmp$3 = true;
  15482. length = _tmp$2;
  15483. ok = _tmp$3;
  15484. return [length, ok];
  15485. }
  15486. if ($substring(value, 0, 3) === "GMT") {
  15487. length = parseGMT(value);
  15488. _tmp$4 = length;
  15489. _tmp$5 = true;
  15490. length = _tmp$4;
  15491. ok = _tmp$5;
  15492. return [length, ok];
  15493. }
  15494. if ((value.charCodeAt(0) === 43) || (value.charCodeAt(0) === 45)) {
  15495. length = parseSignedOffset(value);
  15496. ok$1 = length > 0;
  15497. _tmp$6 = length;
  15498. _tmp$7 = ok$1;
  15499. length = _tmp$6;
  15500. ok = _tmp$7;
  15501. return [length, ok];
  15502. }
  15503. nUpper = 0;
  15504. nUpper = 0;
  15505. while (true) {
  15506. if (!(nUpper < 6)) { break; }
  15507. if (nUpper >= value.length) {
  15508. break;
  15509. }
  15510. c = value.charCodeAt(nUpper);
  15511. if (c < 65 || 90 < c) {
  15512. break;
  15513. }
  15514. nUpper = nUpper + (1) >> 0;
  15515. }
  15516. _1 = nUpper;
  15517. if ((_1 === (0)) || (_1 === (1)) || (_1 === (2)) || (_1 === (6))) {
  15518. _tmp$8 = 0;
  15519. _tmp$9 = false;
  15520. length = _tmp$8;
  15521. ok = _tmp$9;
  15522. return [length, ok];
  15523. } else if (_1 === (5)) {
  15524. if (value.charCodeAt(4) === 84) {
  15525. _tmp$10 = 5;
  15526. _tmp$11 = true;
  15527. length = _tmp$10;
  15528. ok = _tmp$11;
  15529. return [length, ok];
  15530. }
  15531. } else if (_1 === (4)) {
  15532. if ((value.charCodeAt(3) === 84) || $substring(value, 0, 4) === "WITA") {
  15533. _tmp$12 = 4;
  15534. _tmp$13 = true;
  15535. length = _tmp$12;
  15536. ok = _tmp$13;
  15537. return [length, ok];
  15538. }
  15539. } else if (_1 === (3)) {
  15540. _tmp$14 = 3;
  15541. _tmp$15 = true;
  15542. length = _tmp$14;
  15543. ok = _tmp$15;
  15544. return [length, ok];
  15545. }
  15546. _tmp$16 = 0;
  15547. _tmp$17 = false;
  15548. length = _tmp$16;
  15549. ok = _tmp$17;
  15550. return [length, ok];
  15551. };
  15552. parseGMT = function(value) {
  15553. var value;
  15554. value = $substring(value, 3);
  15555. if (value.length === 0) {
  15556. return 3;
  15557. }
  15558. return 3 + parseSignedOffset(value) >> 0;
  15559. };
  15560. parseSignedOffset = function(value) {
  15561. var _tuple, err, rem, sign, value, x$1;
  15562. sign = value.charCodeAt(0);
  15563. if (!((sign === 45)) && !((sign === 43))) {
  15564. return 0;
  15565. }
  15566. _tuple = leadingInt($substring(value, 1));
  15567. x$1 = _tuple[0];
  15568. rem = _tuple[1];
  15569. err = _tuple[2];
  15570. if (!($interfaceIsEqual(err, $ifaceNil)) || $substring(value, 1) === rem) {
  15571. return 0;
  15572. }
  15573. if (sign === 45) {
  15574. x$1 = new $Int64(-x$1.$high, -x$1.$low);
  15575. }
  15576. if ((x$1.$high < -1 || (x$1.$high === -1 && x$1.$low < 4294967273)) || (0 < x$1.$high || (0 === x$1.$high && 23 < x$1.$low))) {
  15577. return 0;
  15578. }
  15579. return value.length - rem.length >> 0;
  15580. };
  15581. parseNanoseconds = function(value, nbytes) {
  15582. var _tuple, err, i, nbytes, ns, rangeErrString, scaleDigits, value;
  15583. ns = 0;
  15584. rangeErrString = "";
  15585. err = $ifaceNil;
  15586. if (!((value.charCodeAt(0) === 46))) {
  15587. err = errBad;
  15588. return [ns, rangeErrString, err];
  15589. }
  15590. _tuple = atoi($substring(value, 1, nbytes));
  15591. ns = _tuple[0];
  15592. err = _tuple[1];
  15593. if (!($interfaceIsEqual(err, $ifaceNil))) {
  15594. return [ns, rangeErrString, err];
  15595. }
  15596. if (ns < 0 || 1000000000 <= ns) {
  15597. rangeErrString = "fractional second";
  15598. return [ns, rangeErrString, err];
  15599. }
  15600. scaleDigits = 10 - nbytes >> 0;
  15601. i = 0;
  15602. while (true) {
  15603. if (!(i < scaleDigits)) { break; }
  15604. ns = $imul(ns, (10));
  15605. i = i + (1) >> 0;
  15606. }
  15607. return [ns, rangeErrString, err];
  15608. };
  15609. leadingInt = function(s) {
  15610. var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, c, err, i, rem, s, x$1, x$2, x$3, x$4;
  15611. x$1 = new $Int64(0, 0);
  15612. rem = "";
  15613. err = $ifaceNil;
  15614. i = 0;
  15615. while (true) {
  15616. if (!(i < s.length)) { break; }
  15617. c = s.charCodeAt(i);
  15618. if (c < 48 || c > 57) {
  15619. break;
  15620. }
  15621. if ((x$1.$high > 214748364 || (x$1.$high === 214748364 && x$1.$low > 3435973836))) {
  15622. _tmp = new $Int64(0, 0);
  15623. _tmp$1 = "";
  15624. _tmp$2 = errLeadingInt;
  15625. x$1 = _tmp;
  15626. rem = _tmp$1;
  15627. err = _tmp$2;
  15628. return [x$1, rem, err];
  15629. }
  15630. x$1 = (x$2 = (x$3 = $mul64(x$1, new $Int64(0, 10)), x$4 = (new $Int64(0, c)), new $Int64(x$3.$high + x$4.$high, x$3.$low + x$4.$low)), new $Int64(x$2.$high - 0, x$2.$low - 48));
  15631. if ((x$1.$high < 0 || (x$1.$high === 0 && x$1.$low < 0))) {
  15632. _tmp$3 = new $Int64(0, 0);
  15633. _tmp$4 = "";
  15634. _tmp$5 = errLeadingInt;
  15635. x$1 = _tmp$3;
  15636. rem = _tmp$4;
  15637. err = _tmp$5;
  15638. return [x$1, rem, err];
  15639. }
  15640. i = i + (1) >> 0;
  15641. }
  15642. _tmp$6 = x$1;
  15643. _tmp$7 = $substring(s, i);
  15644. _tmp$8 = $ifaceNil;
  15645. x$1 = _tmp$6;
  15646. rem = _tmp$7;
  15647. err = _tmp$8;
  15648. return [x$1, rem, err];
  15649. };
  15650. when = function(d) {
  15651. var d, t, x$1, x$2;
  15652. if ((d.$high < 0 || (d.$high === 0 && d.$low <= 0))) {
  15653. return runtimeNano();
  15654. }
  15655. t = (x$1 = runtimeNano(), x$2 = (new $Int64(d.$high, d.$low)), new $Int64(x$1.$high + x$2.$high, x$1.$low + x$2.$low));
  15656. if ((t.$high < 0 || (t.$high === 0 && t.$low < 0))) {
  15657. t = new $Int64(2147483647, 4294967295);
  15658. }
  15659. return t;
  15660. };
  15661. Timer.ptr.prototype.Stop = function() {
  15662. var t;
  15663. t = this;
  15664. if (t.r.f === $throwNilPointerError) {
  15665. $panic(new $String("time: Stop called on uninitialized Timer"));
  15666. }
  15667. return stopTimer(t.r);
  15668. };
  15669. Timer.prototype.Stop = function() { return this.$val.Stop(); };
  15670. NewTimer = function(d) {
  15671. var c, d, t;
  15672. c = new $Chan(Time, 1);
  15673. t = new Timer.ptr(c, new runtimeTimer.ptr(0, when(d), new $Int64(0, 0), sendTime, new chanType(c), null, false));
  15674. startTimer(t.r);
  15675. return t;
  15676. };
  15677. $pkg.NewTimer = NewTimer;
  15678. Timer.ptr.prototype.Reset = function(d) {
  15679. var active, d, t, w;
  15680. t = this;
  15681. if (t.r.f === $throwNilPointerError) {
  15682. $panic(new $String("time: Reset called on uninitialized Timer"));
  15683. }
  15684. w = when(d);
  15685. active = stopTimer(t.r);
  15686. t.r.when = w;
  15687. startTimer(t.r);
  15688. return active;
  15689. };
  15690. Timer.prototype.Reset = function(d) { return this.$val.Reset(d); };
  15691. sendTime = function(c, seq) {
  15692. var _selection, c, seq, $r;
  15693. /* */ var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _selection = $f._selection; c = $f.c; seq = $f.seq; $r = $f.$r; }
  15694. _selection = $select([[$assertType(c, chanType), $clone(Now(), Time)], []]);
  15695. if (_selection[0] === 0) {
  15696. } else if (_selection[0] === 1) {
  15697. }
  15698. /* */ if ($f === undefined) { $f = { $blk: sendTime }; } $f._selection = _selection; $f.c = c; $f.seq = seq; $f.$r = $r; return $f;
  15699. };
  15700. NewTicker = function(d) {
  15701. var c, d, t;
  15702. if ((d.$high < 0 || (d.$high === 0 && d.$low <= 0))) {
  15703. $panic(errors.New("non-positive interval for NewTicker"));
  15704. }
  15705. c = new $Chan(Time, 1);
  15706. t = new Ticker.ptr(c, new runtimeTimer.ptr(0, when(d), (new $Int64(d.$high, d.$low)), sendTime, new chanType(c), null, false));
  15707. startTimer(t.r);
  15708. return t;
  15709. };
  15710. $pkg.NewTicker = NewTicker;
  15711. Ticker.ptr.prototype.Stop = function() {
  15712. var t;
  15713. t = this;
  15714. stopTimer(t.r);
  15715. };
  15716. Ticker.prototype.Stop = function() { return this.$val.Stop(); };
  15717. Time.ptr.prototype.nsec = function() {
  15718. var t, x$1;
  15719. t = this;
  15720. return (((x$1 = t.wall, new $Uint64(x$1.$high & 0, (x$1.$low & 1073741823) >>> 0)).$low >> 0));
  15721. };
  15722. Time.prototype.nsec = function() { return this.$val.nsec(); };
  15723. Time.ptr.prototype.sec = function() {
  15724. var t, x$1, x$2, x$3, x$4;
  15725. t = this;
  15726. if (!((x$1 = (x$2 = t.wall, new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) {
  15727. return (x$3 = ((x$4 = $shiftRightUint64($shiftLeft64(t.wall, 1), 31), new $Int64(x$4.$high, x$4.$low))), new $Int64(13 + x$3.$high, 3618733952 + x$3.$low));
  15728. }
  15729. return t.ext;
  15730. };
  15731. Time.prototype.sec = function() { return this.$val.sec(); };
  15732. Time.ptr.prototype.unixSec = function() {
  15733. var t, x$1;
  15734. t = this;
  15735. return (x$1 = t.sec(), new $Int64(x$1.$high + -15, x$1.$low + 2288912640));
  15736. };
  15737. Time.prototype.unixSec = function() { return this.$val.unixSec(); };
  15738. Time.ptr.prototype.addSec = function(d) {
  15739. var d, dsec, sec, t, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
  15740. t = this;
  15741. if (!((x$1 = (x$2 = t.wall, new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) {
  15742. sec = ((x$3 = $shiftRightUint64($shiftLeft64(t.wall, 1), 31), new $Int64(x$3.$high, x$3.$low)));
  15743. dsec = new $Int64(sec.$high + d.$high, sec.$low + d.$low);
  15744. if ((0 < dsec.$high || (0 === dsec.$high && 0 <= dsec.$low)) && (dsec.$high < 1 || (dsec.$high === 1 && dsec.$low <= 4294967295))) {
  15745. t.wall = (x$4 = (x$5 = (x$6 = t.wall, new $Uint64(x$6.$high & 0, (x$6.$low & 1073741823) >>> 0)), x$7 = $shiftLeft64((new $Uint64(dsec.$high, dsec.$low)), 30), new $Uint64(x$5.$high | x$7.$high, (x$5.$low | x$7.$low) >>> 0)), new $Uint64(x$4.$high | 2147483648, (x$4.$low | 0) >>> 0));
  15746. return;
  15747. }
  15748. t.stripMono();
  15749. }
  15750. t.ext = (x$8 = t.ext, x$9 = d, new $Int64(x$8.$high + x$9.$high, x$8.$low + x$9.$low));
  15751. };
  15752. Time.prototype.addSec = function(d) { return this.$val.addSec(d); };
  15753. Time.ptr.prototype.setLoc = function(loc) {
  15754. var loc, t;
  15755. t = this;
  15756. if (loc === utcLoc) {
  15757. loc = ptrType$2.nil;
  15758. }
  15759. t.stripMono();
  15760. t.loc = loc;
  15761. };
  15762. Time.prototype.setLoc = function(loc) { return this.$val.setLoc(loc); };
  15763. Time.ptr.prototype.stripMono = function() {
  15764. var t, x$1, x$2, x$3, x$4;
  15765. t = this;
  15766. if (!((x$1 = (x$2 = t.wall, new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) {
  15767. t.ext = t.sec();
  15768. t.wall = (x$3 = t.wall, x$4 = new $Uint64(0, 1073741823), new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0));
  15769. }
  15770. };
  15771. Time.prototype.stripMono = function() { return this.$val.stripMono(); };
  15772. Time.ptr.prototype.After = function(u) {
  15773. var t, ts, u, us, x$1, x$2, x$3, x$4, x$5, x$6;
  15774. t = this;
  15775. if (!((x$1 = (x$2 = (x$3 = t.wall, x$4 = u.wall, new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0)), new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) {
  15776. return (x$5 = t.ext, x$6 = u.ext, (x$5.$high > x$6.$high || (x$5.$high === x$6.$high && x$5.$low > x$6.$low)));
  15777. }
  15778. ts = t.sec();
  15779. us = u.sec();
  15780. return (ts.$high > us.$high || (ts.$high === us.$high && ts.$low > us.$low)) || (ts.$high === us.$high && ts.$low === us.$low) && t.nsec() > u.nsec();
  15781. };
  15782. Time.prototype.After = function(u) { return this.$val.After(u); };
  15783. Time.ptr.prototype.Before = function(u) {
  15784. var t, u, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
  15785. t = this;
  15786. if (!((x$1 = (x$2 = (x$3 = t.wall, x$4 = u.wall, new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0)), new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) {
  15787. return (x$5 = t.ext, x$6 = u.ext, (x$5.$high < x$6.$high || (x$5.$high === x$6.$high && x$5.$low < x$6.$low)));
  15788. }
  15789. return (x$7 = t.sec(), x$8 = u.sec(), (x$7.$high < x$8.$high || (x$7.$high === x$8.$high && x$7.$low < x$8.$low))) || (x$9 = t.sec(), x$10 = u.sec(), (x$9.$high === x$10.$high && x$9.$low === x$10.$low)) && t.nsec() < u.nsec();
  15790. };
  15791. Time.prototype.Before = function(u) { return this.$val.Before(u); };
  15792. Time.ptr.prototype.Equal = function(u) {
  15793. var t, u, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8;
  15794. t = this;
  15795. if (!((x$1 = (x$2 = (x$3 = t.wall, x$4 = u.wall, new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0)), new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) {
  15796. return (x$5 = t.ext, x$6 = u.ext, (x$5.$high === x$6.$high && x$5.$low === x$6.$low));
  15797. }
  15798. return (x$7 = t.sec(), x$8 = u.sec(), (x$7.$high === x$8.$high && x$7.$low === x$8.$low)) && (t.nsec() === u.nsec());
  15799. };
  15800. Time.prototype.Equal = function(u) { return this.$val.Equal(u); };
  15801. Month.prototype.String = function() {
  15802. var buf, m, n, x$1;
  15803. m = this.$val;
  15804. if (1 <= m && m <= 12) {
  15805. return (x$1 = m - 1 >> 0, ((x$1 < 0 || x$1 >= months.length) ? ($throwRuntimeError("index out of range"), undefined) : months[x$1]));
  15806. }
  15807. buf = $makeSlice(sliceType$3, 20);
  15808. n = fmtInt(buf, (new $Uint64(0, m)));
  15809. return "%!Month(" + ($bytesToString($subslice(buf, n))) + ")";
  15810. };
  15811. $ptrType(Month).prototype.String = function() { return new Month(this.$get()).String(); };
  15812. Weekday.prototype.String = function() {
  15813. var buf, d, n;
  15814. d = this.$val;
  15815. if (0 <= d && d <= 6) {
  15816. return ((d < 0 || d >= days.length) ? ($throwRuntimeError("index out of range"), undefined) : days[d]);
  15817. }
  15818. buf = $makeSlice(sliceType$3, 20);
  15819. n = fmtInt(buf, (new $Uint64(0, d)));
  15820. return "%!Weekday(" + ($bytesToString($subslice(buf, n))) + ")";
  15821. };
  15822. $ptrType(Weekday).prototype.String = function() { return new Weekday(this.$get()).String(); };
  15823. Time.ptr.prototype.IsZero = function() {
  15824. var t, x$1;
  15825. t = this;
  15826. return (x$1 = t.sec(), (x$1.$high === 0 && x$1.$low === 0)) && (t.nsec() === 0);
  15827. };
  15828. Time.prototype.IsZero = function() { return this.$val.IsZero(); };
  15829. Time.ptr.prototype.abs = function() {
  15830. var _r, _r$1, _tuple, l, offset, sec, t, x$1, x$2, x$3, x$4, x$5, $s, $r;
  15831. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; l = $f.l; offset = $f.offset; sec = $f.sec; t = $f.t; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  15832. t = this;
  15833. l = t.loc;
  15834. /* */ if (l === ptrType$2.nil || l === localLoc) { $s = 1; continue; }
  15835. /* */ $s = 2; continue;
  15836. /* if (l === ptrType$2.nil || l === localLoc) { */ case 1:
  15837. _r = l.get(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  15838. l = _r;
  15839. /* } */ case 2:
  15840. sec = t.unixSec();
  15841. /* */ if (!(l === utcLoc)) { $s = 4; continue; }
  15842. /* */ $s = 5; continue;
  15843. /* if (!(l === utcLoc)) { */ case 4:
  15844. /* */ if (!(l.cacheZone === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec.$high || (x$1.$high === sec.$high && x$1.$low <= sec.$low))) && (x$2 = l.cacheEnd, (sec.$high < x$2.$high || (sec.$high === x$2.$high && sec.$low < x$2.$low)))) { $s = 6; continue; }
  15845. /* */ $s = 7; continue;
  15846. /* if (!(l.cacheZone === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec.$high || (x$1.$high === sec.$high && x$1.$low <= sec.$low))) && (x$2 = l.cacheEnd, (sec.$high < x$2.$high || (sec.$high === x$2.$high && sec.$low < x$2.$low)))) { */ case 6:
  15847. sec = (x$3 = (new $Int64(0, l.cacheZone.offset)), new $Int64(sec.$high + x$3.$high, sec.$low + x$3.$low));
  15848. $s = 8; continue;
  15849. /* } else { */ case 7:
  15850. _r$1 = l.lookup(sec); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  15851. _tuple = _r$1;
  15852. offset = _tuple[1];
  15853. sec = (x$4 = (new $Int64(0, offset)), new $Int64(sec.$high + x$4.$high, sec.$low + x$4.$low));
  15854. /* } */ case 8:
  15855. /* } */ case 5:
  15856. $s = -1; return ((x$5 = new $Int64(sec.$high + 2147483646, sec.$low + 450480384), new $Uint64(x$5.$high, x$5.$low)));
  15857. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.abs }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.l = l; $f.offset = offset; $f.sec = sec; $f.t = t; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.$s = $s; $f.$r = $r; return $f;
  15858. };
  15859. Time.prototype.abs = function() { return this.$val.abs(); };
  15860. Time.ptr.prototype.locabs = function() {
  15861. var _r, _r$1, _tuple, abs, l, name, offset, sec, t, x$1, x$2, x$3, x$4, $s, $r;
  15862. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; abs = $f.abs; l = $f.l; name = $f.name; offset = $f.offset; sec = $f.sec; t = $f.t; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  15863. name = "";
  15864. offset = 0;
  15865. abs = new $Uint64(0, 0);
  15866. t = this;
  15867. l = t.loc;
  15868. /* */ if (l === ptrType$2.nil || l === localLoc) { $s = 1; continue; }
  15869. /* */ $s = 2; continue;
  15870. /* if (l === ptrType$2.nil || l === localLoc) { */ case 1:
  15871. _r = l.get(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  15872. l = _r;
  15873. /* } */ case 2:
  15874. sec = t.unixSec();
  15875. /* */ if (!(l === utcLoc)) { $s = 4; continue; }
  15876. /* */ $s = 5; continue;
  15877. /* if (!(l === utcLoc)) { */ case 4:
  15878. /* */ if (!(l.cacheZone === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec.$high || (x$1.$high === sec.$high && x$1.$low <= sec.$low))) && (x$2 = l.cacheEnd, (sec.$high < x$2.$high || (sec.$high === x$2.$high && sec.$low < x$2.$low)))) { $s = 7; continue; }
  15879. /* */ $s = 8; continue;
  15880. /* if (!(l.cacheZone === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec.$high || (x$1.$high === sec.$high && x$1.$low <= sec.$low))) && (x$2 = l.cacheEnd, (sec.$high < x$2.$high || (sec.$high === x$2.$high && sec.$low < x$2.$low)))) { */ case 7:
  15881. name = l.cacheZone.name;
  15882. offset = l.cacheZone.offset;
  15883. $s = 9; continue;
  15884. /* } else { */ case 8:
  15885. _r$1 = l.lookup(sec); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  15886. _tuple = _r$1;
  15887. name = _tuple[0];
  15888. offset = _tuple[1];
  15889. /* } */ case 9:
  15890. sec = (x$3 = (new $Int64(0, offset)), new $Int64(sec.$high + x$3.$high, sec.$low + x$3.$low));
  15891. $s = 6; continue;
  15892. /* } else { */ case 5:
  15893. name = "UTC";
  15894. /* } */ case 6:
  15895. abs = ((x$4 = new $Int64(sec.$high + 2147483646, sec.$low + 450480384), new $Uint64(x$4.$high, x$4.$low)));
  15896. $s = -1; return [name, offset, abs];
  15897. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.locabs }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.abs = abs; $f.l = l; $f.name = name; $f.offset = offset; $f.sec = sec; $f.t = t; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.$s = $s; $f.$r = $r; return $f;
  15898. };
  15899. Time.prototype.locabs = function() { return this.$val.locabs(); };
  15900. Time.ptr.prototype.Date = function() {
  15901. var _r, _tuple, day, month, t, year, $s, $r;
  15902. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; day = $f.day; month = $f.month; t = $f.t; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  15903. year = 0;
  15904. month = 0;
  15905. day = 0;
  15906. t = this;
  15907. _r = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  15908. _tuple = _r;
  15909. year = _tuple[0];
  15910. month = _tuple[1];
  15911. day = _tuple[2];
  15912. $s = -1; return [year, month, day];
  15913. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Date }; } $f._r = _r; $f._tuple = _tuple; $f.day = day; $f.month = month; $f.t = t; $f.year = year; $f.$s = $s; $f.$r = $r; return $f;
  15914. };
  15915. Time.prototype.Date = function() { return this.$val.Date(); };
  15916. Time.ptr.prototype.Year = function() {
  15917. var _r, _tuple, t, year, $s, $r;
  15918. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; t = $f.t; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  15919. t = this;
  15920. _r = $clone(t, Time).date(false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  15921. _tuple = _r;
  15922. year = _tuple[0];
  15923. $s = -1; return year;
  15924. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Year }; } $f._r = _r; $f._tuple = _tuple; $f.t = t; $f.year = year; $f.$s = $s; $f.$r = $r; return $f;
  15925. };
  15926. Time.prototype.Year = function() { return this.$val.Year(); };
  15927. Time.ptr.prototype.Month = function() {
  15928. var _r, _tuple, month, t, $s, $r;
  15929. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; month = $f.month; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  15930. t = this;
  15931. _r = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  15932. _tuple = _r;
  15933. month = _tuple[1];
  15934. $s = -1; return month;
  15935. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Month }; } $f._r = _r; $f._tuple = _tuple; $f.month = month; $f.t = t; $f.$s = $s; $f.$r = $r; return $f;
  15936. };
  15937. Time.prototype.Month = function() { return this.$val.Month(); };
  15938. Time.ptr.prototype.Day = function() {
  15939. var _r, _tuple, day, t, $s, $r;
  15940. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; day = $f.day; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  15941. t = this;
  15942. _r = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  15943. _tuple = _r;
  15944. day = _tuple[2];
  15945. $s = -1; return day;
  15946. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Day }; } $f._r = _r; $f._tuple = _tuple; $f.day = day; $f.t = t; $f.$s = $s; $f.$r = $r; return $f;
  15947. };
  15948. Time.prototype.Day = function() { return this.$val.Day(); };
  15949. Time.ptr.prototype.Weekday = function() {
  15950. var _r, _r$1, t, $s, $r;
  15951. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  15952. t = this;
  15953. _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  15954. _r$1 = absWeekday(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  15955. $s = -1; return _r$1;
  15956. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Weekday }; } $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.$s = $s; $f.$r = $r; return $f;
  15957. };
  15958. Time.prototype.Weekday = function() { return this.$val.Weekday(); };
  15959. absWeekday = function(abs) {
  15960. var _q, abs, sec;
  15961. sec = $div64((new $Uint64(abs.$high + 0, abs.$low + 86400)), new $Uint64(0, 604800), true);
  15962. return (((_q = ((sec.$low >> 0)) / 86400, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0));
  15963. };
  15964. Time.ptr.prototype.ISOWeek = function() {
  15965. var _q, _r, _r$1, _r$2, _r$3, _r$4, _tuple, day, dec31wday, jan1wday, month, t, wday, week, yday, year, $s, $r;
  15966. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; day = $f.day; dec31wday = $f.dec31wday; jan1wday = $f.jan1wday; month = $f.month; t = $f.t; wday = $f.wday; week = $f.week; yday = $f.yday; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  15967. year = 0;
  15968. week = 0;
  15969. t = this;
  15970. _r = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  15971. _tuple = _r;
  15972. year = _tuple[0];
  15973. month = _tuple[1];
  15974. day = _tuple[2];
  15975. yday = _tuple[3];
  15976. _r$2 = $clone(t, Time).Weekday(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  15977. wday = (_r$1 = (((_r$2 + 6 >> 0) >> 0)) % 7, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero"));
  15978. week = (_q = (((yday - wday >> 0) + 7 >> 0)) / 7, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
  15979. jan1wday = (_r$3 = (((wday - yday >> 0) + 371 >> 0)) % 7, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero"));
  15980. if (1 <= jan1wday && jan1wday <= 3) {
  15981. week = week + (1) >> 0;
  15982. }
  15983. if (week === 0) {
  15984. year = year - (1) >> 0;
  15985. week = 52;
  15986. if ((jan1wday === 4) || ((jan1wday === 5) && isLeap(year))) {
  15987. week = week + (1) >> 0;
  15988. }
  15989. }
  15990. if ((month === 12) && day >= 29 && wday < 3) {
  15991. dec31wday = (_r$4 = (((wday + 31 >> 0) - day >> 0)) % 7, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero"));
  15992. if (0 <= dec31wday && dec31wday <= 2) {
  15993. year = year + (1) >> 0;
  15994. week = 1;
  15995. }
  15996. }
  15997. $s = -1; return [year, week];
  15998. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.ISOWeek }; } $f._q = _q; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f.day = day; $f.dec31wday = dec31wday; $f.jan1wday = jan1wday; $f.month = month; $f.t = t; $f.wday = wday; $f.week = week; $f.yday = yday; $f.year = year; $f.$s = $s; $f.$r = $r; return $f;
  15999. };
  16000. Time.prototype.ISOWeek = function() { return this.$val.ISOWeek(); };
  16001. Time.ptr.prototype.Clock = function() {
  16002. var _r, _r$1, _tuple, hour, min, sec, t, $s, $r;
  16003. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; hour = $f.hour; min = $f.min; sec = $f.sec; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  16004. hour = 0;
  16005. min = 0;
  16006. sec = 0;
  16007. t = this;
  16008. _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  16009. _r$1 = absClock(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  16010. _tuple = _r$1;
  16011. hour = _tuple[0];
  16012. min = _tuple[1];
  16013. sec = _tuple[2];
  16014. $s = -1; return [hour, min, sec];
  16015. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Clock }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.hour = hour; $f.min = min; $f.sec = sec; $f.t = t; $f.$s = $s; $f.$r = $r; return $f;
  16016. };
  16017. Time.prototype.Clock = function() { return this.$val.Clock(); };
  16018. absClock = function(abs) {
  16019. var _q, _q$1, abs, hour, min, sec;
  16020. hour = 0;
  16021. min = 0;
  16022. sec = 0;
  16023. sec = (($div64(abs, new $Uint64(0, 86400), true).$low >> 0));
  16024. hour = (_q = sec / 3600, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
  16025. sec = sec - (($imul(hour, 3600))) >> 0;
  16026. min = (_q$1 = sec / 60, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"));
  16027. sec = sec - (($imul(min, 60))) >> 0;
  16028. return [hour, min, sec];
  16029. };
  16030. Time.ptr.prototype.Hour = function() {
  16031. var _q, _r, t, $s, $r;
  16032. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  16033. t = this;
  16034. _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  16035. $s = -1; return (_q = (($div64(_r, new $Uint64(0, 86400), true).$low >> 0)) / 3600, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
  16036. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Hour }; } $f._q = _q; $f._r = _r; $f.t = t; $f.$s = $s; $f.$r = $r; return $f;
  16037. };
  16038. Time.prototype.Hour = function() { return this.$val.Hour(); };
  16039. Time.ptr.prototype.Minute = function() {
  16040. var _q, _r, t, $s, $r;
  16041. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  16042. t = this;
  16043. _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  16044. $s = -1; return (_q = (($div64(_r, new $Uint64(0, 3600), true).$low >> 0)) / 60, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
  16045. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Minute }; } $f._q = _q; $f._r = _r; $f.t = t; $f.$s = $s; $f.$r = $r; return $f;
  16046. };
  16047. Time.prototype.Minute = function() { return this.$val.Minute(); };
  16048. Time.ptr.prototype.Second = function() {
  16049. var _r, t, $s, $r;
  16050. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  16051. t = this;
  16052. _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  16053. $s = -1; return (($div64(_r, new $Uint64(0, 60), true).$low >> 0));
  16054. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Second }; } $f._r = _r; $f.t = t; $f.$s = $s; $f.$r = $r; return $f;
  16055. };
  16056. Time.prototype.Second = function() { return this.$val.Second(); };
  16057. Time.ptr.prototype.Nanosecond = function() {
  16058. var t;
  16059. t = this;
  16060. return ((t.nsec() >> 0));
  16061. };
  16062. Time.prototype.Nanosecond = function() { return this.$val.Nanosecond(); };
  16063. Time.ptr.prototype.YearDay = function() {
  16064. var _r, _tuple, t, yday, $s, $r;
  16065. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; t = $f.t; yday = $f.yday; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  16066. t = this;
  16067. _r = $clone(t, Time).date(false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  16068. _tuple = _r;
  16069. yday = _tuple[3];
  16070. $s = -1; return yday + 1 >> 0;
  16071. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.YearDay }; } $f._r = _r; $f._tuple = _tuple; $f.t = t; $f.yday = yday; $f.$s = $s; $f.$r = $r; return $f;
  16072. };
  16073. Time.prototype.YearDay = function() { return this.$val.YearDay(); };
  16074. Duration.prototype.String = function() {
  16075. var _tuple, _tuple$1, buf, d, neg, prec, u, w;
  16076. d = this;
  16077. buf = arrayType$3.zero();
  16078. w = 32;
  16079. u = (new $Uint64(d.$high, d.$low));
  16080. neg = (d.$high < 0 || (d.$high === 0 && d.$low < 0));
  16081. if (neg) {
  16082. u = new $Uint64(-u.$high, -u.$low);
  16083. }
  16084. if ((u.$high < 0 || (u.$high === 0 && u.$low < 1000000000))) {
  16085. prec = 0;
  16086. w = w - (1) >> 0;
  16087. ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 115);
  16088. w = w - (1) >> 0;
  16089. if ((u.$high === 0 && u.$low === 0)) {
  16090. return "0s";
  16091. } else if ((u.$high < 0 || (u.$high === 0 && u.$low < 1000))) {
  16092. prec = 0;
  16093. ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 110);
  16094. } else if ((u.$high < 0 || (u.$high === 0 && u.$low < 1000000))) {
  16095. prec = 3;
  16096. w = w - (1) >> 0;
  16097. $copyString($subslice(new sliceType$3(buf), w), "\xC2\xB5");
  16098. } else {
  16099. prec = 6;
  16100. ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 109);
  16101. }
  16102. _tuple = fmtFrac($subslice(new sliceType$3(buf), 0, w), u, prec);
  16103. w = _tuple[0];
  16104. u = _tuple[1];
  16105. w = fmtInt($subslice(new sliceType$3(buf), 0, w), u);
  16106. } else {
  16107. w = w - (1) >> 0;
  16108. ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 115);
  16109. _tuple$1 = fmtFrac($subslice(new sliceType$3(buf), 0, w), u, 9);
  16110. w = _tuple$1[0];
  16111. u = _tuple$1[1];
  16112. w = fmtInt($subslice(new sliceType$3(buf), 0, w), $div64(u, new $Uint64(0, 60), true));
  16113. u = $div64(u, (new $Uint64(0, 60)), false);
  16114. if ((u.$high > 0 || (u.$high === 0 && u.$low > 0))) {
  16115. w = w - (1) >> 0;
  16116. ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 109);
  16117. w = fmtInt($subslice(new sliceType$3(buf), 0, w), $div64(u, new $Uint64(0, 60), true));
  16118. u = $div64(u, (new $Uint64(0, 60)), false);
  16119. if ((u.$high > 0 || (u.$high === 0 && u.$low > 0))) {
  16120. w = w - (1) >> 0;
  16121. ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 104);
  16122. w = fmtInt($subslice(new sliceType$3(buf), 0, w), u);
  16123. }
  16124. }
  16125. }
  16126. if (neg) {
  16127. w = w - (1) >> 0;
  16128. ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 45);
  16129. }
  16130. return ($bytesToString($subslice(new sliceType$3(buf), w)));
  16131. };
  16132. $ptrType(Duration).prototype.String = function() { return this.$get().String(); };
  16133. fmtFrac = function(buf, v, prec) {
  16134. var _tmp, _tmp$1, buf, digit, i, nv, nw, prec, print, v, w;
  16135. nw = 0;
  16136. nv = new $Uint64(0, 0);
  16137. w = buf.$length;
  16138. print = false;
  16139. i = 0;
  16140. while (true) {
  16141. if (!(i < prec)) { break; }
  16142. digit = $div64(v, new $Uint64(0, 10), true);
  16143. print = print || !((digit.$high === 0 && digit.$low === 0));
  16144. if (print) {
  16145. w = w - (1) >> 0;
  16146. ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = (((digit.$low << 24 >>> 24)) + 48 << 24 >>> 24));
  16147. }
  16148. v = $div64(v, (new $Uint64(0, 10)), false);
  16149. i = i + (1) >> 0;
  16150. }
  16151. if (print) {
  16152. w = w - (1) >> 0;
  16153. ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 46);
  16154. }
  16155. _tmp = w;
  16156. _tmp$1 = v;
  16157. nw = _tmp;
  16158. nv = _tmp$1;
  16159. return [nw, nv];
  16160. };
  16161. fmtInt = function(buf, v) {
  16162. var buf, v, w;
  16163. w = buf.$length;
  16164. if ((v.$high === 0 && v.$low === 0)) {
  16165. w = w - (1) >> 0;
  16166. ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 48);
  16167. } else {
  16168. while (true) {
  16169. if (!((v.$high > 0 || (v.$high === 0 && v.$low > 0)))) { break; }
  16170. w = w - (1) >> 0;
  16171. ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = ((($div64(v, new $Uint64(0, 10), true).$low << 24 >>> 24)) + 48 << 24 >>> 24));
  16172. v = $div64(v, (new $Uint64(0, 10)), false);
  16173. }
  16174. }
  16175. return w;
  16176. };
  16177. Duration.prototype.Nanoseconds = function() {
  16178. var d;
  16179. d = this;
  16180. return (new $Int64(d.$high, d.$low));
  16181. };
  16182. $ptrType(Duration).prototype.Nanoseconds = function() { return this.$get().Nanoseconds(); };
  16183. Duration.prototype.Seconds = function() {
  16184. var d, nsec, sec;
  16185. d = this;
  16186. sec = $div64(d, new Duration(0, 1000000000), false);
  16187. nsec = $div64(d, new Duration(0, 1000000000), true);
  16188. return ($flatten64(sec)) + ($flatten64(nsec)) / 1e+09;
  16189. };
  16190. $ptrType(Duration).prototype.Seconds = function() { return this.$get().Seconds(); };
  16191. Duration.prototype.Minutes = function() {
  16192. var d, min, nsec;
  16193. d = this;
  16194. min = $div64(d, new Duration(13, 4165425152), false);
  16195. nsec = $div64(d, new Duration(13, 4165425152), true);
  16196. return ($flatten64(min)) + ($flatten64(nsec)) / 6e+10;
  16197. };
  16198. $ptrType(Duration).prototype.Minutes = function() { return this.$get().Minutes(); };
  16199. Duration.prototype.Hours = function() {
  16200. var d, hour, nsec;
  16201. d = this;
  16202. hour = $div64(d, new Duration(838, 817405952), false);
  16203. nsec = $div64(d, new Duration(838, 817405952), true);
  16204. return ($flatten64(hour)) + ($flatten64(nsec)) / 3.6e+12;
  16205. };
  16206. $ptrType(Duration).prototype.Hours = function() { return this.$get().Hours(); };
  16207. Duration.prototype.Truncate = function(m) {
  16208. var d, m, x$1;
  16209. d = this;
  16210. if ((m.$high < 0 || (m.$high === 0 && m.$low <= 0))) {
  16211. return d;
  16212. }
  16213. return (x$1 = $div64(d, m, true), new Duration(d.$high - x$1.$high, d.$low - x$1.$low));
  16214. };
  16215. $ptrType(Duration).prototype.Truncate = function(m) { return this.$get().Truncate(m); };
  16216. lessThanHalf = function(x$1, y) {
  16217. var x$1, x$2, x$3, x$4, x$5, y;
  16218. return (x$2 = (x$3 = (new $Uint64(x$1.$high, x$1.$low)), x$4 = (new $Uint64(x$1.$high, x$1.$low)), new $Uint64(x$3.$high + x$4.$high, x$3.$low + x$4.$low)), x$5 = (new $Uint64(y.$high, y.$low)), (x$2.$high < x$5.$high || (x$2.$high === x$5.$high && x$2.$low < x$5.$low)));
  16219. };
  16220. Duration.prototype.Round = function(m) {
  16221. var d, d1, d1$1, m, r, x$1, x$2;
  16222. d = this;
  16223. if ((m.$high < 0 || (m.$high === 0 && m.$low <= 0))) {
  16224. return d;
  16225. }
  16226. r = $div64(d, m, true);
  16227. if ((d.$high < 0 || (d.$high === 0 && d.$low < 0))) {
  16228. r = new Duration(-r.$high, -r.$low);
  16229. if (lessThanHalf(r, m)) {
  16230. return new Duration(d.$high + r.$high, d.$low + r.$low);
  16231. }
  16232. d1 = (x$1 = new Duration(d.$high - m.$high, d.$low - m.$low), new Duration(x$1.$high + r.$high, x$1.$low + r.$low));
  16233. if ((d1.$high < d.$high || (d1.$high === d.$high && d1.$low < d.$low))) {
  16234. return d1;
  16235. }
  16236. return new Duration(-2147483648, 0);
  16237. }
  16238. if (lessThanHalf(r, m)) {
  16239. return new Duration(d.$high - r.$high, d.$low - r.$low);
  16240. }
  16241. d1$1 = (x$2 = new Duration(d.$high + m.$high, d.$low + m.$low), new Duration(x$2.$high - r.$high, x$2.$low - r.$low));
  16242. if ((d1$1.$high > d.$high || (d1$1.$high === d.$high && d1$1.$low > d.$low))) {
  16243. return d1$1;
  16244. }
  16245. return new Duration(2147483647, 4294967295);
  16246. };
  16247. $ptrType(Duration).prototype.Round = function(m) { return this.$get().Round(m); };
  16248. Time.ptr.prototype.Add = function(d) {
  16249. var d, dsec, nsec, t, te, x$1, x$10, x$11, x$12, x$13, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
  16250. t = this;
  16251. dsec = ((x$1 = $div64(d, new Duration(0, 1000000000), false), new $Int64(x$1.$high, x$1.$low)));
  16252. nsec = t.nsec() + (((x$2 = $div64(d, new Duration(0, 1000000000), true), x$2.$low + ((x$2.$high >> 31) * 4294967296)) >> 0)) >> 0;
  16253. if (nsec >= 1000000000) {
  16254. dsec = (x$3 = new $Int64(0, 1), new $Int64(dsec.$high + x$3.$high, dsec.$low + x$3.$low));
  16255. nsec = nsec - (1000000000) >> 0;
  16256. } else if (nsec < 0) {
  16257. dsec = (x$4 = new $Int64(0, 1), new $Int64(dsec.$high - x$4.$high, dsec.$low - x$4.$low));
  16258. nsec = nsec + (1000000000) >> 0;
  16259. }
  16260. t.wall = (x$5 = (x$6 = t.wall, new $Uint64(x$6.$high & ~0, (x$6.$low & ~1073741823) >>> 0)), x$7 = (new $Uint64(0, nsec)), new $Uint64(x$5.$high | x$7.$high, (x$5.$low | x$7.$low) >>> 0));
  16261. t.addSec(dsec);
  16262. if (!((x$8 = (x$9 = t.wall, new $Uint64(x$9.$high & 2147483648, (x$9.$low & 0) >>> 0)), (x$8.$high === 0 && x$8.$low === 0)))) {
  16263. te = (x$10 = t.ext, x$11 = (new $Int64(d.$high, d.$low)), new $Int64(x$10.$high + x$11.$high, x$10.$low + x$11.$low));
  16264. if ((d.$high < 0 || (d.$high === 0 && d.$low < 0)) && (x$12 = t.ext, (te.$high > x$12.$high || (te.$high === x$12.$high && te.$low > x$12.$low))) || (d.$high > 0 || (d.$high === 0 && d.$low > 0)) && (x$13 = t.ext, (te.$high < x$13.$high || (te.$high === x$13.$high && te.$low < x$13.$low)))) {
  16265. t.stripMono();
  16266. } else {
  16267. t.ext = te;
  16268. }
  16269. }
  16270. return t;
  16271. };
  16272. Time.prototype.Add = function(d) { return this.$val.Add(d); };
  16273. Time.ptr.prototype.Sub = function(u) {
  16274. var d, d$1, t, te, u, ue, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
  16275. t = this;
  16276. if (!((x$1 = (x$2 = (x$3 = t.wall, x$4 = u.wall, new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0)), new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) {
  16277. te = t.ext;
  16278. ue = u.ext;
  16279. d = ((x$5 = new $Int64(te.$high - ue.$high, te.$low - ue.$low), new Duration(x$5.$high, x$5.$low)));
  16280. if ((d.$high < 0 || (d.$high === 0 && d.$low < 0)) && (te.$high > ue.$high || (te.$high === ue.$high && te.$low > ue.$low))) {
  16281. return new Duration(2147483647, 4294967295);
  16282. }
  16283. if ((d.$high > 0 || (d.$high === 0 && d.$low > 0)) && (te.$high < ue.$high || (te.$high === ue.$high && te.$low < ue.$low))) {
  16284. return new Duration(-2147483648, 0);
  16285. }
  16286. return d;
  16287. }
  16288. d$1 = (x$6 = $mul64(((x$7 = (x$8 = t.sec(), x$9 = u.sec(), new $Int64(x$8.$high - x$9.$high, x$8.$low - x$9.$low)), new Duration(x$7.$high, x$7.$low))), new Duration(0, 1000000000)), x$10 = (new Duration(0, (t.nsec() - u.nsec() >> 0))), new Duration(x$6.$high + x$10.$high, x$6.$low + x$10.$low));
  16289. if ($clone($clone(u, Time).Add(d$1), Time).Equal($clone(t, Time))) {
  16290. return d$1;
  16291. } else if ($clone(t, Time).Before($clone(u, Time))) {
  16292. return new Duration(-2147483648, 0);
  16293. } else {
  16294. return new Duration(2147483647, 4294967295);
  16295. }
  16296. };
  16297. Time.prototype.Sub = function(u) { return this.$val.Sub(u); };
  16298. Until = function(t) {
  16299. var now$1, t, x$1, x$2, x$3;
  16300. now$1 = new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil);
  16301. if (!((x$1 = (x$2 = t.wall, new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) {
  16302. Time.copy(now$1, new Time.ptr(new $Uint64(2147483648, 0), (x$3 = runtimeNano(), new $Int64(x$3.$high - startNano.$high, x$3.$low - startNano.$low)), ptrType$2.nil));
  16303. } else {
  16304. Time.copy(now$1, Now());
  16305. }
  16306. return $clone(t, Time).Sub($clone(now$1, Time));
  16307. };
  16308. $pkg.Until = Until;
  16309. Time.ptr.prototype.AddDate = function(years, months$1, days$1) {
  16310. var _r, _r$1, _r$2, _tuple, _tuple$1, day, days$1, hour, min, month, months$1, sec, t, year, years, $s, $r;
  16311. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; day = $f.day; days$1 = $f.days$1; hour = $f.hour; min = $f.min; month = $f.month; months$1 = $f.months$1; sec = $f.sec; t = $f.t; year = $f.year; years = $f.years; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  16312. t = this;
  16313. _r = $clone(t, Time).Date(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  16314. _tuple = _r;
  16315. year = _tuple[0];
  16316. month = _tuple[1];
  16317. day = _tuple[2];
  16318. _r$1 = $clone(t, Time).Clock(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  16319. _tuple$1 = _r$1;
  16320. hour = _tuple$1[0];
  16321. min = _tuple$1[1];
  16322. sec = _tuple$1[2];
  16323. _r$2 = Date(year + years >> 0, month + ((months$1 >> 0)) >> 0, day + days$1 >> 0, hour, min, sec, ((t.nsec() >> 0)), $clone(t, Time).Location()); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  16324. $s = -1; return _r$2;
  16325. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.AddDate }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.day = day; $f.days$1 = days$1; $f.hour = hour; $f.min = min; $f.month = month; $f.months$1 = months$1; $f.sec = sec; $f.t = t; $f.year = year; $f.years = years; $f.$s = $s; $f.$r = $r; return $f;
  16326. };
  16327. Time.prototype.AddDate = function(years, months$1, days$1) { return this.$val.AddDate(years, months$1, days$1); };
  16328. Time.ptr.prototype.date = function(full) {
  16329. var _r, _r$1, _tuple, day, full, month, t, yday, year, $s, $r;
  16330. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; day = $f.day; full = $f.full; month = $f.month; t = $f.t; yday = $f.yday; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  16331. year = 0;
  16332. month = 0;
  16333. day = 0;
  16334. yday = 0;
  16335. t = this;
  16336. _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  16337. _r$1 = absDate(_r, full); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  16338. _tuple = _r$1;
  16339. year = _tuple[0];
  16340. month = _tuple[1];
  16341. day = _tuple[2];
  16342. yday = _tuple[3];
  16343. $s = -1; return [year, month, day, yday];
  16344. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.date }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.day = day; $f.full = full; $f.month = month; $f.t = t; $f.yday = yday; $f.year = year; $f.$s = $s; $f.$r = $r; return $f;
  16345. };
  16346. Time.prototype.date = function(full) { return this.$val.date(full); };
  16347. absDate = function(abs, full) {
  16348. var _q, abs, begin, d, day, end, full, month, n, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, yday, year;
  16349. year = 0;
  16350. month = 0;
  16351. day = 0;
  16352. yday = 0;
  16353. d = $div64(abs, new $Uint64(0, 86400), false);
  16354. n = $div64(d, new $Uint64(0, 146097), false);
  16355. y = $mul64(new $Uint64(0, 400), n);
  16356. d = (x$1 = $mul64(new $Uint64(0, 146097), n), new $Uint64(d.$high - x$1.$high, d.$low - x$1.$low));
  16357. n = $div64(d, new $Uint64(0, 36524), false);
  16358. n = (x$2 = $shiftRightUint64(n, 2), new $Uint64(n.$high - x$2.$high, n.$low - x$2.$low));
  16359. y = (x$3 = $mul64(new $Uint64(0, 100), n), new $Uint64(y.$high + x$3.$high, y.$low + x$3.$low));
  16360. d = (x$4 = $mul64(new $Uint64(0, 36524), n), new $Uint64(d.$high - x$4.$high, d.$low - x$4.$low));
  16361. n = $div64(d, new $Uint64(0, 1461), false);
  16362. y = (x$5 = $mul64(new $Uint64(0, 4), n), new $Uint64(y.$high + x$5.$high, y.$low + x$5.$low));
  16363. d = (x$6 = $mul64(new $Uint64(0, 1461), n), new $Uint64(d.$high - x$6.$high, d.$low - x$6.$low));
  16364. n = $div64(d, new $Uint64(0, 365), false);
  16365. n = (x$7 = $shiftRightUint64(n, 2), new $Uint64(n.$high - x$7.$high, n.$low - x$7.$low));
  16366. y = (x$8 = n, new $Uint64(y.$high + x$8.$high, y.$low + x$8.$low));
  16367. d = (x$9 = $mul64(new $Uint64(0, 365), n), new $Uint64(d.$high - x$9.$high, d.$low - x$9.$low));
  16368. year = (((x$10 = (x$11 = (new $Int64(y.$high, y.$low)), new $Int64(x$11.$high + -69, x$11.$low + 4075721025)), x$10.$low + ((x$10.$high >> 31) * 4294967296)) >> 0));
  16369. yday = ((d.$low >> 0));
  16370. if (!full) {
  16371. return [year, month, day, yday];
  16372. }
  16373. day = yday;
  16374. if (isLeap(year)) {
  16375. if (day > 59) {
  16376. day = day - (1) >> 0;
  16377. } else if ((day === 59)) {
  16378. month = 2;
  16379. day = 29;
  16380. return [year, month, day, yday];
  16381. }
  16382. }
  16383. month = (((_q = day / 31, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0));
  16384. end = (((x$12 = month + 1 >> 0, ((x$12 < 0 || x$12 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$12])) >> 0));
  16385. begin = 0;
  16386. if (day >= end) {
  16387. month = month + (1) >> 0;
  16388. begin = end;
  16389. } else {
  16390. begin = ((((month < 0 || month >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[month]) >> 0));
  16391. }
  16392. month = month + (1) >> 0;
  16393. day = (day - begin >> 0) + 1 >> 0;
  16394. return [year, month, day, yday];
  16395. };
  16396. daysIn = function(m, year) {
  16397. var m, x$1, year;
  16398. if ((m === 2) && isLeap(year)) {
  16399. return 29;
  16400. }
  16401. return (((((m < 0 || m >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[m]) - (x$1 = m - 1 >> 0, ((x$1 < 0 || x$1 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$1])) >> 0) >> 0));
  16402. };
  16403. Now = function() {
  16404. var _tuple, mono, nsec, sec, x$1, x$2, x$3, x$4, x$5, x$6;
  16405. _tuple = now();
  16406. sec = _tuple[0];
  16407. nsec = _tuple[1];
  16408. mono = _tuple[2];
  16409. mono = (x$1 = startNano, new $Int64(mono.$high - x$1.$high, mono.$low - x$1.$low));
  16410. sec = (x$2 = new $Int64(0, 2682288000), new $Int64(sec.$high + x$2.$high, sec.$low + x$2.$low));
  16411. if (!((x$3 = $shiftRightUint64((new $Uint64(sec.$high, sec.$low)), 33), (x$3.$high === 0 && x$3.$low === 0)))) {
  16412. return new Time.ptr((new $Uint64(0, nsec)), new $Int64(sec.$high + 13, sec.$low + 3618733952), $pkg.Local);
  16413. }
  16414. return new Time.ptr((x$4 = (x$5 = $shiftLeft64((new $Uint64(sec.$high, sec.$low)), 30), new $Uint64(2147483648 | x$5.$high, (0 | x$5.$low) >>> 0)), x$6 = (new $Uint64(0, nsec)), new $Uint64(x$4.$high | x$6.$high, (x$4.$low | x$6.$low) >>> 0)), mono, $pkg.Local);
  16415. };
  16416. $pkg.Now = Now;
  16417. unixTime = function(sec, nsec) {
  16418. var nsec, sec;
  16419. return new Time.ptr((new $Uint64(0, nsec)), new $Int64(sec.$high + 14, sec.$low + 2006054656), $pkg.Local);
  16420. };
  16421. Time.ptr.prototype.UTC = function() {
  16422. var t;
  16423. t = this;
  16424. t.setLoc(utcLoc);
  16425. return t;
  16426. };
  16427. Time.prototype.UTC = function() { return this.$val.UTC(); };
  16428. Time.ptr.prototype.Local = function() {
  16429. var t;
  16430. t = this;
  16431. t.setLoc($pkg.Local);
  16432. return t;
  16433. };
  16434. Time.prototype.Local = function() { return this.$val.Local(); };
  16435. Time.ptr.prototype.In = function(loc) {
  16436. var loc, t;
  16437. t = this;
  16438. if (loc === ptrType$2.nil) {
  16439. $panic(new $String("time: missing Location in call to Time.In"));
  16440. }
  16441. t.setLoc(loc);
  16442. return t;
  16443. };
  16444. Time.prototype.In = function(loc) { return this.$val.In(loc); };
  16445. Time.ptr.prototype.Location = function() {
  16446. var l, t;
  16447. t = this;
  16448. l = t.loc;
  16449. if (l === ptrType$2.nil) {
  16450. l = $pkg.UTC;
  16451. }
  16452. return l;
  16453. };
  16454. Time.prototype.Location = function() { return this.$val.Location(); };
  16455. Time.ptr.prototype.Zone = function() {
  16456. var _r, _tuple, name, offset, t, $s, $r;
  16457. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; name = $f.name; offset = $f.offset; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  16458. name = "";
  16459. offset = 0;
  16460. t = this;
  16461. _r = t.loc.lookup(t.unixSec()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  16462. _tuple = _r;
  16463. name = _tuple[0];
  16464. offset = _tuple[1];
  16465. $s = -1; return [name, offset];
  16466. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Zone }; } $f._r = _r; $f._tuple = _tuple; $f.name = name; $f.offset = offset; $f.t = t; $f.$s = $s; $f.$r = $r; return $f;
  16467. };
  16468. Time.prototype.Zone = function() { return this.$val.Zone(); };
  16469. Time.ptr.prototype.Unix = function() {
  16470. var t;
  16471. t = this;
  16472. return t.unixSec();
  16473. };
  16474. Time.prototype.Unix = function() { return this.$val.Unix(); };
  16475. Time.ptr.prototype.UnixNano = function() {
  16476. var t, x$1, x$2;
  16477. t = this;
  16478. return (x$1 = $mul64((t.unixSec()), new $Int64(0, 1000000000)), x$2 = (new $Int64(0, t.nsec())), new $Int64(x$1.$high + x$2.$high, x$1.$low + x$2.$low));
  16479. };
  16480. Time.prototype.UnixNano = function() { return this.$val.UnixNano(); };
  16481. Time.ptr.prototype.MarshalBinary = function() {
  16482. var _q, _r, _r$1, _tuple, enc, nsec, offset, offsetMin, sec, t, $s, $r;
  16483. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; enc = $f.enc; nsec = $f.nsec; offset = $f.offset; offsetMin = $f.offsetMin; sec = $f.sec; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  16484. t = this;
  16485. offsetMin = 0;
  16486. /* */ if ($clone(t, Time).Location() === $pkg.UTC) { $s = 1; continue; }
  16487. /* */ $s = 2; continue;
  16488. /* if ($clone(t, Time).Location() === $pkg.UTC) { */ case 1:
  16489. offsetMin = -1;
  16490. $s = 3; continue;
  16491. /* } else { */ case 2:
  16492. _r = $clone(t, Time).Zone(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  16493. _tuple = _r;
  16494. offset = _tuple[1];
  16495. if (!(((_r$1 = offset % 60, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0))) {
  16496. $s = -1; return [sliceType$3.nil, errors.New("Time.MarshalBinary: zone offset has fractional minute")];
  16497. }
  16498. offset = (_q = offset / (60), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
  16499. if (offset < -32768 || (offset === -1) || offset > 32767) {
  16500. $s = -1; return [sliceType$3.nil, errors.New("Time.MarshalBinary: unexpected zone offset")];
  16501. }
  16502. offsetMin = ((offset << 16 >> 16));
  16503. /* } */ case 3:
  16504. sec = t.sec();
  16505. nsec = t.nsec();
  16506. enc = new sliceType$3([1, (($shiftRightInt64(sec, 56).$low << 24 >>> 24)), (($shiftRightInt64(sec, 48).$low << 24 >>> 24)), (($shiftRightInt64(sec, 40).$low << 24 >>> 24)), (($shiftRightInt64(sec, 32).$low << 24 >>> 24)), (($shiftRightInt64(sec, 24).$low << 24 >>> 24)), (($shiftRightInt64(sec, 16).$low << 24 >>> 24)), (($shiftRightInt64(sec, 8).$low << 24 >>> 24)), ((sec.$low << 24 >>> 24)), (((nsec >> 24 >> 0) << 24 >>> 24)), (((nsec >> 16 >> 0) << 24 >>> 24)), (((nsec >> 8 >> 0) << 24 >>> 24)), ((nsec << 24 >>> 24)), (((offsetMin >> 8 << 16 >> 16) << 24 >>> 24)), ((offsetMin << 24 >>> 24))]);
  16507. $s = -1; return [enc, $ifaceNil];
  16508. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.MarshalBinary }; } $f._q = _q; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.enc = enc; $f.nsec = nsec; $f.offset = offset; $f.offsetMin = offsetMin; $f.sec = sec; $f.t = t; $f.$s = $s; $f.$r = $r; return $f;
  16509. };
  16510. Time.prototype.MarshalBinary = function() { return this.$val.MarshalBinary(); };
  16511. Time.ptr.prototype.UnmarshalBinary = function(data) {
  16512. var _r, _tuple, buf, data, localoff, nsec, offset, sec, t, x$1, x$10, x$11, x$12, x$13, x$14, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r;
  16513. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; buf = $f.buf; data = $f.data; localoff = $f.localoff; nsec = $f.nsec; offset = $f.offset; sec = $f.sec; t = $f.t; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  16514. t = this;
  16515. buf = data;
  16516. if (buf.$length === 0) {
  16517. $s = -1; return errors.New("Time.UnmarshalBinary: no data");
  16518. }
  16519. if (!(((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) === 1))) {
  16520. $s = -1; return errors.New("Time.UnmarshalBinary: unsupported version");
  16521. }
  16522. if (!((buf.$length === 15))) {
  16523. $s = -1; return errors.New("Time.UnmarshalBinary: invalid length");
  16524. }
  16525. buf = $subslice(buf, 1);
  16526. sec = (x$1 = (x$2 = (x$3 = (x$4 = (x$5 = (x$6 = (x$7 = (new $Int64(0, (7 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 7]))), x$8 = $shiftLeft64((new $Int64(0, (6 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 6]))), 8), new $Int64(x$7.$high | x$8.$high, (x$7.$low | x$8.$low) >>> 0)), x$9 = $shiftLeft64((new $Int64(0, (5 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 5]))), 16), new $Int64(x$6.$high | x$9.$high, (x$6.$low | x$9.$low) >>> 0)), x$10 = $shiftLeft64((new $Int64(0, (4 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 4]))), 24), new $Int64(x$5.$high | x$10.$high, (x$5.$low | x$10.$low) >>> 0)), x$11 = $shiftLeft64((new $Int64(0, (3 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 3]))), 32), new $Int64(x$4.$high | x$11.$high, (x$4.$low | x$11.$low) >>> 0)), x$12 = $shiftLeft64((new $Int64(0, (2 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 2]))), 40), new $Int64(x$3.$high | x$12.$high, (x$3.$low | x$12.$low) >>> 0)), x$13 = $shiftLeft64((new $Int64(0, (1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]))), 48), new $Int64(x$2.$high | x$13.$high, (x$2.$low | x$13.$low) >>> 0)), x$14 = $shiftLeft64((new $Int64(0, (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]))), 56), new $Int64(x$1.$high | x$14.$high, (x$1.$low | x$14.$low) >>> 0));
  16527. buf = $subslice(buf, 8);
  16528. nsec = (((((3 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 3]) >> 0)) | ((((2 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 2]) >> 0)) << 8 >> 0)) | ((((1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]) >> 0)) << 16 >> 0)) | ((((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) >> 0)) << 24 >> 0);
  16529. buf = $subslice(buf, 4);
  16530. offset = $imul(((((((1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]) << 16 >> 16)) | ((((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) << 16 >> 16)) << 8 << 16 >> 16)) >> 0)), 60);
  16531. Time.copy(t, new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil));
  16532. t.wall = (new $Uint64(0, nsec));
  16533. t.ext = sec;
  16534. /* */ if (offset === -60) { $s = 1; continue; }
  16535. /* */ $s = 2; continue;
  16536. /* if (offset === -60) { */ case 1:
  16537. t.setLoc(utcLoc);
  16538. $s = 3; continue;
  16539. /* } else { */ case 2:
  16540. _r = $pkg.Local.lookup(t.unixSec()); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  16541. _tuple = _r;
  16542. localoff = _tuple[1];
  16543. if (offset === localoff) {
  16544. t.setLoc($pkg.Local);
  16545. } else {
  16546. t.setLoc(FixedZone("", offset));
  16547. }
  16548. /* } */ case 3:
  16549. $s = -1; return $ifaceNil;
  16550. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.UnmarshalBinary }; } $f._r = _r; $f._tuple = _tuple; $f.buf = buf; $f.data = data; $f.localoff = localoff; $f.nsec = nsec; $f.offset = offset; $f.sec = sec; $f.t = t; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.$s = $s; $f.$r = $r; return $f;
  16551. };
  16552. Time.prototype.UnmarshalBinary = function(data) { return this.$val.UnmarshalBinary(data); };
  16553. Time.ptr.prototype.GobEncode = function() {
  16554. var _r, t, $s, $r;
  16555. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  16556. t = this;
  16557. _r = $clone(t, Time).MarshalBinary(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  16558. $s = -1; return _r;
  16559. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.GobEncode }; } $f._r = _r; $f.t = t; $f.$s = $s; $f.$r = $r; return $f;
  16560. };
  16561. Time.prototype.GobEncode = function() { return this.$val.GobEncode(); };
  16562. Time.ptr.prototype.GobDecode = function(data) {
  16563. var _r, data, t, $s, $r;
  16564. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; data = $f.data; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  16565. t = this;
  16566. _r = t.UnmarshalBinary(data); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  16567. $s = -1; return _r;
  16568. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.GobDecode }; } $f._r = _r; $f.data = data; $f.t = t; $f.$s = $s; $f.$r = $r; return $f;
  16569. };
  16570. Time.prototype.GobDecode = function(data) { return this.$val.GobDecode(data); };
  16571. Time.ptr.prototype.MarshalJSON = function() {
  16572. var _r, _r$1, b, t, y, $s, $r;
  16573. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; b = $f.b; t = $f.t; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  16574. t = this;
  16575. _r = $clone(t, Time).Year(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  16576. y = _r;
  16577. if (y < 0 || y >= 10000) {
  16578. $s = -1; return [sliceType$3.nil, errors.New("Time.MarshalJSON: year outside of range [0,9999]")];
  16579. }
  16580. b = $makeSlice(sliceType$3, 0, 37);
  16581. b = $append(b, 34);
  16582. _r$1 = $clone(t, Time).AppendFormat(b, "2006-01-02T15:04:05.999999999Z07:00"); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  16583. b = _r$1;
  16584. b = $append(b, 34);
  16585. $s = -1; return [b, $ifaceNil];
  16586. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.MarshalJSON }; } $f._r = _r; $f._r$1 = _r$1; $f.b = b; $f.t = t; $f.y = y; $f.$s = $s; $f.$r = $r; return $f;
  16587. };
  16588. Time.prototype.MarshalJSON = function() { return this.$val.MarshalJSON(); };
  16589. Time.ptr.prototype.UnmarshalJSON = function(data) {
  16590. var _r, _tuple, data, err, t, $s, $r;
  16591. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; data = $f.data; err = $f.err; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  16592. t = this;
  16593. if (($bytesToString(data)) === "null") {
  16594. $s = -1; return $ifaceNil;
  16595. }
  16596. err = $ifaceNil;
  16597. _r = Parse("\"2006-01-02T15:04:05Z07:00\"", ($bytesToString(data))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  16598. _tuple = _r;
  16599. Time.copy(t, _tuple[0]);
  16600. err = _tuple[1];
  16601. $s = -1; return err;
  16602. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.UnmarshalJSON }; } $f._r = _r; $f._tuple = _tuple; $f.data = data; $f.err = err; $f.t = t; $f.$s = $s; $f.$r = $r; return $f;
  16603. };
  16604. Time.prototype.UnmarshalJSON = function(data) { return this.$val.UnmarshalJSON(data); };
  16605. Time.ptr.prototype.MarshalText = function() {
  16606. var _r, _r$1, b, t, y, $s, $r;
  16607. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; b = $f.b; t = $f.t; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  16608. t = this;
  16609. _r = $clone(t, Time).Year(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  16610. y = _r;
  16611. if (y < 0 || y >= 10000) {
  16612. $s = -1; return [sliceType$3.nil, errors.New("Time.MarshalText: year outside of range [0,9999]")];
  16613. }
  16614. b = $makeSlice(sliceType$3, 0, 35);
  16615. _r$1 = $clone(t, Time).AppendFormat(b, "2006-01-02T15:04:05.999999999Z07:00"); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  16616. $s = -1; return [_r$1, $ifaceNil];
  16617. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.MarshalText }; } $f._r = _r; $f._r$1 = _r$1; $f.b = b; $f.t = t; $f.y = y; $f.$s = $s; $f.$r = $r; return $f;
  16618. };
  16619. Time.prototype.MarshalText = function() { return this.$val.MarshalText(); };
  16620. Time.ptr.prototype.UnmarshalText = function(data) {
  16621. var _r, _tuple, data, err, t, $s, $r;
  16622. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; data = $f.data; err = $f.err; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  16623. t = this;
  16624. err = $ifaceNil;
  16625. _r = Parse("2006-01-02T15:04:05Z07:00", ($bytesToString(data))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  16626. _tuple = _r;
  16627. Time.copy(t, _tuple[0]);
  16628. err = _tuple[1];
  16629. $s = -1; return err;
  16630. /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.UnmarshalText }; } $f._r = _r; $f._tuple = _tuple; $f.data = data; $f.err = err; $f.t = t; $f.$s = $s; $f.$r = $r; return $f;
  16631. };
  16632. Time.prototype.UnmarshalText = function(data) { return this.$val.UnmarshalText(data); };
  16633. Unix = function(sec, nsec) {
  16634. var n, nsec, sec, x$1, x$2, x$3, x$4;
  16635. if ((nsec.$high < 0 || (nsec.$high === 0 && nsec.$low < 0)) || (nsec.$high > 0 || (nsec.$high === 0 && nsec.$low >= 1000000000))) {
  16636. n = $div64(nsec, new $Int64(0, 1000000000), false);
  16637. sec = (x$1 = n, new $Int64(sec.$high + x$1.$high, sec.$low + x$1.$low));
  16638. nsec = (x$2 = $mul64(n, new $Int64(0, 1000000000)), new $Int64(nsec.$high - x$2.$high, nsec.$low - x$2.$low));
  16639. if ((nsec.$high < 0 || (nsec.$high === 0 && nsec.$low < 0))) {
  16640. nsec = (x$3 = new $Int64(0, 1000000000), new $Int64(nsec.$high + x$3.$high, nsec.$low + x$3.$low));
  16641. sec = (x$4 = new $Int64(0, 1), new $Int64(sec.$high - x$4.$high, sec.$low - x$4.$low));
  16642. }
  16643. }
  16644. return unixTime(sec, (((nsec.$low + ((nsec.$high >> 31) * 4294967296)) >> 0)));
  16645. };
  16646. $pkg.Unix = Unix;
  16647. isLeap = function(year) {
  16648. var _r, _r$1, _r$2, year;
  16649. return ((_r = year % 4, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0) && (!(((_r$1 = year % 100, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0)) || ((_r$2 = year % 400, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) === 0));
  16650. };
  16651. norm = function(hi, lo, base) {
  16652. var _q, _q$1, _tmp, _tmp$1, base, hi, lo, n, n$1, nhi, nlo;
  16653. nhi = 0;
  16654. nlo = 0;
  16655. if (lo < 0) {
  16656. n = (_q = ((-lo - 1 >> 0)) / base, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0;
  16657. hi = hi - (n) >> 0;
  16658. lo = lo + (($imul(n, base))) >> 0;
  16659. }
  16660. if (lo >= base) {
  16661. n$1 = (_q$1 = lo / base, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"));
  16662. hi = hi + (n$1) >> 0;
  16663. lo = lo - (($imul(n$1, base))) >> 0;
  16664. }
  16665. _tmp = hi;
  16666. _tmp$1 = lo;
  16667. nhi = _tmp;
  16668. nlo = _tmp$1;
  16669. return [nhi, nlo];
  16670. };
  16671. Date = function(year, month, day, hour, min, sec, nsec, loc) {
  16672. var _r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, abs, d, day, end, hour, loc, m, min, month, n, nsec, offset, sec, start, t, unix, utc, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, year, $s, $r;
  16673. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; abs = $f.abs; d = $f.d; day = $f.day; end = $f.end; hour = $f.hour; loc = $f.loc; m = $f.m; min = $f.min; month = $f.month; n = $f.n; nsec = $f.nsec; offset = $f.offset; sec = $f.sec; start = $f.start; t = $f.t; unix = $f.unix; utc = $f.utc; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$15 = $f.x$15; x$16 = $f.x$16; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; y = $f.y; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  16674. if (loc === ptrType$2.nil) {
  16675. $panic(new $String("time: missing Location in call to Date"));
  16676. }
  16677. m = ((month >> 0)) - 1 >> 0;
  16678. _tuple = norm(year, m, 12);
  16679. year = _tuple[0];
  16680. m = _tuple[1];
  16681. month = ((m >> 0)) + 1 >> 0;
  16682. _tuple$1 = norm(sec, nsec, 1000000000);
  16683. sec = _tuple$1[0];
  16684. nsec = _tuple$1[1];
  16685. _tuple$2 = norm(min, sec, 60);
  16686. min = _tuple$2[0];
  16687. sec = _tuple$2[1];
  16688. _tuple$3 = norm(hour, min, 60);
  16689. hour = _tuple$3[0];
  16690. min = _tuple$3[1];
  16691. _tuple$4 = norm(day, hour, 24);
  16692. day = _tuple$4[0];
  16693. hour = _tuple$4[1];
  16694. y = ((x$1 = (x$2 = (new $Int64(0, year)), new $Int64(x$2.$high - -69, x$2.$low - 4075721025)), new $Uint64(x$1.$high, x$1.$low)));
  16695. n = $div64(y, new $Uint64(0, 400), false);
  16696. y = (x$3 = $mul64(new $Uint64(0, 400), n), new $Uint64(y.$high - x$3.$high, y.$low - x$3.$low));
  16697. d = $mul64(new $Uint64(0, 146097), n);
  16698. n = $div64(y, new $Uint64(0, 100), false);
  16699. y = (x$4 = $mul64(new $Uint64(0, 100), n), new $Uint64(y.$high - x$4.$high, y.$low - x$4.$low));
  16700. d = (x$5 = $mul64(new $Uint64(0, 36524), n), new $Uint64(d.$high + x$5.$high, d.$low + x$5.$low));
  16701. n = $div64(y, new $Uint64(0, 4), false);
  16702. y = (x$6 = $mul64(new $Uint64(0, 4), n), new $Uint64(y.$high - x$6.$high, y.$low - x$6.$low));
  16703. d = (x$7 = $mul64(new $Uint64(0, 1461), n), new $Uint64(d.$high + x$7.$high, d.$low + x$7.$low));
  16704. n = y;
  16705. d = (x$8 = $mul64(new $Uint64(0, 365), n), new $Uint64(d.$high + x$8.$high, d.$low + x$8.$low));
  16706. d = (x$9 = (new $Uint64(0, (x$10 = month - 1 >> 0, ((x$10 < 0 || x$10 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$10])))), new $Uint64(d.$high + x$9.$high, d.$low + x$9.$low));
  16707. if (isLeap(year) && month >= 3) {
  16708. d = (x$11 = new $Uint64(0, 1), new $Uint64(d.$high + x$11.$high, d.$low + x$11.$low));
  16709. }
  16710. d = (x$12 = (new $Uint64(0, (day - 1 >> 0))), new $Uint64(d.$high + x$12.$high, d.$low + x$12.$low));
  16711. abs = $mul64(d, new $Uint64(0, 86400));
  16712. abs = (x$13 = (new $Uint64(0, ((($imul(hour, 3600)) + ($imul(min, 60)) >> 0) + sec >> 0))), new $Uint64(abs.$high + x$13.$high, abs.$low + x$13.$low));
  16713. unix = (x$14 = (new $Int64(abs.$high, abs.$low)), new $Int64(x$14.$high + -2147483647, x$14.$low + 3844486912));
  16714. _r = loc.lookup(unix); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  16715. _tuple$5 = _r;
  16716. offset = _tuple$5[1];
  16717. start = _tuple$5[2];
  16718. end = _tuple$5[3];
  16719. /* */ if (!((offset === 0))) { $s = 2; continue; }
  16720. /* */ $s = 3; continue;
  16721. /* if (!((offset === 0))) { */ case 2:
  16722. utc = (x$15 = (new $Int64(0, offset)), new $Int64(unix.$high - x$15.$high, unix.$low - x$15.$low));
  16723. /* */ if ((utc.$high < start.$high || (utc.$high === start.$high && utc.$low < start.$low))) { $s = 5; continue; }
  16724. /* */ if ((utc.$high > end.$high || (utc.$high === end.$high && utc.$low >= end.$low))) { $s = 6; continue; }
  16725. /* */ $s = 7; continue;
  16726. /* if ((utc.$high < start.$high || (utc.$high === start.$high && utc.$low < start.$low))) { */ case 5:
  16727. _r$1 = loc.lookup(new $Int64(start.$high - 0, start.$low - 1)); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  16728. _tuple$6 = _r$1;
  16729. offset = _tuple$6[1];
  16730. $s = 7; continue;
  16731. /* } else if ((utc.$high > end.$high || (utc.$high === end.$high && utc.$low >= end.$low))) { */ case 6:
  16732. _r$2 = loc.lookup(end); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  16733. _tuple$7 = _r$2;
  16734. offset = _tuple$7[1];
  16735. /* } */ case 7:
  16736. case 4:
  16737. unix = (x$16 = (new $Int64(0, offset)), new $Int64(unix.$high - x$16.$high, unix.$low - x$16.$low));
  16738. /* } */ case 3:
  16739. t = $clone(unixTime(unix, ((nsec >> 0))), Time);
  16740. t.setLoc(loc);
  16741. $s = -1; return t;
  16742. /* */ } return; } if ($f === undefined) { $f = { $blk: Date }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f.abs = abs; $f.d = d; $f.day = day; $f.end = end; $f.hour = hour; $f.loc = loc; $f.m = m; $f.min = min; $f.month = month; $f.n = n; $f.nsec = nsec; $f.offset = offset; $f.sec = sec; $f.start = start; $f.t = t; $f.unix = unix; $f.utc = utc; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$15 = x$15; $f.x$16 = x$16; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.y = y; $f.year = year; $f.$s = $s; $f.$r = $r; return $f;
  16743. };
  16744. $pkg.Date = Date;
  16745. Time.ptr.prototype.Truncate = function(d) {
  16746. var _tuple, d, r, t;
  16747. t = this;
  16748. t.stripMono();
  16749. if ((d.$high < 0 || (d.$high === 0 && d.$low <= 0))) {
  16750. return t;
  16751. }
  16752. _tuple = div($clone(t, Time), d);
  16753. r = _tuple[1];
  16754. return $clone(t, Time).Add(new Duration(-r.$high, -r.$low));
  16755. };
  16756. Time.prototype.Truncate = function(d) { return this.$val.Truncate(d); };
  16757. Time.ptr.prototype.Round = function(d) {
  16758. var _tuple, d, r, t;
  16759. t = this;
  16760. t.stripMono();
  16761. if ((d.$high < 0 || (d.$high === 0 && d.$low <= 0))) {
  16762. return t;
  16763. }
  16764. _tuple = div($clone(t, Time), d);
  16765. r = _tuple[1];
  16766. if (lessThanHalf(r, d)) {
  16767. return $clone(t, Time).Add(new Duration(-r.$high, -r.$low));
  16768. }
  16769. return $clone(t, Time).Add(new Duration(d.$high - r.$high, d.$low - r.$low));
  16770. };
  16771. Time.prototype.Round = function(d) { return this.$val.Round(d); };
  16772. div = function(t, d) {
  16773. var _q, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, d, d0, d1, d1$1, neg, nsec, qmod2, r, sec, sec$1, t, tmp, u0, u0x, u1, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
  16774. qmod2 = 0;
  16775. r = new Duration(0, 0);
  16776. neg = false;
  16777. nsec = t.nsec();
  16778. sec = t.sec();
  16779. if ((sec.$high < 0 || (sec.$high === 0 && sec.$low < 0))) {
  16780. neg = true;
  16781. sec = new $Int64(-sec.$high, -sec.$low);
  16782. nsec = -nsec;
  16783. if (nsec < 0) {
  16784. nsec = nsec + (1000000000) >> 0;
  16785. sec = (x$1 = new $Int64(0, 1), new $Int64(sec.$high - x$1.$high, sec.$low - x$1.$low));
  16786. }
  16787. }
  16788. if ((d.$high < 0 || (d.$high === 0 && d.$low < 1000000000)) && (x$2 = $div64(new Duration(0, 1000000000), (new Duration(d.$high + d.$high, d.$low + d.$low)), true), (x$2.$high === 0 && x$2.$low === 0))) {
  16789. qmod2 = (((_q = nsec / (((d.$low + ((d.$high >> 31) * 4294967296)) >> 0)), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0)) & 1;
  16790. r = (new Duration(0, (_r = nsec % (((d.$low + ((d.$high >> 31) * 4294967296)) >> 0)), _r === _r ? _r : $throwRuntimeError("integer divide by zero"))));
  16791. } else if ((x$3 = $div64(d, new Duration(0, 1000000000), true), (x$3.$high === 0 && x$3.$low === 0))) {
  16792. d1 = ((x$4 = $div64(d, new Duration(0, 1000000000), false), new $Int64(x$4.$high, x$4.$low)));
  16793. qmod2 = (((x$5 = $div64(sec, d1, false), x$5.$low + ((x$5.$high >> 31) * 4294967296)) >> 0)) & 1;
  16794. r = (x$6 = $mul64(((x$7 = $div64(sec, d1, true), new Duration(x$7.$high, x$7.$low))), new Duration(0, 1000000000)), x$8 = (new Duration(0, nsec)), new Duration(x$6.$high + x$8.$high, x$6.$low + x$8.$low));
  16795. } else {
  16796. sec$1 = (new $Uint64(sec.$high, sec.$low));
  16797. tmp = $mul64(($shiftRightUint64(sec$1, 32)), new $Uint64(0, 1000000000));
  16798. u1 = $shiftRightUint64(tmp, 32);
  16799. u0 = $shiftLeft64(tmp, 32);
  16800. tmp = $mul64((new $Uint64(sec$1.$high & 0, (sec$1.$low & 4294967295) >>> 0)), new $Uint64(0, 1000000000));
  16801. _tmp = u0;
  16802. _tmp$1 = new $Uint64(u0.$high + tmp.$high, u0.$low + tmp.$low);
  16803. u0x = _tmp;
  16804. u0 = _tmp$1;
  16805. if ((u0.$high < u0x.$high || (u0.$high === u0x.$high && u0.$low < u0x.$low))) {
  16806. u1 = (x$9 = new $Uint64(0, 1), new $Uint64(u1.$high + x$9.$high, u1.$low + x$9.$low));
  16807. }
  16808. _tmp$2 = u0;
  16809. _tmp$3 = (x$10 = (new $Uint64(0, nsec)), new $Uint64(u0.$high + x$10.$high, u0.$low + x$10.$low));
  16810. u0x = _tmp$2;
  16811. u0 = _tmp$3;
  16812. if ((u0.$high < u0x.$high || (u0.$high === u0x.$high && u0.$low < u0x.$low))) {
  16813. u1 = (x$11 = new $Uint64(0, 1), new $Uint64(u1.$high + x$11.$high, u1.$low + x$11.$low));
  16814. }
  16815. d1$1 = (new $Uint64(d.$high, d.$low));
  16816. while (true) {
  16817. if (!(!((x$12 = $shiftRightUint64(d1$1, 63), (x$12.$high === 0 && x$12.$low === 1))))) { break; }
  16818. d1$1 = $shiftLeft64(d1$1, (1));
  16819. }
  16820. d0 = new $Uint64(0, 0);
  16821. while (true) {
  16822. qmod2 = 0;
  16823. if ((u1.$high > d1$1.$high || (u1.$high === d1$1.$high && u1.$low > d1$1.$low)) || (u1.$high === d1$1.$high && u1.$low === d1$1.$low) && (u0.$high > d0.$high || (u0.$high === d0.$high && u0.$low >= d0.$low))) {
  16824. qmod2 = 1;
  16825. _tmp$4 = u0;
  16826. _tmp$5 = new $Uint64(u0.$high - d0.$high, u0.$low - d0.$low);
  16827. u0x = _tmp$4;
  16828. u0 = _tmp$5;
  16829. if ((u0.$high > u0x.$high || (u0.$high === u0x.$high && u0.$low > u0x.$low))) {
  16830. u1 = (x$13 = new $Uint64(0, 1), new $Uint64(u1.$high - x$13.$high, u1.$low - x$13.$low));
  16831. }
  16832. u1 = (x$14 = d1$1, new $Uint64(u1.$high - x$14.$high, u1.$low - x$14.$low));
  16833. }
  16834. if ((d1$1.$high === 0 && d1$1.$low === 0) && (x$15 = (new $Uint64(d.$high, d.$low)), (d0.$high === x$15.$high && d0.$low === x$15.$low))) {
  16835. break;
  16836. }
  16837. d0 = $shiftRightUint64(d0, (1));
  16838. d0 = (x$16 = $shiftLeft64((new $Uint64(d1$1.$high & 0, (d1$1.$low & 1) >>> 0)), 63), new $Uint64(d0.$high | x$16.$high, (d0.$low | x$16.$low) >>> 0));
  16839. d1$1 = $shiftRightUint64(d1$1, (1));
  16840. }
  16841. r = (new Duration(u0.$high, u0.$low));
  16842. }
  16843. if (neg && !((r.$high === 0 && r.$low === 0))) {
  16844. qmod2 = (qmod2 ^ (1)) >> 0;
  16845. r = new Duration(d.$high - r.$high, d.$low - r.$low);
  16846. }
  16847. return [qmod2, r];
  16848. };
  16849. Location.ptr.prototype.get = function() {
  16850. var l, $s, $r;
  16851. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; l = $f.l; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  16852. l = this;
  16853. if (l === ptrType$2.nil) {
  16854. $s = -1; return utcLoc;
  16855. }
  16856. /* */ if (l === localLoc) { $s = 1; continue; }
  16857. /* */ $s = 2; continue;
  16858. /* if (l === localLoc) { */ case 1:
  16859. $r = localOnce.Do(initLocal); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  16860. /* } */ case 2:
  16861. $s = -1; return l;
  16862. /* */ } return; } if ($f === undefined) { $f = { $blk: Location.ptr.prototype.get }; } $f.l = l; $f.$s = $s; $f.$r = $r; return $f;
  16863. };
  16864. Location.prototype.get = function() { return this.$val.get(); };
  16865. Location.ptr.prototype.String = function() {
  16866. var _r, l, $s, $r;
  16867. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; l = $f.l; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  16868. l = this;
  16869. _r = l.get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  16870. $s = -1; return _r.name;
  16871. /* */ } return; } if ($f === undefined) { $f = { $blk: Location.ptr.prototype.String }; } $f._r = _r; $f.l = l; $f.$s = $s; $f.$r = $r; return $f;
  16872. };
  16873. Location.prototype.String = function() { return this.$val.String(); };
  16874. FixedZone = function(name, offset) {
  16875. var l, name, offset, x$1;
  16876. l = new Location.ptr(name, new sliceType([new zone.ptr(name, offset, false)]), new sliceType$1([new zoneTrans.ptr(new $Int64(-2147483648, 0), 0, false, false)]), new $Int64(-2147483648, 0), new $Int64(2147483647, 4294967295), ptrType.nil);
  16877. l.cacheZone = (x$1 = l.zone, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]));
  16878. return l;
  16879. };
  16880. $pkg.FixedZone = FixedZone;
  16881. Location.ptr.prototype.lookup = function(sec) {
  16882. var _q, _r, end, hi, l, lim, lo, m, name, offset, sec, start, tx, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, zone$1, zone$2, zone$3, $s, $r;
  16883. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; end = $f.end; hi = $f.hi; l = $f.l; lim = $f.lim; lo = $f.lo; m = $f.m; name = $f.name; offset = $f.offset; sec = $f.sec; start = $f.start; tx = $f.tx; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; zone$1 = $f.zone$1; zone$2 = $f.zone$2; zone$3 = $f.zone$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  16884. name = "";
  16885. offset = 0;
  16886. start = new $Int64(0, 0);
  16887. end = new $Int64(0, 0);
  16888. l = this;
  16889. _r = l.get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  16890. l = _r;
  16891. if (l.zone.$length === 0) {
  16892. name = "UTC";
  16893. offset = 0;
  16894. start = new $Int64(-2147483648, 0);
  16895. end = new $Int64(2147483647, 4294967295);
  16896. $s = -1; return [name, offset, start, end];
  16897. }
  16898. zone$1 = l.cacheZone;
  16899. if (!(zone$1 === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec.$high || (x$1.$high === sec.$high && x$1.$low <= sec.$low))) && (x$2 = l.cacheEnd, (sec.$high < x$2.$high || (sec.$high === x$2.$high && sec.$low < x$2.$low)))) {
  16900. name = zone$1.name;
  16901. offset = zone$1.offset;
  16902. start = l.cacheStart;
  16903. end = l.cacheEnd;
  16904. $s = -1; return [name, offset, start, end];
  16905. }
  16906. if ((l.tx.$length === 0) || (x$3 = (x$4 = l.tx, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])).when, (sec.$high < x$3.$high || (sec.$high === x$3.$high && sec.$low < x$3.$low)))) {
  16907. zone$2 = (x$5 = l.zone, x$6 = l.lookupFirstZone(), ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6]));
  16908. name = zone$2.name;
  16909. offset = zone$2.offset;
  16910. start = new $Int64(-2147483648, 0);
  16911. if (l.tx.$length > 0) {
  16912. end = (x$7 = l.tx, (0 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 0])).when;
  16913. } else {
  16914. end = new $Int64(2147483647, 4294967295);
  16915. }
  16916. $s = -1; return [name, offset, start, end];
  16917. }
  16918. tx = l.tx;
  16919. end = new $Int64(2147483647, 4294967295);
  16920. lo = 0;
  16921. hi = tx.$length;
  16922. while (true) {
  16923. if (!((hi - lo >> 0) > 1)) { break; }
  16924. m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0;
  16925. lim = ((m < 0 || m >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + m]).when;
  16926. if ((sec.$high < lim.$high || (sec.$high === lim.$high && sec.$low < lim.$low))) {
  16927. end = lim;
  16928. hi = m;
  16929. } else {
  16930. lo = m;
  16931. }
  16932. }
  16933. zone$3 = (x$8 = l.zone, x$9 = ((lo < 0 || lo >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + lo]).index, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9]));
  16934. name = zone$3.name;
  16935. offset = zone$3.offset;
  16936. start = ((lo < 0 || lo >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + lo]).when;
  16937. $s = -1; return [name, offset, start, end];
  16938. /* */ } return; } if ($f === undefined) { $f = { $blk: Location.ptr.prototype.lookup }; } $f._q = _q; $f._r = _r; $f.end = end; $f.hi = hi; $f.l = l; $f.lim = lim; $f.lo = lo; $f.m = m; $f.name = name; $f.offset = offset; $f.sec = sec; $f.start = start; $f.tx = tx; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.zone$1 = zone$1; $f.zone$2 = zone$2; $f.zone$3 = zone$3; $f.$s = $s; $f.$r = $r; return $f;
  16939. };
  16940. Location.prototype.lookup = function(sec) { return this.$val.lookup(sec); };
  16941. Location.ptr.prototype.lookupFirstZone = function() {
  16942. var _i, _ref, l, x$1, x$2, x$3, x$4, x$5, x$6, zi, zi$1;
  16943. l = this;
  16944. if (!l.firstZoneUsed()) {
  16945. return 0;
  16946. }
  16947. if (l.tx.$length > 0 && (x$1 = l.zone, x$2 = (x$3 = l.tx, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).index, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])).isDST) {
  16948. zi = (((x$4 = l.tx, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])).index >> 0)) - 1 >> 0;
  16949. while (true) {
  16950. if (!(zi >= 0)) { break; }
  16951. if (!(x$5 = l.zone, ((zi < 0 || zi >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + zi])).isDST) {
  16952. return zi;
  16953. }
  16954. zi = zi - (1) >> 0;
  16955. }
  16956. }
  16957. _ref = l.zone;
  16958. _i = 0;
  16959. while (true) {
  16960. if (!(_i < _ref.$length)) { break; }
  16961. zi$1 = _i;
  16962. if (!(x$6 = l.zone, ((zi$1 < 0 || zi$1 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + zi$1])).isDST) {
  16963. return zi$1;
  16964. }
  16965. _i++;
  16966. }
  16967. return 0;
  16968. };
  16969. Location.prototype.lookupFirstZone = function() { return this.$val.lookupFirstZone(); };
  16970. Location.ptr.prototype.firstZoneUsed = function() {
  16971. var _i, _ref, l, tx;
  16972. l = this;
  16973. _ref = l.tx;
  16974. _i = 0;
  16975. while (true) {
  16976. if (!(_i < _ref.$length)) { break; }
  16977. tx = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), zoneTrans);
  16978. if (tx.index === 0) {
  16979. return true;
  16980. }
  16981. _i++;
  16982. }
  16983. return false;
  16984. };
  16985. Location.prototype.firstZoneUsed = function() { return this.$val.firstZoneUsed(); };
  16986. Location.ptr.prototype.lookupName = function(name, unix) {
  16987. var _i, _i$1, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, i, i$1, l, nam, name, offset, offset$1, ok, unix, x$1, x$2, x$3, zone$1, zone$2, $s, $r;
  16988. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _ref$1 = $f._ref$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; i = $f.i; i$1 = $f.i$1; l = $f.l; nam = $f.nam; name = $f.name; offset = $f.offset; offset$1 = $f.offset$1; ok = $f.ok; unix = $f.unix; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; zone$1 = $f.zone$1; zone$2 = $f.zone$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  16989. offset = 0;
  16990. ok = false;
  16991. l = this;
  16992. _r = l.get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  16993. l = _r;
  16994. _ref = l.zone;
  16995. _i = 0;
  16996. /* while (true) { */ case 2:
  16997. /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; }
  16998. i = _i;
  16999. zone$1 = (x$1 = l.zone, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i]));
  17000. /* */ if (zone$1.name === name) { $s = 4; continue; }
  17001. /* */ $s = 5; continue;
  17002. /* if (zone$1.name === name) { */ case 4:
  17003. _r$1 = l.lookup((x$2 = (new $Int64(0, zone$1.offset)), new $Int64(unix.$high - x$2.$high, unix.$low - x$2.$low))); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  17004. _tuple = _r$1;
  17005. nam = _tuple[0];
  17006. offset$1 = _tuple[1];
  17007. if (nam === zone$1.name) {
  17008. _tmp = offset$1;
  17009. _tmp$1 = true;
  17010. offset = _tmp;
  17011. ok = _tmp$1;
  17012. $s = -1; return [offset, ok];
  17013. }
  17014. /* } */ case 5:
  17015. _i++;
  17016. /* } */ $s = 2; continue; case 3:
  17017. _ref$1 = l.zone;
  17018. _i$1 = 0;
  17019. while (true) {
  17020. if (!(_i$1 < _ref$1.$length)) { break; }
  17021. i$1 = _i$1;
  17022. zone$2 = (x$3 = l.zone, ((i$1 < 0 || i$1 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i$1]));
  17023. if (zone$2.name === name) {
  17024. _tmp$2 = zone$2.offset;
  17025. _tmp$3 = true;
  17026. offset = _tmp$2;
  17027. ok = _tmp$3;
  17028. $s = -1; return [offset, ok];
  17029. }
  17030. _i$1++;
  17031. }
  17032. $s = -1; return [offset, ok];
  17033. /* */ } return; } if ($f === undefined) { $f = { $blk: Location.ptr.prototype.lookupName }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.i = i; $f.i$1 = i$1; $f.l = l; $f.nam = nam; $f.name = name; $f.offset = offset; $f.offset$1 = offset$1; $f.ok = ok; $f.unix = unix; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.zone$1 = zone$1; $f.zone$2 = zone$2; $f.$s = $s; $f.$r = $r; return $f;
  17034. };
  17035. Location.prototype.lookupName = function(name, unix) { return this.$val.lookupName(name, unix); };
  17036. ptrType$4.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
  17037. ptrType$5.methods = [{prop: "Stop", name: "Stop", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([Duration], [$Bool], false)}];
  17038. ptrType$6.methods = [{prop: "Stop", name: "Stop", pkg: "", typ: $funcType([], [], false)}];
  17039. Time.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Format", name: "Format", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "AppendFormat", name: "AppendFormat", pkg: "", typ: $funcType([sliceType$3, $String], [sliceType$3], false)}, {prop: "After", name: "After", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "Before", name: "Before", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "abs", name: "abs", pkg: "time", typ: $funcType([], [$Uint64], false)}, {prop: "locabs", name: "locabs", pkg: "time", typ: $funcType([], [$String, $Int, $Uint64], false)}, {prop: "Date", name: "Date", pkg: "", typ: $funcType([], [$Int, Month, $Int], false)}, {prop: "Year", name: "Year", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Month", name: "Month", pkg: "", typ: $funcType([], [Month], false)}, {prop: "Day", name: "Day", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Weekday", name: "Weekday", pkg: "", typ: $funcType([], [Weekday], false)}, {prop: "ISOWeek", name: "ISOWeek", pkg: "", typ: $funcType([], [$Int, $Int], false)}, {prop: "Clock", name: "Clock", pkg: "", typ: $funcType([], [$Int, $Int, $Int], false)}, {prop: "Hour", name: "Hour", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Minute", name: "Minute", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Second", name: "Second", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Nanosecond", name: "Nanosecond", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "YearDay", name: "YearDay", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([Duration], [Time], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([Time], [Duration], false)}, {prop: "AddDate", name: "AddDate", pkg: "", typ: $funcType([$Int, $Int, $Int], [Time], false)}, {prop: "date", name: "date", pkg: "time", typ: $funcType([$Bool], [$Int, Month, $Int, $Int], false)}, {prop: "UTC", name: "UTC", pkg: "", typ: $funcType([], [Time], false)}, {prop: "Local", name: "Local", pkg: "", typ: $funcType([], [Time], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([ptrType$2], [Time], false)}, {prop: "Location", name: "Location", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "Zone", name: "Zone", pkg: "", typ: $funcType([], [$String, $Int], false)}, {prop: "Unix", name: "Unix", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "UnixNano", name: "UnixNano", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "GobEncode", name: "GobEncode", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "MarshalJSON", name: "MarshalJSON", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([Duration], [Time], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([Duration], [Time], false)}];
  17040. ptrType$7.methods = [{prop: "nsec", name: "nsec", pkg: "time", typ: $funcType([], [$Int32], false)}, {prop: "sec", name: "sec", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "unixSec", name: "unixSec", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "addSec", name: "addSec", pkg: "time", typ: $funcType([$Int64], [], false)}, {prop: "setLoc", name: "setLoc", pkg: "time", typ: $funcType([ptrType$2], [], false)}, {prop: "stripMono", name: "stripMono", pkg: "time", typ: $funcType([], [], false)}, {prop: "setMono", name: "setMono", pkg: "time", typ: $funcType([$Int64], [], false)}, {prop: "mono", name: "mono", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType$3], [$error], false)}, {prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$3], [$error], false)}, {prop: "UnmarshalJSON", name: "UnmarshalJSON", pkg: "", typ: $funcType([sliceType$3], [$error], false)}, {prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$3], [$error], false)}];
  17041. Month.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
  17042. Weekday.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
  17043. Duration.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Nanoseconds", name: "Nanoseconds", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Seconds", name: "Seconds", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Minutes", name: "Minutes", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Hours", name: "Hours", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([Duration], [Duration], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([Duration], [Duration], false)}];
  17044. ptrType$2.methods = [{prop: "get", name: "get", pkg: "time", typ: $funcType([], [ptrType$2], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "lookup", name: "lookup", pkg: "time", typ: $funcType([$Int64], [$String, $Int, $Int64, $Int64], false)}, {prop: "lookupFirstZone", name: "lookupFirstZone", pkg: "time", typ: $funcType([], [$Int], false)}, {prop: "firstZoneUsed", name: "firstZoneUsed", pkg: "time", typ: $funcType([], [$Bool], false)}, {prop: "lookupName", name: "lookupName", pkg: "time", typ: $funcType([$String, $Int64], [$Int, $Bool], false)}];
  17045. runtimeTimer.init("time", [{prop: "i", name: "i", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "when", name: "when", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "period", name: "period", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "f", name: "f", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "arg", name: "arg", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "timeout", name: "timeout", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "active", name: "active", embedded: false, exported: false, typ: $Bool, tag: ""}]);
  17046. ParseError.init("", [{prop: "Layout", name: "Layout", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "LayoutElem", name: "LayoutElem", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ValueElem", name: "ValueElem", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Message", name: "Message", embedded: false, exported: true, typ: $String, tag: ""}]);
  17047. Timer.init("time", [{prop: "C", name: "C", embedded: false, exported: true, typ: chanType$1, tag: ""}, {prop: "r", name: "r", embedded: false, exported: false, typ: runtimeTimer, tag: ""}]);
  17048. Ticker.init("time", [{prop: "C", name: "C", embedded: false, exported: true, typ: chanType$1, tag: ""}, {prop: "r", name: "r", embedded: false, exported: false, typ: runtimeTimer, tag: ""}]);
  17049. Time.init("time", [{prop: "wall", name: "wall", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "ext", name: "ext", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "loc", name: "loc", embedded: false, exported: false, typ: ptrType$2, tag: ""}]);
  17050. Location.init("time", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "zone", name: "zone", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "tx", name: "tx", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "cacheStart", name: "cacheStart", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "cacheEnd", name: "cacheEnd", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "cacheZone", name: "cacheZone", embedded: false, exported: false, typ: ptrType, tag: ""}]);
  17051. zone.init("time", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "isDST", name: "isDST", embedded: false, exported: false, typ: $Bool, tag: ""}]);
  17052. zoneTrans.init("time", [{prop: "when", name: "when", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "isstd", name: "isstd", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isutc", name: "isutc", embedded: false, exported: false, typ: $Bool, tag: ""}]);
  17053. $init = function() {
  17054. $pkg.$init = function() {};
  17055. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  17056. $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  17057. $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  17058. $r = nosync.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  17059. $r = runtime.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  17060. $r = syscall.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  17061. localLoc = new Location.ptr("", sliceType.nil, sliceType$1.nil, new $Int64(0, 0), new $Int64(0, 0), ptrType.nil);
  17062. localOnce = new nosync.Once.ptr(false, false);
  17063. zoneSources = new sliceType$2([runtime.GOROOT() + "/lib/time/zoneinfo.zip"]);
  17064. std0x = $toNativeArray($kindInt, [260, 265, 524, 526, 528, 274]);
  17065. longDayNames = new sliceType$2(["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]);
  17066. shortDayNames = new sliceType$2(["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]);
  17067. shortMonthNames = new sliceType$2(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]);
  17068. longMonthNames = new sliceType$2(["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]);
  17069. atoiError = errors.New("time: invalid number");
  17070. errBad = errors.New("bad value for field");
  17071. errLeadingInt = errors.New("time: bad [0-9]*");
  17072. months = $toNativeArray($kindString, ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]);
  17073. days = $toNativeArray($kindString, ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]);
  17074. daysBefore = $toNativeArray($kindInt32, [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365]);
  17075. startNano = (x = runtimeNano(), new $Int64(x.$high - 0, x.$low - 1));
  17076. utcLoc = new Location.ptr("UTC", sliceType.nil, sliceType$1.nil, new $Int64(0, 0), new $Int64(0, 0), ptrType.nil);
  17077. $pkg.UTC = utcLoc;
  17078. $pkg.Local = localLoc;
  17079. errLocation = errors.New("time: invalid location name");
  17080. badData = errors.New("malformed time zone information");
  17081. $unused(new sliceType$2(["/usr/share/zoneinfo/", "/usr/share/lib/zoneinfo/", "/usr/lib/locale/TZ/", runtime.GOROOT() + "/lib/time/zoneinfo.zip"]));
  17082. init();
  17083. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  17084. };
  17085. $pkg.$init = $init;
  17086. return $pkg;
  17087. })();
  17088. $packages["internal/poll"] = (function() {
  17089. var $pkg = {}, $init, errors, io, runtime, atomic, syscall, time, pollDesc, TimeoutError, fdMutex, FD, ptrType, chanType, sliceType, ptrType$1, ptrType$2, arrayType, sliceType$2, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, sliceType$3, ptrType$12, funcType, funcType$1, ptrType$13, ptrType$14, ptrType$15, ptrType$16, sliceType$4, ptrType$17, semWaiters, tryDupCloexec, tryDupCloexec$24ptr, runtime_Semacquire, runtime_Semrelease, errClosing, consume, fcntl, DupCloseOnExec, dupCloseOnExecOld, writev, accept;
  17090. errors = $packages["errors"];
  17091. io = $packages["io"];
  17092. runtime = $packages["runtime"];
  17093. atomic = $packages["sync/atomic"];
  17094. syscall = $packages["syscall"];
  17095. time = $packages["time"];
  17096. pollDesc = $pkg.pollDesc = $newType(0, $kindStruct, "poll.pollDesc", true, "internal/poll", false, function(closing_) {
  17097. this.$val = this;
  17098. if (arguments.length === 0) {
  17099. this.closing = false;
  17100. return;
  17101. }
  17102. this.closing = closing_;
  17103. });
  17104. TimeoutError = $pkg.TimeoutError = $newType(0, $kindStruct, "poll.TimeoutError", true, "internal/poll", true, function() {
  17105. this.$val = this;
  17106. if (arguments.length === 0) {
  17107. return;
  17108. }
  17109. });
  17110. fdMutex = $pkg.fdMutex = $newType(0, $kindStruct, "poll.fdMutex", true, "internal/poll", false, function(state_, rsema_, wsema_) {
  17111. this.$val = this;
  17112. if (arguments.length === 0) {
  17113. this.state = new $Uint64(0, 0);
  17114. this.rsema = 0;
  17115. this.wsema = 0;
  17116. return;
  17117. }
  17118. this.state = state_;
  17119. this.rsema = rsema_;
  17120. this.wsema = wsema_;
  17121. });
  17122. FD = $pkg.FD = $newType(0, $kindStruct, "poll.FD", true, "internal/poll", true, function(fdmu_, Sysfd_, pd_, iovecs_, csema_, isBlocking_, IsStream_, ZeroReadIsEOF_, isFile_) {
  17123. this.$val = this;
  17124. if (arguments.length === 0) {
  17125. this.fdmu = new fdMutex.ptr(new $Uint64(0, 0), 0, 0);
  17126. this.Sysfd = 0;
  17127. this.pd = new pollDesc.ptr(false);
  17128. this.iovecs = ptrType$6.nil;
  17129. this.csema = 0;
  17130. this.isBlocking = 0;
  17131. this.IsStream = false;
  17132. this.ZeroReadIsEOF = false;
  17133. this.isFile = false;
  17134. return;
  17135. }
  17136. this.fdmu = fdmu_;
  17137. this.Sysfd = Sysfd_;
  17138. this.pd = pd_;
  17139. this.iovecs = iovecs_;
  17140. this.csema = csema_;
  17141. this.isBlocking = isBlocking_;
  17142. this.IsStream = IsStream_;
  17143. this.ZeroReadIsEOF = ZeroReadIsEOF_;
  17144. this.isFile = isFile_;
  17145. });
  17146. ptrType = $ptrType($Uint32);
  17147. chanType = $chanType($Bool, false, false);
  17148. sliceType = $sliceType(chanType);
  17149. ptrType$1 = $ptrType($Uint64);
  17150. ptrType$2 = $ptrType($Int32);
  17151. arrayType = $arrayType($Uint8, 4);
  17152. sliceType$2 = $sliceType(syscall.Iovec);
  17153. ptrType$6 = $ptrType(sliceType$2);
  17154. ptrType$7 = $ptrType($Uint8);
  17155. ptrType$8 = $ptrType(FD);
  17156. ptrType$9 = $ptrType(pollDesc);
  17157. ptrType$10 = $ptrType(TimeoutError);
  17158. ptrType$11 = $ptrType(fdMutex);
  17159. sliceType$3 = $sliceType($Uint8);
  17160. ptrType$12 = $ptrType(syscall.Stat_t);
  17161. funcType = $funcType([$Uintptr], [], false);
  17162. funcType$1 = $funcType([$Uintptr], [$Bool], false);
  17163. ptrType$13 = $ptrType(syscall.Linger);
  17164. ptrType$14 = $ptrType(syscall.IPMreqn);
  17165. ptrType$15 = $ptrType(syscall.IPMreq);
  17166. ptrType$16 = $ptrType(syscall.IPv6Mreq);
  17167. sliceType$4 = $sliceType(sliceType$3);
  17168. ptrType$17 = $ptrType(sliceType$4);
  17169. pollDesc.ptr.prototype.init = function(fd) {
  17170. var fd, pd;
  17171. pd = this;
  17172. return $ifaceNil;
  17173. };
  17174. pollDesc.prototype.init = function(fd) { return this.$val.init(fd); };
  17175. pollDesc.ptr.prototype.close = function() {
  17176. var pd;
  17177. pd = this;
  17178. };
  17179. pollDesc.prototype.close = function() { return this.$val.close(); };
  17180. pollDesc.ptr.prototype.evict = function() {
  17181. var pd;
  17182. pd = this;
  17183. pd.closing = true;
  17184. };
  17185. pollDesc.prototype.evict = function() { return this.$val.evict(); };
  17186. pollDesc.ptr.prototype.prepare = function(mode, isFile) {
  17187. var isFile, mode, pd;
  17188. pd = this;
  17189. if (pd.closing) {
  17190. return errClosing(isFile);
  17191. }
  17192. return $ifaceNil;
  17193. };
  17194. pollDesc.prototype.prepare = function(mode, isFile) { return this.$val.prepare(mode, isFile); };
  17195. pollDesc.ptr.prototype.prepareRead = function(isFile) {
  17196. var isFile, pd;
  17197. pd = this;
  17198. return pd.prepare(114, isFile);
  17199. };
  17200. pollDesc.prototype.prepareRead = function(isFile) { return this.$val.prepareRead(isFile); };
  17201. pollDesc.ptr.prototype.prepareWrite = function(isFile) {
  17202. var isFile, pd;
  17203. pd = this;
  17204. return pd.prepare(119, isFile);
  17205. };
  17206. pollDesc.prototype.prepareWrite = function(isFile) { return this.$val.prepareWrite(isFile); };
  17207. pollDesc.ptr.prototype.wait = function(mode, isFile) {
  17208. var isFile, mode, pd;
  17209. pd = this;
  17210. if (pd.closing) {
  17211. return errClosing(isFile);
  17212. }
  17213. return $pkg.ErrTimeout;
  17214. };
  17215. pollDesc.prototype.wait = function(mode, isFile) { return this.$val.wait(mode, isFile); };
  17216. pollDesc.ptr.prototype.waitRead = function(isFile) {
  17217. var isFile, pd;
  17218. pd = this;
  17219. return pd.wait(114, isFile);
  17220. };
  17221. pollDesc.prototype.waitRead = function(isFile) { return this.$val.waitRead(isFile); };
  17222. pollDesc.ptr.prototype.waitWrite = function(isFile) {
  17223. var isFile, pd;
  17224. pd = this;
  17225. return pd.wait(119, isFile);
  17226. };
  17227. pollDesc.prototype.waitWrite = function(isFile) { return this.$val.waitWrite(isFile); };
  17228. pollDesc.ptr.prototype.pollable = function() {
  17229. return true;
  17230. };
  17231. pollDesc.prototype.pollable = function() { return this.$val.pollable(); };
  17232. FD.ptr.prototype.SetDeadline = function(t) {
  17233. var t;
  17234. return $ifaceNil;
  17235. };
  17236. FD.prototype.SetDeadline = function(t) { return this.$val.SetDeadline(t); };
  17237. FD.ptr.prototype.SetReadDeadline = function(t) {
  17238. var t;
  17239. return $ifaceNil;
  17240. };
  17241. FD.prototype.SetReadDeadline = function(t) { return this.$val.SetReadDeadline(t); };
  17242. FD.ptr.prototype.SetWriteDeadline = function(t) {
  17243. var t;
  17244. return $ifaceNil;
  17245. };
  17246. FD.prototype.SetWriteDeadline = function(t) { return this.$val.SetWriteDeadline(t); };
  17247. runtime_Semacquire = function(s) {
  17248. var _entry, _key, _r, ch, s, $s, $r;
  17249. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _key = $f._key; _r = $f._r; ch = $f.ch; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  17250. /* */ if (s.$get() === 0) { $s = 1; continue; }
  17251. /* */ $s = 2; continue;
  17252. /* if (s.$get() === 0) { */ case 1:
  17253. ch = new $Chan($Bool, 0);
  17254. _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType.keyFor(_key)] = { k: _key, v: $append((_entry = semWaiters[ptrType.keyFor(s)], _entry !== undefined ? _entry.v : sliceType.nil), ch) };
  17255. _r = $recv(ch); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  17256. _r[0];
  17257. /* } */ case 2:
  17258. s.$set(s.$get() - (1) >>> 0);
  17259. $s = -1; return;
  17260. /* */ } return; } if ($f === undefined) { $f = { $blk: runtime_Semacquire }; } $f._entry = _entry; $f._key = _key; $f._r = _r; $f.ch = ch; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  17261. };
  17262. runtime_Semrelease = function(s) {
  17263. var _entry, _key, ch, s, w, $s, $r;
  17264. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _key = $f._key; ch = $f.ch; s = $f.s; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  17265. s.$set(s.$get() + (1) >>> 0);
  17266. w = (_entry = semWaiters[ptrType.keyFor(s)], _entry !== undefined ? _entry.v : sliceType.nil);
  17267. if (w.$length === 0) {
  17268. $s = -1; return;
  17269. }
  17270. ch = (0 >= w.$length ? ($throwRuntimeError("index out of range"), undefined) : w.$array[w.$offset + 0]);
  17271. w = $subslice(w, 1);
  17272. _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType.keyFor(_key)] = { k: _key, v: w };
  17273. if (w.$length === 0) {
  17274. delete semWaiters[ptrType.keyFor(s)];
  17275. }
  17276. $r = $send(ch, true); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  17277. $s = -1; return;
  17278. /* */ } return; } if ($f === undefined) { $f = { $blk: runtime_Semrelease }; } $f._entry = _entry; $f._key = _key; $f.ch = ch; $f.s = s; $f.w = w; $f.$s = $s; $f.$r = $r; return $f;
  17279. };
  17280. errClosing = function(isFile) {
  17281. var isFile;
  17282. if (isFile) {
  17283. return $pkg.ErrFileClosing;
  17284. }
  17285. return $pkg.ErrNetClosing;
  17286. };
  17287. TimeoutError.ptr.prototype.Error = function() {
  17288. var e;
  17289. e = this;
  17290. return "i/o timeout";
  17291. };
  17292. TimeoutError.prototype.Error = function() { return this.$val.Error(); };
  17293. TimeoutError.ptr.prototype.Timeout = function() {
  17294. var e;
  17295. e = this;
  17296. return true;
  17297. };
  17298. TimeoutError.prototype.Timeout = function() { return this.$val.Timeout(); };
  17299. TimeoutError.ptr.prototype.Temporary = function() {
  17300. var e;
  17301. e = this;
  17302. return true;
  17303. };
  17304. TimeoutError.prototype.Temporary = function() { return this.$val.Temporary(); };
  17305. consume = function(v, n) {
  17306. var ln0, n, v, x, x$1, x$2, x$3;
  17307. while (true) {
  17308. if (!(v.$get().$length > 0)) { break; }
  17309. ln0 = (new $Int64(0, (x = v.$get(), (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).$length));
  17310. if ((ln0.$high > n.$high || (ln0.$high === n.$high && ln0.$low > n.$low))) {
  17311. (x$2 = v.$get(), (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0] = $subslice((x$1 = v.$get(), (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), $flatten64(n))));
  17312. return;
  17313. }
  17314. n = (x$3 = ln0, new $Int64(n.$high - x$3.$high, n.$low - x$3.$low));
  17315. v.$set($subslice((v.$get()), 1));
  17316. }
  17317. };
  17318. FD.ptr.prototype.Fsync = function() {
  17319. var err, fd, $s, $deferred, $r;
  17320. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  17321. fd = this;
  17322. err = fd.incref();
  17323. if (!($interfaceIsEqual(err, $ifaceNil))) {
  17324. $s = -1; return err;
  17325. }
  17326. $deferred.push([$methodVal(fd, "decref"), []]);
  17327. $s = -1; return syscall.Fsync(fd.Sysfd);
  17328. /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fsync }; } $f.err = err; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  17329. };
  17330. FD.prototype.Fsync = function() { return this.$val.Fsync(); };
  17331. fcntl = function(fd, cmd, arg) {
  17332. var _tuple, arg, cmd, e, fd, r;
  17333. _tuple = syscall.Syscall(72, ((fd >>> 0)), ((cmd >>> 0)), ((arg >>> 0)));
  17334. r = _tuple[0];
  17335. e = _tuple[2];
  17336. if (!((e === 0))) {
  17337. return [((r >> 0)), new syscall.Errno((e))];
  17338. }
  17339. return [((r >> 0)), $ifaceNil];
  17340. };
  17341. fdMutex.ptr.prototype.incref = function() {
  17342. var mu, new$1, old, x, x$1;
  17343. mu = this;
  17344. while (true) {
  17345. old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))));
  17346. if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) {
  17347. return false;
  17348. }
  17349. new$1 = new $Uint64(old.$high + 0, old.$low + 8);
  17350. if ((x$1 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) {
  17351. $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)"));
  17352. }
  17353. if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) {
  17354. return true;
  17355. }
  17356. }
  17357. };
  17358. fdMutex.prototype.incref = function() { return this.$val.incref(); };
  17359. fdMutex.ptr.prototype.increfAndClose = function() {
  17360. var mu, new$1, old, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r;
  17361. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; mu = $f.mu; new$1 = $f.new$1; old = $f.old; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  17362. mu = this;
  17363. /* while (true) { */ case 1:
  17364. old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))));
  17365. if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) {
  17366. $s = -1; return false;
  17367. }
  17368. new$1 = (x$1 = new $Uint64(old.$high | 0, (old.$low | 1) >>> 0), new $Uint64(x$1.$high + 0, x$1.$low + 8));
  17369. if ((x$2 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$2.$high === 0 && x$2.$low === 0))) {
  17370. $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)"));
  17371. }
  17372. new$1 = (x$3 = new $Uint64(2147483647, 4286578688), new $Uint64(new$1.$high & ~x$3.$high, (new$1.$low & ~x$3.$low) >>> 0));
  17373. /* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { $s = 3; continue; }
  17374. /* */ $s = 4; continue;
  17375. /* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3:
  17376. /* while (true) { */ case 5:
  17377. /* if (!(!((x$4 = new $Uint64(old.$high & 2047, (old.$low & 4286578688) >>> 0), (x$4.$high === 0 && x$4.$low === 0))))) { break; } */ if(!(!((x$4 = new $Uint64(old.$high & 2047, (old.$low & 4286578688) >>> 0), (x$4.$high === 0 && x$4.$low === 0))))) { $s = 6; continue; }
  17378. old = (x$5 = new $Uint64(0, 8388608), new $Uint64(old.$high - x$5.$high, old.$low - x$5.$low));
  17379. $r = runtime_Semrelease((mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu)))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  17380. /* } */ $s = 5; continue; case 6:
  17381. /* while (true) { */ case 8:
  17382. /* if (!(!((x$6 = new $Uint64(old.$high & 2147481600, (old.$low & 0) >>> 0), (x$6.$high === 0 && x$6.$low === 0))))) { break; } */ if(!(!((x$6 = new $Uint64(old.$high & 2147481600, (old.$low & 0) >>> 0), (x$6.$high === 0 && x$6.$low === 0))))) { $s = 9; continue; }
  17383. old = (x$7 = new $Uint64(2048, 0), new $Uint64(old.$high - x$7.$high, old.$low - x$7.$low));
  17384. $r = runtime_Semrelease((mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu)))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  17385. /* } */ $s = 8; continue; case 9:
  17386. $s = -1; return true;
  17387. /* } */ case 4:
  17388. /* } */ $s = 1; continue; case 2:
  17389. $s = -1; return false;
  17390. /* */ } return; } if ($f === undefined) { $f = { $blk: fdMutex.ptr.prototype.increfAndClose }; } $f.mu = mu; $f.new$1 = new$1; $f.old = old; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.$s = $s; $f.$r = $r; return $f;
  17391. };
  17392. fdMutex.prototype.increfAndClose = function() { return this.$val.increfAndClose(); };
  17393. fdMutex.ptr.prototype.decref = function() {
  17394. var mu, new$1, old, x, x$1;
  17395. mu = this;
  17396. while (true) {
  17397. old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))));
  17398. if ((x = new $Uint64(old.$high & 0, (old.$low & 8388600) >>> 0), (x.$high === 0 && x.$low === 0))) {
  17399. $panic(new $String("inconsistent poll.fdMutex"));
  17400. }
  17401. new$1 = new $Uint64(old.$high - 0, old.$low - 8);
  17402. if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) {
  17403. return (x$1 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388601) >>> 0), (x$1.$high === 0 && x$1.$low === 1));
  17404. }
  17405. }
  17406. };
  17407. fdMutex.prototype.decref = function() { return this.$val.decref(); };
  17408. fdMutex.ptr.prototype.rwlock = function(read) {
  17409. var _tmp, _tmp$1, _tmp$2, mu, mutexBit, mutexMask, mutexSema, mutexWait, new$1, old, read, x, x$1, x$2, x$3, x$4, x$5, $s, $r;
  17410. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; mu = $f.mu; mutexBit = $f.mutexBit; mutexMask = $f.mutexMask; mutexSema = $f.mutexSema; mutexWait = $f.mutexWait; new$1 = $f.new$1; old = $f.old; read = $f.read; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  17411. mu = this;
  17412. _tmp = new $Uint64(0, 0);
  17413. _tmp$1 = new $Uint64(0, 0);
  17414. _tmp$2 = new $Uint64(0, 0);
  17415. mutexBit = _tmp;
  17416. mutexWait = _tmp$1;
  17417. mutexMask = _tmp$2;
  17418. mutexSema = ptrType.nil;
  17419. if (read) {
  17420. mutexBit = new $Uint64(0, 2);
  17421. mutexWait = new $Uint64(0, 8388608);
  17422. mutexMask = new $Uint64(2047, 4286578688);
  17423. mutexSema = (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu)));
  17424. } else {
  17425. mutexBit = new $Uint64(0, 4);
  17426. mutexWait = new $Uint64(2048, 0);
  17427. mutexMask = new $Uint64(2147481600, 0);
  17428. mutexSema = (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu)));
  17429. }
  17430. /* while (true) { */ case 1:
  17431. old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))));
  17432. if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) {
  17433. $s = -1; return false;
  17434. }
  17435. new$1 = new $Uint64(0, 0);
  17436. if ((x$1 = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) {
  17437. new$1 = (x$2 = new $Uint64(old.$high | mutexBit.$high, (old.$low | mutexBit.$low) >>> 0), new $Uint64(x$2.$high + 0, x$2.$low + 8));
  17438. if ((x$3 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$3.$high === 0 && x$3.$low === 0))) {
  17439. $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)"));
  17440. }
  17441. } else {
  17442. new$1 = new $Uint64(old.$high + mutexWait.$high, old.$low + mutexWait.$low);
  17443. if ((x$4 = new $Uint64(new$1.$high & mutexMask.$high, (new$1.$low & mutexMask.$low) >>> 0), (x$4.$high === 0 && x$4.$low === 0))) {
  17444. $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)"));
  17445. }
  17446. }
  17447. /* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { $s = 3; continue; }
  17448. /* */ $s = 4; continue;
  17449. /* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3:
  17450. if ((x$5 = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0))) {
  17451. $s = -1; return true;
  17452. }
  17453. $r = runtime_Semacquire(mutexSema); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  17454. /* } */ case 4:
  17455. /* } */ $s = 1; continue; case 2:
  17456. $s = -1; return false;
  17457. /* */ } return; } if ($f === undefined) { $f = { $blk: fdMutex.ptr.prototype.rwlock }; } $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f.mu = mu; $f.mutexBit = mutexBit; $f.mutexMask = mutexMask; $f.mutexSema = mutexSema; $f.mutexWait = mutexWait; $f.new$1 = new$1; $f.old = old; $f.read = read; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.$s = $s; $f.$r = $r; return $f;
  17458. };
  17459. fdMutex.prototype.rwlock = function(read) { return this.$val.rwlock(read); };
  17460. fdMutex.ptr.prototype.rwunlock = function(read) {
  17461. var _tmp, _tmp$1, _tmp$2, mu, mutexBit, mutexMask, mutexSema, mutexWait, new$1, old, read, x, x$1, x$2, x$3, x$4, x$5, x$6, $s, $r;
  17462. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; mu = $f.mu; mutexBit = $f.mutexBit; mutexMask = $f.mutexMask; mutexSema = $f.mutexSema; mutexWait = $f.mutexWait; new$1 = $f.new$1; old = $f.old; read = $f.read; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  17463. mu = this;
  17464. _tmp = new $Uint64(0, 0);
  17465. _tmp$1 = new $Uint64(0, 0);
  17466. _tmp$2 = new $Uint64(0, 0);
  17467. mutexBit = _tmp;
  17468. mutexWait = _tmp$1;
  17469. mutexMask = _tmp$2;
  17470. mutexSema = ptrType.nil;
  17471. if (read) {
  17472. mutexBit = new $Uint64(0, 2);
  17473. mutexWait = new $Uint64(0, 8388608);
  17474. mutexMask = new $Uint64(2047, 4286578688);
  17475. mutexSema = (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu)));
  17476. } else {
  17477. mutexBit = new $Uint64(0, 4);
  17478. mutexWait = new $Uint64(2048, 0);
  17479. mutexMask = new $Uint64(2147481600, 0);
  17480. mutexSema = (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu)));
  17481. }
  17482. /* while (true) { */ case 1:
  17483. old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))));
  17484. if ((x = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x.$high === 0 && x.$low === 0)) || (x$1 = new $Uint64(old.$high & 0, (old.$low & 8388600) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) {
  17485. $panic(new $String("inconsistent poll.fdMutex"));
  17486. }
  17487. new$1 = (x$2 = new $Uint64(old.$high & ~mutexBit.$high, (old.$low & ~mutexBit.$low) >>> 0), new $Uint64(x$2.$high - 0, x$2.$low - 8));
  17488. if (!((x$3 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$3.$high === 0 && x$3.$low === 0)))) {
  17489. new$1 = (x$4 = mutexWait, new $Uint64(new$1.$high - x$4.$high, new$1.$low - x$4.$low));
  17490. }
  17491. /* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { $s = 3; continue; }
  17492. /* */ $s = 4; continue;
  17493. /* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3:
  17494. /* */ if (!((x$5 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0)))) { $s = 5; continue; }
  17495. /* */ $s = 6; continue;
  17496. /* if (!((x$5 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0)))) { */ case 5:
  17497. $r = runtime_Semrelease(mutexSema); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  17498. /* } */ case 6:
  17499. $s = -1; return (x$6 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388601) >>> 0), (x$6.$high === 0 && x$6.$low === 1));
  17500. /* } */ case 4:
  17501. /* } */ $s = 1; continue; case 2:
  17502. $s = -1; return false;
  17503. /* */ } return; } if ($f === undefined) { $f = { $blk: fdMutex.ptr.prototype.rwunlock }; } $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f.mu = mu; $f.mutexBit = mutexBit; $f.mutexMask = mutexMask; $f.mutexSema = mutexSema; $f.mutexWait = mutexWait; $f.new$1 = new$1; $f.old = old; $f.read = read; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.$s = $s; $f.$r = $r; return $f;
  17504. };
  17505. fdMutex.prototype.rwunlock = function(read) { return this.$val.rwunlock(read); };
  17506. FD.ptr.prototype.incref = function() {
  17507. var fd;
  17508. fd = this;
  17509. if (!fd.fdmu.incref()) {
  17510. return errClosing(fd.isFile);
  17511. }
  17512. return $ifaceNil;
  17513. };
  17514. FD.prototype.incref = function() { return this.$val.incref(); };
  17515. FD.ptr.prototype.decref = function() {
  17516. var _r, fd, $s, $r;
  17517. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  17518. fd = this;
  17519. /* */ if (fd.fdmu.decref()) { $s = 1; continue; }
  17520. /* */ $s = 2; continue;
  17521. /* if (fd.fdmu.decref()) { */ case 1:
  17522. _r = fd.destroy(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  17523. $s = -1; return _r;
  17524. /* } */ case 2:
  17525. $s = -1; return $ifaceNil;
  17526. /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.decref }; } $f._r = _r; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f;
  17527. };
  17528. FD.prototype.decref = function() { return this.$val.decref(); };
  17529. FD.ptr.prototype.readLock = function() {
  17530. var _r, fd, $s, $r;
  17531. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  17532. fd = this;
  17533. _r = fd.fdmu.rwlock(true); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  17534. /* */ if (!_r) { $s = 1; continue; }
  17535. /* */ $s = 2; continue;
  17536. /* if (!_r) { */ case 1:
  17537. $s = -1; return errClosing(fd.isFile);
  17538. /* } */ case 2:
  17539. $s = -1; return $ifaceNil;
  17540. /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.readLock }; } $f._r = _r; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f;
  17541. };
  17542. FD.prototype.readLock = function() { return this.$val.readLock(); };
  17543. FD.ptr.prototype.readUnlock = function() {
  17544. var _r, _r$1, fd, $s, $r;
  17545. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  17546. fd = this;
  17547. _r = fd.fdmu.rwunlock(true); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  17548. /* */ if (_r) { $s = 1; continue; }
  17549. /* */ $s = 2; continue;
  17550. /* if (_r) { */ case 1:
  17551. _r$1 = fd.destroy(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  17552. _r$1;
  17553. /* } */ case 2:
  17554. $s = -1; return;
  17555. /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.readUnlock }; } $f._r = _r; $f._r$1 = _r$1; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f;
  17556. };
  17557. FD.prototype.readUnlock = function() { return this.$val.readUnlock(); };
  17558. FD.ptr.prototype.writeLock = function() {
  17559. var _r, fd, $s, $r;
  17560. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  17561. fd = this;
  17562. _r = fd.fdmu.rwlock(false); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  17563. /* */ if (!_r) { $s = 1; continue; }
  17564. /* */ $s = 2; continue;
  17565. /* if (!_r) { */ case 1:
  17566. $s = -1; return errClosing(fd.isFile);
  17567. /* } */ case 2:
  17568. $s = -1; return $ifaceNil;
  17569. /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.writeLock }; } $f._r = _r; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f;
  17570. };
  17571. FD.prototype.writeLock = function() { return this.$val.writeLock(); };
  17572. FD.ptr.prototype.writeUnlock = function() {
  17573. var _r, _r$1, fd, $s, $r;
  17574. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  17575. fd = this;
  17576. _r = fd.fdmu.rwunlock(false); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  17577. /* */ if (_r) { $s = 1; continue; }
  17578. /* */ $s = 2; continue;
  17579. /* if (_r) { */ case 1:
  17580. _r$1 = fd.destroy(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  17581. _r$1;
  17582. /* } */ case 2:
  17583. $s = -1; return;
  17584. /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.writeUnlock }; } $f._r = _r; $f._r$1 = _r$1; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f;
  17585. };
  17586. FD.prototype.writeUnlock = function() { return this.$val.writeUnlock(); };
  17587. FD.ptr.prototype.eofError = function(n, err) {
  17588. var err, fd, n;
  17589. fd = this;
  17590. if ((n === 0) && $interfaceIsEqual(err, $ifaceNil) && fd.ZeroReadIsEOF) {
  17591. return io.EOF;
  17592. }
  17593. return err;
  17594. };
  17595. FD.prototype.eofError = function(n, err) { return this.$val.eofError(n, err); };
  17596. FD.ptr.prototype.Fchmod = function(mode) {
  17597. var err, fd, mode, $s, $deferred, $r;
  17598. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; mode = $f.mode; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  17599. fd = this;
  17600. err = fd.incref();
  17601. if (!($interfaceIsEqual(err, $ifaceNil))) {
  17602. $s = -1; return err;
  17603. }
  17604. $deferred.push([$methodVal(fd, "decref"), []]);
  17605. $s = -1; return syscall.Fchmod(fd.Sysfd, mode);
  17606. /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fchmod }; } $f.err = err; $f.fd = fd; $f.mode = mode; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  17607. };
  17608. FD.prototype.Fchmod = function(mode) { return this.$val.Fchmod(mode); };
  17609. FD.ptr.prototype.Fchown = function(uid, gid) {
  17610. var err, fd, gid, uid, $s, $deferred, $r;
  17611. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; gid = $f.gid; uid = $f.uid; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  17612. fd = this;
  17613. err = fd.incref();
  17614. if (!($interfaceIsEqual(err, $ifaceNil))) {
  17615. $s = -1; return err;
  17616. }
  17617. $deferred.push([$methodVal(fd, "decref"), []]);
  17618. $s = -1; return syscall.Fchown(fd.Sysfd, uid, gid);
  17619. /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fchown }; } $f.err = err; $f.fd = fd; $f.gid = gid; $f.uid = uid; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  17620. };
  17621. FD.prototype.Fchown = function(uid, gid) { return this.$val.Fchown(uid, gid); };
  17622. FD.ptr.prototype.Ftruncate = function(size) {
  17623. var err, fd, size, $s, $deferred, $r;
  17624. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; size = $f.size; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  17625. fd = this;
  17626. err = fd.incref();
  17627. if (!($interfaceIsEqual(err, $ifaceNil))) {
  17628. $s = -1; return err;
  17629. }
  17630. $deferred.push([$methodVal(fd, "decref"), []]);
  17631. $s = -1; return syscall.Ftruncate(fd.Sysfd, size);
  17632. /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Ftruncate }; } $f.err = err; $f.fd = fd; $f.size = size; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  17633. };
  17634. FD.prototype.Ftruncate = function(size) { return this.$val.Ftruncate(size); };
  17635. FD.ptr.prototype.Init = function(net, pollable) {
  17636. var err, fd, net, pollable;
  17637. fd = this;
  17638. if (net === "file") {
  17639. fd.isFile = true;
  17640. }
  17641. if (!pollable) {
  17642. fd.isBlocking = 1;
  17643. return $ifaceNil;
  17644. }
  17645. err = fd.pd.init(fd);
  17646. if (!($interfaceIsEqual(err, $ifaceNil))) {
  17647. fd.isBlocking = 1;
  17648. }
  17649. return err;
  17650. };
  17651. FD.prototype.Init = function(net, pollable) { return this.$val.Init(net, pollable); };
  17652. FD.ptr.prototype.destroy = function() {
  17653. var _r, err, fd, $s, $r;
  17654. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  17655. fd = this;
  17656. fd.pd.close();
  17657. _r = $pkg.CloseFunc(fd.Sysfd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  17658. err = _r;
  17659. fd.Sysfd = -1;
  17660. $r = runtime_Semrelease((fd.$ptr_csema || (fd.$ptr_csema = new ptrType(function() { return this.$target.csema; }, function($v) { this.$target.csema = $v; }, fd)))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  17661. $s = -1; return err;
  17662. /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.destroy }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f;
  17663. };
  17664. FD.prototype.destroy = function() { return this.$val.destroy(); };
  17665. FD.ptr.prototype.Close = function() {
  17666. var _r, _r$1, err, fd, $s, $r;
  17667. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; err = $f.err; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  17668. fd = this;
  17669. _r = fd.fdmu.increfAndClose(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  17670. /* */ if (!_r) { $s = 1; continue; }
  17671. /* */ $s = 2; continue;
  17672. /* if (!_r) { */ case 1:
  17673. $s = -1; return errClosing(fd.isFile);
  17674. /* } */ case 2:
  17675. fd.pd.evict();
  17676. _r$1 = fd.decref(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  17677. err = _r$1;
  17678. /* */ if (fd.isBlocking === 0) { $s = 5; continue; }
  17679. /* */ $s = 6; continue;
  17680. /* if (fd.isBlocking === 0) { */ case 5:
  17681. $r = runtime_Semacquire((fd.$ptr_csema || (fd.$ptr_csema = new ptrType(function() { return this.$target.csema; }, function($v) { this.$target.csema = $v; }, fd)))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  17682. /* } */ case 6:
  17683. $s = -1; return err;
  17684. /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Close }; } $f._r = _r; $f._r$1 = _r$1; $f.err = err; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f;
  17685. };
  17686. FD.prototype.Close = function() { return this.$val.Close(); };
  17687. FD.ptr.prototype.Shutdown = function(how) {
  17688. var err, fd, how, $s, $deferred, $r;
  17689. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; how = $f.how; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  17690. fd = this;
  17691. err = fd.incref();
  17692. if (!($interfaceIsEqual(err, $ifaceNil))) {
  17693. $s = -1; return err;
  17694. }
  17695. $deferred.push([$methodVal(fd, "decref"), []]);
  17696. $s = -1; return syscall.Shutdown(fd.Sysfd, how);
  17697. /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Shutdown }; } $f.err = err; $f.fd = fd; $f.how = how; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  17698. };
  17699. FD.prototype.Shutdown = function(how) { return this.$val.Shutdown(how); };
  17700. FD.ptr.prototype.SetBlocking = function() {
  17701. var err, fd, $s, $deferred, $r;
  17702. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  17703. fd = this;
  17704. err = fd.incref();
  17705. if (!($interfaceIsEqual(err, $ifaceNil))) {
  17706. $s = -1; return err;
  17707. }
  17708. $deferred.push([$methodVal(fd, "decref"), []]);
  17709. atomic.StoreUint32((fd.$ptr_isBlocking || (fd.$ptr_isBlocking = new ptrType(function() { return this.$target.isBlocking; }, function($v) { this.$target.isBlocking = $v; }, fd))), 1);
  17710. $s = -1; return syscall.SetNonblock(fd.Sysfd, false);
  17711. /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetBlocking }; } $f.err = err; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  17712. };
  17713. FD.prototype.SetBlocking = function() { return this.$val.SetBlocking(); };
  17714. FD.ptr.prototype.Read = function(p) {
  17715. var _r, _tuple, err, err$1, err$2, fd, n, p, $s, $deferred, $r;
  17716. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; n = $f.n; p = $f.p; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  17717. fd = this;
  17718. _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  17719. err = _r;
  17720. if (!($interfaceIsEqual(err, $ifaceNil))) {
  17721. $s = -1; return [0, err];
  17722. }
  17723. $deferred.push([$methodVal(fd, "readUnlock"), []]);
  17724. if (p.$length === 0) {
  17725. $s = -1; return [0, $ifaceNil];
  17726. }
  17727. err$1 = fd.pd.prepareRead(fd.isFile);
  17728. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  17729. $s = -1; return [0, err$1];
  17730. }
  17731. if (fd.IsStream && p.$length > 1073741824) {
  17732. p = $subslice(p, 0, 1073741824);
  17733. }
  17734. while (true) {
  17735. _tuple = syscall.Read(fd.Sysfd, p);
  17736. n = _tuple[0];
  17737. err$2 = _tuple[1];
  17738. if (!($interfaceIsEqual(err$2, $ifaceNil))) {
  17739. n = 0;
  17740. if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) {
  17741. err$2 = fd.pd.waitRead(fd.isFile);
  17742. if ($interfaceIsEqual(err$2, $ifaceNil)) {
  17743. continue;
  17744. }
  17745. }
  17746. if (false && $interfaceIsEqual(err$2, new syscall.Errno(4))) {
  17747. continue;
  17748. }
  17749. }
  17750. err$2 = fd.eofError(n, err$2);
  17751. $s = -1; return [n, err$2];
  17752. }
  17753. $s = -1; return [0, $ifaceNil];
  17754. /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Read }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.n = n; $f.p = p; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  17755. };
  17756. FD.prototype.Read = function(p) { return this.$val.Read(p); };
  17757. FD.ptr.prototype.Pread = function(p, off) {
  17758. var _r, _tuple, err, err$1, fd, n, off, p, $s, $r;
  17759. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; fd = $f.fd; n = $f.n; off = $f.off; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  17760. fd = this;
  17761. err = fd.incref();
  17762. if (!($interfaceIsEqual(err, $ifaceNil))) {
  17763. $s = -1; return [0, err];
  17764. }
  17765. if (fd.IsStream && p.$length > 1073741824) {
  17766. p = $subslice(p, 0, 1073741824);
  17767. }
  17768. _tuple = syscall.Pread(fd.Sysfd, p, off);
  17769. n = _tuple[0];
  17770. err$1 = _tuple[1];
  17771. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  17772. n = 0;
  17773. }
  17774. _r = fd.decref(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  17775. _r;
  17776. err$1 = fd.eofError(n, err$1);
  17777. $s = -1; return [n, err$1];
  17778. /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Pread }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.fd = fd; $f.n = n; $f.off = off; $f.p = p; $f.$s = $s; $f.$r = $r; return $f;
  17779. };
  17780. FD.prototype.Pread = function(p, off) { return this.$val.Pread(p, off); };
  17781. FD.ptr.prototype.ReadFrom = function(p) {
  17782. var _r, _tuple, err, err$1, err$2, fd, n, p, sa, $s, $deferred, $r;
  17783. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; n = $f.n; p = $f.p; sa = $f.sa; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  17784. fd = this;
  17785. _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  17786. err = _r;
  17787. if (!($interfaceIsEqual(err, $ifaceNil))) {
  17788. $s = -1; return [0, $ifaceNil, err];
  17789. }
  17790. $deferred.push([$methodVal(fd, "readUnlock"), []]);
  17791. err$1 = fd.pd.prepareRead(fd.isFile);
  17792. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  17793. $s = -1; return [0, $ifaceNil, err$1];
  17794. }
  17795. while (true) {
  17796. _tuple = syscall.Recvfrom(fd.Sysfd, p, 0);
  17797. n = _tuple[0];
  17798. sa = _tuple[1];
  17799. err$2 = _tuple[2];
  17800. if (!($interfaceIsEqual(err$2, $ifaceNil))) {
  17801. n = 0;
  17802. if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) {
  17803. err$2 = fd.pd.waitRead(fd.isFile);
  17804. if ($interfaceIsEqual(err$2, $ifaceNil)) {
  17805. continue;
  17806. }
  17807. }
  17808. }
  17809. err$2 = fd.eofError(n, err$2);
  17810. $s = -1; return [n, sa, err$2];
  17811. }
  17812. $s = -1; return [0, $ifaceNil, $ifaceNil];
  17813. /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.ReadFrom }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.n = n; $f.p = p; $f.sa = sa; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  17814. };
  17815. FD.prototype.ReadFrom = function(p) { return this.$val.ReadFrom(p); };
  17816. FD.ptr.prototype.ReadMsg = function(p, oob) {
  17817. var _r, _tuple, err, err$1, err$2, fd, flags, n, oob, oobn, p, sa, $s, $deferred, $r;
  17818. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; flags = $f.flags; n = $f.n; oob = $f.oob; oobn = $f.oobn; p = $f.p; sa = $f.sa; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  17819. fd = this;
  17820. _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  17821. err = _r;
  17822. if (!($interfaceIsEqual(err, $ifaceNil))) {
  17823. $s = -1; return [0, 0, 0, $ifaceNil, err];
  17824. }
  17825. $deferred.push([$methodVal(fd, "readUnlock"), []]);
  17826. err$1 = fd.pd.prepareRead(fd.isFile);
  17827. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  17828. $s = -1; return [0, 0, 0, $ifaceNil, err$1];
  17829. }
  17830. while (true) {
  17831. _tuple = syscall.Recvmsg(fd.Sysfd, p, oob, 0);
  17832. n = _tuple[0];
  17833. oobn = _tuple[1];
  17834. flags = _tuple[2];
  17835. sa = _tuple[3];
  17836. err$2 = _tuple[4];
  17837. if (!($interfaceIsEqual(err$2, $ifaceNil))) {
  17838. if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) {
  17839. err$2 = fd.pd.waitRead(fd.isFile);
  17840. if ($interfaceIsEqual(err$2, $ifaceNil)) {
  17841. continue;
  17842. }
  17843. }
  17844. }
  17845. err$2 = fd.eofError(n, err$2);
  17846. $s = -1; return [n, oobn, flags, sa, err$2];
  17847. }
  17848. $s = -1; return [0, 0, 0, $ifaceNil, $ifaceNil];
  17849. /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, 0, 0, $ifaceNil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.ReadMsg }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.flags = flags; $f.n = n; $f.oob = oob; $f.oobn = oobn; $f.p = p; $f.sa = sa; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  17850. };
  17851. FD.prototype.ReadMsg = function(p, oob) { return this.$val.ReadMsg(p, oob); };
  17852. FD.ptr.prototype.Write = function(p) {
  17853. var _r, _tuple, err, err$1, err$2, fd, max, n, nn, p, $s, $deferred, $r;
  17854. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; max = $f.max; n = $f.n; nn = $f.nn; p = $f.p; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  17855. fd = this;
  17856. _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  17857. err = _r;
  17858. if (!($interfaceIsEqual(err, $ifaceNil))) {
  17859. $s = -1; return [0, err];
  17860. }
  17861. $deferred.push([$methodVal(fd, "writeUnlock"), []]);
  17862. err$1 = fd.pd.prepareWrite(fd.isFile);
  17863. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  17864. $s = -1; return [0, err$1];
  17865. }
  17866. nn = 0;
  17867. while (true) {
  17868. max = p.$length;
  17869. if (fd.IsStream && (max - nn >> 0) > 1073741824) {
  17870. max = nn + 1073741824 >> 0;
  17871. }
  17872. _tuple = syscall.Write(fd.Sysfd, $subslice(p, nn, max));
  17873. n = _tuple[0];
  17874. err$2 = _tuple[1];
  17875. if (n > 0) {
  17876. nn = nn + (n) >> 0;
  17877. }
  17878. if (nn === p.$length) {
  17879. $s = -1; return [nn, err$2];
  17880. }
  17881. if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) {
  17882. err$2 = fd.pd.waitWrite(fd.isFile);
  17883. if ($interfaceIsEqual(err$2, $ifaceNil)) {
  17884. continue;
  17885. }
  17886. }
  17887. if (!($interfaceIsEqual(err$2, $ifaceNil))) {
  17888. $s = -1; return [nn, err$2];
  17889. }
  17890. if (n === 0) {
  17891. $s = -1; return [nn, io.ErrUnexpectedEOF];
  17892. }
  17893. }
  17894. $s = -1; return [0, $ifaceNil];
  17895. /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Write }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.max = max; $f.n = n; $f.nn = nn; $f.p = p; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  17896. };
  17897. FD.prototype.Write = function(p) { return this.$val.Write(p); };
  17898. FD.ptr.prototype.Pwrite = function(p, off) {
  17899. var _tuple, err, err$1, fd, max, n, nn, off, p, x, $s, $deferred, $r;
  17900. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; fd = $f.fd; max = $f.max; n = $f.n; nn = $f.nn; off = $f.off; p = $f.p; x = $f.x; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  17901. fd = this;
  17902. err = fd.incref();
  17903. if (!($interfaceIsEqual(err, $ifaceNil))) {
  17904. $s = -1; return [0, err];
  17905. }
  17906. $deferred.push([$methodVal(fd, "decref"), []]);
  17907. nn = 0;
  17908. while (true) {
  17909. max = p.$length;
  17910. if (fd.IsStream && (max - nn >> 0) > 1073741824) {
  17911. max = nn + 1073741824 >> 0;
  17912. }
  17913. _tuple = syscall.Pwrite(fd.Sysfd, $subslice(p, nn, max), (x = (new $Int64(0, nn)), new $Int64(off.$high + x.$high, off.$low + x.$low)));
  17914. n = _tuple[0];
  17915. err$1 = _tuple[1];
  17916. if (n > 0) {
  17917. nn = nn + (n) >> 0;
  17918. }
  17919. if (nn === p.$length) {
  17920. $s = -1; return [nn, err$1];
  17921. }
  17922. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  17923. $s = -1; return [nn, err$1];
  17924. }
  17925. if (n === 0) {
  17926. $s = -1; return [nn, io.ErrUnexpectedEOF];
  17927. }
  17928. }
  17929. $s = -1; return [0, $ifaceNil];
  17930. /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Pwrite }; } $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.fd = fd; $f.max = max; $f.n = n; $f.nn = nn; $f.off = off; $f.p = p; $f.x = x; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  17931. };
  17932. FD.prototype.Pwrite = function(p, off) { return this.$val.Pwrite(p, off); };
  17933. FD.ptr.prototype.WriteTo = function(p, sa) {
  17934. var _r, _r$1, err, err$1, err$2, fd, p, sa, $s, $deferred, $r;
  17935. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; p = $f.p; sa = $f.sa; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  17936. fd = this;
  17937. _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  17938. err = _r;
  17939. if (!($interfaceIsEqual(err, $ifaceNil))) {
  17940. $s = -1; return [0, err];
  17941. }
  17942. $deferred.push([$methodVal(fd, "writeUnlock"), []]);
  17943. err$1 = fd.pd.prepareWrite(fd.isFile);
  17944. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  17945. $s = -1; return [0, err$1];
  17946. }
  17947. /* while (true) { */ case 2:
  17948. _r$1 = syscall.Sendto(fd.Sysfd, p, 0, sa); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  17949. err$2 = _r$1;
  17950. if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) {
  17951. err$2 = fd.pd.waitWrite(fd.isFile);
  17952. if ($interfaceIsEqual(err$2, $ifaceNil)) {
  17953. /* continue; */ $s = 2; continue;
  17954. }
  17955. }
  17956. if (!($interfaceIsEqual(err$2, $ifaceNil))) {
  17957. $s = -1; return [0, err$2];
  17958. }
  17959. $s = -1; return [p.$length, $ifaceNil];
  17960. /* } */ $s = 2; continue; case 3:
  17961. $s = -1; return [0, $ifaceNil];
  17962. /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.WriteTo }; } $f._r = _r; $f._r$1 = _r$1; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.p = p; $f.sa = sa; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  17963. };
  17964. FD.prototype.WriteTo = function(p, sa) { return this.$val.WriteTo(p, sa); };
  17965. FD.ptr.prototype.WriteMsg = function(p, oob, sa) {
  17966. var _r, _r$1, _tuple, err, err$1, err$2, fd, n, oob, p, sa, $s, $deferred, $r;
  17967. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; n = $f.n; oob = $f.oob; p = $f.p; sa = $f.sa; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  17968. fd = this;
  17969. _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  17970. err = _r;
  17971. if (!($interfaceIsEqual(err, $ifaceNil))) {
  17972. $s = -1; return [0, 0, err];
  17973. }
  17974. $deferred.push([$methodVal(fd, "writeUnlock"), []]);
  17975. err$1 = fd.pd.prepareWrite(fd.isFile);
  17976. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  17977. $s = -1; return [0, 0, err$1];
  17978. }
  17979. /* while (true) { */ case 2:
  17980. _r$1 = syscall.SendmsgN(fd.Sysfd, p, oob, sa, 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  17981. _tuple = _r$1;
  17982. n = _tuple[0];
  17983. err$2 = _tuple[1];
  17984. if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) {
  17985. err$2 = fd.pd.waitWrite(fd.isFile);
  17986. if ($interfaceIsEqual(err$2, $ifaceNil)) {
  17987. /* continue; */ $s = 2; continue;
  17988. }
  17989. }
  17990. if (!($interfaceIsEqual(err$2, $ifaceNil))) {
  17991. $s = -1; return [n, 0, err$2];
  17992. }
  17993. $s = -1; return [n, oob.$length, err$2];
  17994. /* } */ $s = 2; continue; case 3:
  17995. $s = -1; return [0, 0, $ifaceNil];
  17996. /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, 0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.WriteMsg }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.n = n; $f.oob = oob; $f.p = p; $f.sa = sa; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  17997. };
  17998. FD.prototype.WriteMsg = function(p, oob, sa) { return this.$val.WriteMsg(p, oob, sa); };
  17999. FD.ptr.prototype.Accept = function() {
  18000. var _1, _r, _r$1, _tuple, err, err$1, err$2, errcall, fd, rsa, s, $s, $deferred, $r;
  18001. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; errcall = $f.errcall; fd = $f.fd; rsa = $f.rsa; s = $f.s; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  18002. fd = this;
  18003. _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  18004. err = _r;
  18005. if (!($interfaceIsEqual(err, $ifaceNil))) {
  18006. $s = -1; return [-1, $ifaceNil, "", err];
  18007. }
  18008. $deferred.push([$methodVal(fd, "readUnlock"), []]);
  18009. err$1 = fd.pd.prepareRead(fd.isFile);
  18010. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  18011. $s = -1; return [-1, $ifaceNil, "", err$1];
  18012. }
  18013. /* while (true) { */ case 2:
  18014. _r$1 = accept(fd.Sysfd); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  18015. _tuple = _r$1;
  18016. s = _tuple[0];
  18017. rsa = _tuple[1];
  18018. errcall = _tuple[2];
  18019. err$2 = _tuple[3];
  18020. if ($interfaceIsEqual(err$2, $ifaceNil)) {
  18021. $s = -1; return [s, rsa, "", err$2];
  18022. }
  18023. _1 = err$2;
  18024. if ($interfaceIsEqual(_1, new syscall.Errno((11)))) {
  18025. if (fd.pd.pollable()) {
  18026. err$2 = fd.pd.waitRead(fd.isFile);
  18027. if ($interfaceIsEqual(err$2, $ifaceNil)) {
  18028. /* continue; */ $s = 2; continue;
  18029. }
  18030. }
  18031. } else if ($interfaceIsEqual(_1, new syscall.Errno((103)))) {
  18032. /* continue; */ $s = 2; continue;
  18033. }
  18034. $s = -1; return [-1, $ifaceNil, errcall, err$2];
  18035. /* } */ $s = 2; continue; case 3:
  18036. $s = -1; return [0, $ifaceNil, "", $ifaceNil];
  18037. /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Accept }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.errcall = errcall; $f.fd = fd; $f.rsa = rsa; $f.s = s; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  18038. };
  18039. FD.prototype.Accept = function() { return this.$val.Accept(); };
  18040. FD.ptr.prototype.Seek = function(offset, whence) {
  18041. var err, fd, offset, whence, $s, $deferred, $r;
  18042. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; offset = $f.offset; whence = $f.whence; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  18043. fd = this;
  18044. err = fd.incref();
  18045. if (!($interfaceIsEqual(err, $ifaceNil))) {
  18046. $s = -1; return [new $Int64(0, 0), err];
  18047. }
  18048. $deferred.push([$methodVal(fd, "decref"), []]);
  18049. $s = -1; return syscall.Seek(fd.Sysfd, offset, whence);
  18050. /* */ } return; } } catch(err) { $err = err; $s = -1; return [new $Int64(0, 0), $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Seek }; } $f.err = err; $f.fd = fd; $f.offset = offset; $f.whence = whence; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  18051. };
  18052. FD.prototype.Seek = function(offset, whence) { return this.$val.Seek(offset, whence); };
  18053. FD.ptr.prototype.ReadDirent = function(buf) {
  18054. var _tuple, buf, err, err$1, fd, n, $s, $deferred, $r;
  18055. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tuple = $f._tuple; buf = $f.buf; err = $f.err; err$1 = $f.err$1; fd = $f.fd; n = $f.n; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  18056. fd = this;
  18057. err = fd.incref();
  18058. if (!($interfaceIsEqual(err, $ifaceNil))) {
  18059. $s = -1; return [0, err];
  18060. }
  18061. $deferred.push([$methodVal(fd, "decref"), []]);
  18062. while (true) {
  18063. _tuple = syscall.ReadDirent(fd.Sysfd, buf);
  18064. n = _tuple[0];
  18065. err$1 = _tuple[1];
  18066. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  18067. n = 0;
  18068. if ($interfaceIsEqual(err$1, new syscall.Errno(11)) && fd.pd.pollable()) {
  18069. err$1 = fd.pd.waitRead(fd.isFile);
  18070. if ($interfaceIsEqual(err$1, $ifaceNil)) {
  18071. continue;
  18072. }
  18073. }
  18074. }
  18075. $s = -1; return [n, err$1];
  18076. }
  18077. $s = -1; return [0, $ifaceNil];
  18078. /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.ReadDirent }; } $f._tuple = _tuple; $f.buf = buf; $f.err = err; $f.err$1 = err$1; $f.fd = fd; $f.n = n; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  18079. };
  18080. FD.prototype.ReadDirent = function(buf) { return this.$val.ReadDirent(buf); };
  18081. FD.ptr.prototype.Fchdir = function() {
  18082. var err, fd, $s, $deferred, $r;
  18083. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  18084. fd = this;
  18085. err = fd.incref();
  18086. if (!($interfaceIsEqual(err, $ifaceNil))) {
  18087. $s = -1; return err;
  18088. }
  18089. $deferred.push([$methodVal(fd, "decref"), []]);
  18090. $s = -1; return syscall.Fchdir(fd.Sysfd);
  18091. /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fchdir }; } $f.err = err; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  18092. };
  18093. FD.prototype.Fchdir = function() { return this.$val.Fchdir(); };
  18094. FD.ptr.prototype.Fstat = function(s) {
  18095. var err, fd, s, $s, $deferred, $r;
  18096. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; s = $f.s; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  18097. fd = this;
  18098. err = fd.incref();
  18099. if (!($interfaceIsEqual(err, $ifaceNil))) {
  18100. $s = -1; return err;
  18101. }
  18102. $deferred.push([$methodVal(fd, "decref"), []]);
  18103. $s = -1; return syscall.Fstat(fd.Sysfd, s);
  18104. /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fstat }; } $f.err = err; $f.fd = fd; $f.s = s; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  18105. };
  18106. FD.prototype.Fstat = function(s) { return this.$val.Fstat(s); };
  18107. DupCloseOnExec = function(fd) {
  18108. var _1, _r, _tuple, e1, fd, r0, $s, $r;
  18109. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _tuple = $f._tuple; e1 = $f.e1; fd = $f.fd; r0 = $f.r0; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  18110. if (atomic.LoadInt32((tryDupCloexec$24ptr || (tryDupCloexec$24ptr = new ptrType$2(function() { return tryDupCloexec; }, function($v) { tryDupCloexec = $v; })))) === 1) {
  18111. _tuple = fcntl(fd, 1030, 0);
  18112. r0 = _tuple[0];
  18113. e1 = _tuple[1];
  18114. if ($interfaceIsEqual(e1, $ifaceNil)) {
  18115. $s = -1; return [r0, "", $ifaceNil];
  18116. }
  18117. _1 = $assertType(e1, syscall.Errno);
  18118. if ((_1 === (22)) || (_1 === (38))) {
  18119. atomic.StoreInt32((tryDupCloexec$24ptr || (tryDupCloexec$24ptr = new ptrType$2(function() { return tryDupCloexec; }, function($v) { tryDupCloexec = $v; }))), 0);
  18120. } else {
  18121. $s = -1; return [-1, "fcntl", e1];
  18122. }
  18123. }
  18124. _r = dupCloseOnExecOld(fd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  18125. $s = -1; return _r;
  18126. /* */ } return; } if ($f === undefined) { $f = { $blk: DupCloseOnExec }; } $f._1 = _1; $f._r = _r; $f._tuple = _tuple; $f.e1 = e1; $f.fd = fd; $f.r0 = r0; $f.$s = $s; $f.$r = $r; return $f;
  18127. };
  18128. $pkg.DupCloseOnExec = DupCloseOnExec;
  18129. dupCloseOnExecOld = function(fd) {
  18130. var _tuple, err, fd, newfd, $s, $deferred, $r;
  18131. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tuple = $f._tuple; err = $f.err; fd = $f.fd; newfd = $f.newfd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  18132. $r = syscall.ForkLock.RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  18133. $deferred.push([$methodVal(syscall.ForkLock, "RUnlock"), []]);
  18134. _tuple = syscall.Dup(fd);
  18135. newfd = _tuple[0];
  18136. err = _tuple[1];
  18137. if (!($interfaceIsEqual(err, $ifaceNil))) {
  18138. $s = -1; return [-1, "dup", err];
  18139. }
  18140. syscall.CloseOnExec(newfd);
  18141. $s = -1; return [newfd, "", $ifaceNil];
  18142. /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: dupCloseOnExecOld }; } $f._tuple = _tuple; $f.err = err; $f.fd = fd; $f.newfd = newfd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  18143. };
  18144. FD.ptr.prototype.Dup = function() {
  18145. var _r, err, fd, $s, $deferred, $r;
  18146. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  18147. fd = this;
  18148. err = fd.incref();
  18149. if (!($interfaceIsEqual(err, $ifaceNil))) {
  18150. $s = -1; return [-1, "", err];
  18151. }
  18152. $deferred.push([$methodVal(fd, "decref"), []]);
  18153. _r = DupCloseOnExec(fd.Sysfd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  18154. $s = -1; return _r;
  18155. /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Dup }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  18156. };
  18157. FD.prototype.Dup = function() { return this.$val.Dup(); };
  18158. FD.ptr.prototype.WaitWrite = function() {
  18159. var fd;
  18160. fd = this;
  18161. return fd.pd.waitWrite(fd.isFile);
  18162. };
  18163. FD.prototype.WaitWrite = function() { return this.$val.WaitWrite(); };
  18164. FD.ptr.prototype.WriteOnce = function(p) {
  18165. var _r, err, fd, p, $s, $deferred, $r;
  18166. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; p = $f.p; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  18167. fd = this;
  18168. _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  18169. err = _r;
  18170. if (!($interfaceIsEqual(err, $ifaceNil))) {
  18171. $s = -1; return [0, err];
  18172. }
  18173. $deferred.push([$methodVal(fd, "writeUnlock"), []]);
  18174. $s = -1; return syscall.Write(fd.Sysfd, p);
  18175. /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.WriteOnce }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.p = p; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  18176. };
  18177. FD.prototype.WriteOnce = function(p) { return this.$val.WriteOnce(p); };
  18178. FD.ptr.prototype.RawControl = function(f) {
  18179. var err, f, fd, $s, $deferred, $r;
  18180. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; f = $f.f; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  18181. fd = this;
  18182. err = fd.incref();
  18183. if (!($interfaceIsEqual(err, $ifaceNil))) {
  18184. $s = -1; return err;
  18185. }
  18186. $deferred.push([$methodVal(fd, "decref"), []]);
  18187. $r = f(((fd.Sysfd >>> 0))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  18188. $s = -1; return $ifaceNil;
  18189. /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.RawControl }; } $f.err = err; $f.f = f; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  18190. };
  18191. FD.prototype.RawControl = function(f) { return this.$val.RawControl(f); };
  18192. FD.ptr.prototype.RawRead = function(f) {
  18193. var _r, _r$1, err, err$1, err$2, f, fd, $s, $deferred, $r;
  18194. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; f = $f.f; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  18195. fd = this;
  18196. _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  18197. err = _r;
  18198. if (!($interfaceIsEqual(err, $ifaceNil))) {
  18199. $s = -1; return err;
  18200. }
  18201. $deferred.push([$methodVal(fd, "readUnlock"), []]);
  18202. err$1 = fd.pd.prepareRead(fd.isFile);
  18203. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  18204. $s = -1; return err$1;
  18205. }
  18206. /* while (true) { */ case 2:
  18207. _r$1 = f(((fd.Sysfd >>> 0))); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  18208. /* */ if (_r$1) { $s = 4; continue; }
  18209. /* */ $s = 5; continue;
  18210. /* if (_r$1) { */ case 4:
  18211. $s = -1; return $ifaceNil;
  18212. /* } */ case 5:
  18213. err$2 = fd.pd.waitRead(fd.isFile);
  18214. if (!($interfaceIsEqual(err$2, $ifaceNil))) {
  18215. $s = -1; return err$2;
  18216. }
  18217. /* } */ $s = 2; continue; case 3:
  18218. $s = -1; return $ifaceNil;
  18219. /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.RawRead }; } $f._r = _r; $f._r$1 = _r$1; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.f = f; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  18220. };
  18221. FD.prototype.RawRead = function(f) { return this.$val.RawRead(f); };
  18222. FD.ptr.prototype.RawWrite = function(f) {
  18223. var _r, _r$1, err, err$1, err$2, f, fd, $s, $deferred, $r;
  18224. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; f = $f.f; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  18225. fd = this;
  18226. _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  18227. err = _r;
  18228. if (!($interfaceIsEqual(err, $ifaceNil))) {
  18229. $s = -1; return err;
  18230. }
  18231. $deferred.push([$methodVal(fd, "writeUnlock"), []]);
  18232. err$1 = fd.pd.prepareWrite(fd.isFile);
  18233. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  18234. $s = -1; return err$1;
  18235. }
  18236. /* while (true) { */ case 2:
  18237. _r$1 = f(((fd.Sysfd >>> 0))); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  18238. /* */ if (_r$1) { $s = 4; continue; }
  18239. /* */ $s = 5; continue;
  18240. /* if (_r$1) { */ case 4:
  18241. $s = -1; return $ifaceNil;
  18242. /* } */ case 5:
  18243. err$2 = fd.pd.waitWrite(fd.isFile);
  18244. if (!($interfaceIsEqual(err$2, $ifaceNil))) {
  18245. $s = -1; return err$2;
  18246. }
  18247. /* } */ $s = 2; continue; case 3:
  18248. $s = -1; return $ifaceNil;
  18249. /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.RawWrite }; } $f._r = _r; $f._r$1 = _r$1; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.f = f; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  18250. };
  18251. FD.prototype.RawWrite = function(f) { return this.$val.RawWrite(f); };
  18252. writev = function(fd, iovecs) {
  18253. var _tuple, e, fd, iovecs, r;
  18254. _tuple = syscall.Syscall(20, ((fd >>> 0)), (($sliceToArray(iovecs))), ((iovecs.$length >>> 0)));
  18255. r = _tuple[0];
  18256. e = _tuple[2];
  18257. if (!((e === 0))) {
  18258. return [r, new syscall.Errno((e))];
  18259. }
  18260. return [r, $ifaceNil];
  18261. };
  18262. accept = function(s) {
  18263. var _1, _r, _r$1, _r$2, _tuple, _tuple$1, err, ns, s, sa, $s, $r;
  18264. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; err = $f.err; ns = $f.ns; s = $f.s; sa = $f.sa; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  18265. _r = $pkg.Accept4Func(s, 526336); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  18266. _tuple = _r;
  18267. ns = _tuple[0];
  18268. sa = _tuple[1];
  18269. err = _tuple[2];
  18270. _1 = err;
  18271. if ($interfaceIsEqual(_1, $ifaceNil)) {
  18272. $s = -1; return [ns, sa, "", $ifaceNil];
  18273. } else if ($interfaceIsEqual(_1, new syscall.Errno((38)))) {
  18274. } else if ($interfaceIsEqual(_1, new syscall.Errno((22)))) {
  18275. } else if ($interfaceIsEqual(_1, new syscall.Errno((13)))) {
  18276. } else if ($interfaceIsEqual(_1, new syscall.Errno((14)))) {
  18277. } else {
  18278. $s = -1; return [-1, sa, "accept4", err];
  18279. }
  18280. _r$1 = $pkg.AcceptFunc(s); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  18281. _tuple$1 = _r$1;
  18282. ns = _tuple$1[0];
  18283. sa = _tuple$1[1];
  18284. err = _tuple$1[2];
  18285. if ($interfaceIsEqual(err, $ifaceNil)) {
  18286. syscall.CloseOnExec(ns);
  18287. }
  18288. if (!($interfaceIsEqual(err, $ifaceNil))) {
  18289. $s = -1; return [-1, $ifaceNil, "accept", err];
  18290. }
  18291. err = syscall.SetNonblock(ns, true);
  18292. /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
  18293. /* */ $s = 4; continue;
  18294. /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
  18295. _r$2 = $pkg.CloseFunc(ns); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  18296. _r$2;
  18297. $s = -1; return [-1, $ifaceNil, "setnonblock", err];
  18298. /* } */ case 4:
  18299. $s = -1; return [ns, sa, "", $ifaceNil];
  18300. /* */ } return; } if ($f === undefined) { $f = { $blk: accept }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.err = err; $f.ns = ns; $f.s = s; $f.sa = sa; $f.$s = $s; $f.$r = $r; return $f;
  18301. };
  18302. FD.ptr.prototype.SetsockoptInt = function(level, name, arg) {
  18303. var arg, err, fd, level, name, $s, $deferred, $r;
  18304. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; arg = $f.arg; err = $f.err; fd = $f.fd; level = $f.level; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  18305. fd = this;
  18306. err = fd.incref();
  18307. if (!($interfaceIsEqual(err, $ifaceNil))) {
  18308. $s = -1; return err;
  18309. }
  18310. $deferred.push([$methodVal(fd, "decref"), []]);
  18311. $s = -1; return syscall.SetsockoptInt(fd.Sysfd, level, name, arg);
  18312. /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptInt }; } $f.arg = arg; $f.err = err; $f.fd = fd; $f.level = level; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  18313. };
  18314. FD.prototype.SetsockoptInt = function(level, name, arg) { return this.$val.SetsockoptInt(level, name, arg); };
  18315. FD.ptr.prototype.SetsockoptInet4Addr = function(level, name, arg) {
  18316. var arg, err, fd, level, name, $s, $deferred, $r;
  18317. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; arg = $f.arg; err = $f.err; fd = $f.fd; level = $f.level; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  18318. fd = this;
  18319. err = fd.incref();
  18320. if (!($interfaceIsEqual(err, $ifaceNil))) {
  18321. $s = -1; return err;
  18322. }
  18323. $deferred.push([$methodVal(fd, "decref"), []]);
  18324. $s = -1; return syscall.SetsockoptInet4Addr(fd.Sysfd, level, name, $clone(arg, arrayType));
  18325. /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptInet4Addr }; } $f.arg = arg; $f.err = err; $f.fd = fd; $f.level = level; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  18326. };
  18327. FD.prototype.SetsockoptInet4Addr = function(level, name, arg) { return this.$val.SetsockoptInet4Addr(level, name, arg); };
  18328. FD.ptr.prototype.SetsockoptLinger = function(level, name, l) {
  18329. var err, fd, l, level, name, $s, $deferred, $r;
  18330. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; l = $f.l; level = $f.level; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  18331. fd = this;
  18332. err = fd.incref();
  18333. if (!($interfaceIsEqual(err, $ifaceNil))) {
  18334. $s = -1; return err;
  18335. }
  18336. $deferred.push([$methodVal(fd, "decref"), []]);
  18337. $s = -1; return syscall.SetsockoptLinger(fd.Sysfd, level, name, l);
  18338. /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptLinger }; } $f.err = err; $f.fd = fd; $f.l = l; $f.level = level; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  18339. };
  18340. FD.prototype.SetsockoptLinger = function(level, name, l) { return this.$val.SetsockoptLinger(level, name, l); };
  18341. FD.ptr.prototype.SetsockoptIPMreqn = function(level, name, mreq) {
  18342. var err, fd, level, mreq, name, $s, $deferred, $r;
  18343. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; level = $f.level; mreq = $f.mreq; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  18344. fd = this;
  18345. err = fd.incref();
  18346. if (!($interfaceIsEqual(err, $ifaceNil))) {
  18347. $s = -1; return err;
  18348. }
  18349. $deferred.push([$methodVal(fd, "decref"), []]);
  18350. $s = -1; return syscall.SetsockoptIPMreqn(fd.Sysfd, level, name, mreq);
  18351. /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptIPMreqn }; } $f.err = err; $f.fd = fd; $f.level = level; $f.mreq = mreq; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  18352. };
  18353. FD.prototype.SetsockoptIPMreqn = function(level, name, mreq) { return this.$val.SetsockoptIPMreqn(level, name, mreq); };
  18354. FD.ptr.prototype.SetsockoptByte = function(level, name, arg) {
  18355. var arg, err, fd, level, name, $s, $deferred, $r;
  18356. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; arg = $f.arg; err = $f.err; fd = $f.fd; level = $f.level; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  18357. fd = this;
  18358. err = fd.incref();
  18359. if (!($interfaceIsEqual(err, $ifaceNil))) {
  18360. $s = -1; return err;
  18361. }
  18362. $deferred.push([$methodVal(fd, "decref"), []]);
  18363. $s = -1; return syscall.SetsockoptByte(fd.Sysfd, level, name, arg);
  18364. /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptByte }; } $f.arg = arg; $f.err = err; $f.fd = fd; $f.level = level; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  18365. };
  18366. FD.prototype.SetsockoptByte = function(level, name, arg) { return this.$val.SetsockoptByte(level, name, arg); };
  18367. FD.ptr.prototype.SetsockoptIPMreq = function(level, name, mreq) {
  18368. var err, fd, level, mreq, name, $s, $deferred, $r;
  18369. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; level = $f.level; mreq = $f.mreq; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  18370. fd = this;
  18371. err = fd.incref();
  18372. if (!($interfaceIsEqual(err, $ifaceNil))) {
  18373. $s = -1; return err;
  18374. }
  18375. $deferred.push([$methodVal(fd, "decref"), []]);
  18376. $s = -1; return syscall.SetsockoptIPMreq(fd.Sysfd, level, name, mreq);
  18377. /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptIPMreq }; } $f.err = err; $f.fd = fd; $f.level = level; $f.mreq = mreq; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  18378. };
  18379. FD.prototype.SetsockoptIPMreq = function(level, name, mreq) { return this.$val.SetsockoptIPMreq(level, name, mreq); };
  18380. FD.ptr.prototype.SetsockoptIPv6Mreq = function(level, name, mreq) {
  18381. var err, fd, level, mreq, name, $s, $deferred, $r;
  18382. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; level = $f.level; mreq = $f.mreq; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  18383. fd = this;
  18384. err = fd.incref();
  18385. if (!($interfaceIsEqual(err, $ifaceNil))) {
  18386. $s = -1; return err;
  18387. }
  18388. $deferred.push([$methodVal(fd, "decref"), []]);
  18389. $s = -1; return syscall.SetsockoptIPv6Mreq(fd.Sysfd, level, name, mreq);
  18390. /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptIPv6Mreq }; } $f.err = err; $f.fd = fd; $f.level = level; $f.mreq = mreq; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  18391. };
  18392. FD.prototype.SetsockoptIPv6Mreq = function(level, name, mreq) { return this.$val.SetsockoptIPv6Mreq(level, name, mreq); };
  18393. FD.ptr.prototype.Writev = function(v) {
  18394. var _i, _r, _ref, _tuple, chunk, err, err$1, err$2, fd, iovecs, maxVec, n, v, wrote, x, x$1, x$2, $s, $deferred, $r;
  18395. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _tuple = $f._tuple; chunk = $f.chunk; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; iovecs = $f.iovecs; maxVec = $f.maxVec; n = $f.n; v = $f.v; wrote = $f.wrote; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  18396. iovecs = [iovecs];
  18397. fd = this;
  18398. _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  18399. err = _r;
  18400. if (!($interfaceIsEqual(err, $ifaceNil))) {
  18401. $s = -1; return [new $Int64(0, 0), err];
  18402. }
  18403. $deferred.push([$methodVal(fd, "writeUnlock"), []]);
  18404. err$1 = fd.pd.prepareWrite(fd.isFile);
  18405. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  18406. $s = -1; return [new $Int64(0, 0), err$1];
  18407. }
  18408. iovecs[0] = sliceType$2.nil;
  18409. if (!(fd.iovecs === ptrType$6.nil)) {
  18410. iovecs[0] = fd.iovecs.$get();
  18411. }
  18412. maxVec = 1024;
  18413. n = new $Int64(0, 0);
  18414. err$2 = $ifaceNil;
  18415. /* while (true) { */ case 2:
  18416. /* if (!(v.$get().$length > 0)) { break; } */ if(!(v.$get().$length > 0)) { $s = 3; continue; }
  18417. iovecs[0] = $subslice(iovecs[0], 0, 0);
  18418. _ref = v.$get();
  18419. _i = 0;
  18420. /* while (true) { */ case 4:
  18421. /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; }
  18422. chunk = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  18423. if (chunk.$length === 0) {
  18424. _i++;
  18425. /* continue; */ $s = 4; continue;
  18426. }
  18427. iovecs[0] = $append(iovecs[0], new syscall.Iovec.ptr($indexPtr(chunk.$array, chunk.$offset + 0, ptrType$7), new $Uint64(0, 0)));
  18428. if (fd.IsStream && chunk.$length > 1073741824) {
  18429. (x = iovecs[0].$length - 1 >> 0, ((x < 0 || x >= iovecs[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : iovecs[0].$array[iovecs[0].$offset + x])).SetLen(1073741824);
  18430. /* break; */ $s = 5; continue;
  18431. }
  18432. (x$1 = iovecs[0].$length - 1 >> 0, ((x$1 < 0 || x$1 >= iovecs[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : iovecs[0].$array[iovecs[0].$offset + x$1])).SetLen(chunk.$length);
  18433. if (iovecs[0].$length === maxVec) {
  18434. /* break; */ $s = 5; continue;
  18435. }
  18436. _i++;
  18437. /* } */ $s = 4; continue; case 5:
  18438. if (iovecs[0].$length === 0) {
  18439. /* break; */ $s = 3; continue;
  18440. }
  18441. fd.iovecs = (iovecs.$ptr || (iovecs.$ptr = new ptrType$6(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, iovecs)));
  18442. wrote = 0;
  18443. _tuple = writev(fd.Sysfd, iovecs[0]);
  18444. wrote = _tuple[0];
  18445. err$2 = _tuple[1];
  18446. if (wrote === 4294967295) {
  18447. wrote = 0;
  18448. }
  18449. $r = $pkg.TestHookDidWritev(((wrote >> 0))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  18450. n = (x$2 = (new $Int64(0, wrote.constructor === Number ? wrote : 1)), new $Int64(n.$high + x$2.$high, n.$low + x$2.$low));
  18451. consume(v, (new $Int64(0, wrote.constructor === Number ? wrote : 1)));
  18452. if (!($interfaceIsEqual(err$2, $ifaceNil))) {
  18453. if ($assertType(err$2, syscall.Errno) === 11) {
  18454. err$2 = fd.pd.waitWrite(fd.isFile);
  18455. if ($interfaceIsEqual(err$2, $ifaceNil)) {
  18456. /* continue; */ $s = 2; continue;
  18457. }
  18458. }
  18459. /* break; */ $s = 3; continue;
  18460. }
  18461. if ((n.$high === 0 && n.$low === 0)) {
  18462. err$2 = io.ErrUnexpectedEOF;
  18463. /* break; */ $s = 3; continue;
  18464. }
  18465. /* } */ $s = 2; continue; case 3:
  18466. $s = -1; return [n, err$2];
  18467. /* */ } return; } } catch(err) { $err = err; $s = -1; return [new $Int64(0, 0), $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Writev }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._tuple = _tuple; $f.chunk = chunk; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.iovecs = iovecs; $f.maxVec = maxVec; $f.n = n; $f.v = v; $f.wrote = wrote; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  18468. };
  18469. FD.prototype.Writev = function(v) { return this.$val.Writev(v); };
  18470. ptrType$9.methods = [{prop: "init", name: "init", pkg: "internal/poll", typ: $funcType([ptrType$8], [$error], false)}, {prop: "close", name: "close", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "evict", name: "evict", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "prepare", name: "prepare", pkg: "internal/poll", typ: $funcType([$Int, $Bool], [$error], false)}, {prop: "prepareRead", name: "prepareRead", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "prepareWrite", name: "prepareWrite", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "wait", name: "wait", pkg: "internal/poll", typ: $funcType([$Int, $Bool], [$error], false)}, {prop: "waitRead", name: "waitRead", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "waitWrite", name: "waitWrite", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "waitCanceled", name: "waitCanceled", pkg: "internal/poll", typ: $funcType([$Int], [], false)}, {prop: "pollable", name: "pollable", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}];
  18471. ptrType$10.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}];
  18472. ptrType$11.methods = [{prop: "incref", name: "incref", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "increfAndClose", name: "increfAndClose", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "decref", name: "decref", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "rwlock", name: "rwlock", pkg: "internal/poll", typ: $funcType([$Bool], [$Bool], false)}, {prop: "rwunlock", name: "rwunlock", pkg: "internal/poll", typ: $funcType([$Bool], [$Bool], false)}];
  18473. ptrType$8.methods = [{prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "Fsync", name: "Fsync", pkg: "", typ: $funcType([], [$error], false)}, {prop: "incref", name: "incref", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "decref", name: "decref", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "readLock", name: "readLock", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "readUnlock", name: "readUnlock", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "writeLock", name: "writeLock", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "writeUnlock", name: "writeUnlock", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "eofError", name: "eofError", pkg: "internal/poll", typ: $funcType([$Int, $error], [$error], false)}, {prop: "Fchmod", name: "Fchmod", pkg: "", typ: $funcType([$Uint32], [$error], false)}, {prop: "Fchown", name: "Fchown", pkg: "", typ: $funcType([$Int, $Int], [$error], false)}, {prop: "Ftruncate", name: "Ftruncate", pkg: "", typ: $funcType([$Int64], [$error], false)}, {prop: "Init", name: "Init", pkg: "", typ: $funcType([$String, $Bool], [$error], false)}, {prop: "destroy", name: "destroy", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Shutdown", name: "Shutdown", pkg: "", typ: $funcType([$Int], [$error], false)}, {prop: "SetBlocking", name: "SetBlocking", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Pread", name: "Pread", pkg: "", typ: $funcType([sliceType$3, $Int64], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([sliceType$3], [$Int, syscall.Sockaddr, $error], false)}, {prop: "ReadMsg", name: "ReadMsg", pkg: "", typ: $funcType([sliceType$3, sliceType$3], [$Int, $Int, $Int, syscall.Sockaddr, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Pwrite", name: "Pwrite", pkg: "", typ: $funcType([sliceType$3, $Int64], [$Int, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([sliceType$3, syscall.Sockaddr], [$Int, $error], false)}, {prop: "WriteMsg", name: "WriteMsg", pkg: "", typ: $funcType([sliceType$3, sliceType$3, syscall.Sockaddr], [$Int, $Int, $error], false)}, {prop: "Accept", name: "Accept", pkg: "", typ: $funcType([], [$Int, syscall.Sockaddr, $String, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "ReadDirent", name: "ReadDirent", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Fchdir", name: "Fchdir", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Fstat", name: "Fstat", pkg: "", typ: $funcType([ptrType$12], [$error], false)}, {prop: "Dup", name: "Dup", pkg: "", typ: $funcType([], [$Int, $String, $error], false)}, {prop: "WaitWrite", name: "WaitWrite", pkg: "", typ: $funcType([], [$error], false)}, {prop: "WriteOnce", name: "WriteOnce", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "RawControl", name: "RawControl", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "RawRead", name: "RawRead", pkg: "", typ: $funcType([funcType$1], [$error], false)}, {prop: "RawWrite", name: "RawWrite", pkg: "", typ: $funcType([funcType$1], [$error], false)}, {prop: "SetsockoptInt", name: "SetsockoptInt", pkg: "", typ: $funcType([$Int, $Int, $Int], [$error], false)}, {prop: "SetsockoptInet4Addr", name: "SetsockoptInet4Addr", pkg: "", typ: $funcType([$Int, $Int, arrayType], [$error], false)}, {prop: "SetsockoptLinger", name: "SetsockoptLinger", pkg: "", typ: $funcType([$Int, $Int, ptrType$13], [$error], false)}, {prop: "SetsockoptIPMreqn", name: "SetsockoptIPMreqn", pkg: "", typ: $funcType([$Int, $Int, ptrType$14], [$error], false)}, {prop: "SetsockoptByte", name: "SetsockoptByte", pkg: "", typ: $funcType([$Int, $Int, $Uint8], [$error], false)}, {prop: "SetsockoptIPMreq", name: "SetsockoptIPMreq", pkg: "", typ: $funcType([$Int, $Int, ptrType$15], [$error], false)}, {prop: "SetsockoptIPv6Mreq", name: "SetsockoptIPv6Mreq", pkg: "", typ: $funcType([$Int, $Int, ptrType$16], [$error], false)}, {prop: "Writev", name: "Writev", pkg: "", typ: $funcType([ptrType$17], [$Int64, $error], false)}];
  18474. pollDesc.init("internal/poll", [{prop: "closing", name: "closing", embedded: false, exported: false, typ: $Bool, tag: ""}]);
  18475. TimeoutError.init("", []);
  18476. fdMutex.init("internal/poll", [{prop: "state", name: "state", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "rsema", name: "rsema", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "wsema", name: "wsema", embedded: false, exported: false, typ: $Uint32, tag: ""}]);
  18477. FD.init("internal/poll", [{prop: "fdmu", name: "fdmu", embedded: false, exported: false, typ: fdMutex, tag: ""}, {prop: "Sysfd", name: "Sysfd", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "pd", name: "pd", embedded: false, exported: false, typ: pollDesc, tag: ""}, {prop: "iovecs", name: "iovecs", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "csema", name: "csema", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "isBlocking", name: "isBlocking", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "IsStream", name: "IsStream", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ZeroReadIsEOF", name: "ZeroReadIsEOF", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "isFile", name: "isFile", embedded: false, exported: false, typ: $Bool, tag: ""}]);
  18478. $init = function() {
  18479. $pkg.$init = function() {};
  18480. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  18481. $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  18482. $r = io.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  18483. $r = runtime.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  18484. $r = atomic.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  18485. $r = syscall.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  18486. $r = time.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  18487. semWaiters = {};
  18488. $pkg.ErrNetClosing = errors.New("use of closed network connection");
  18489. $pkg.ErrFileClosing = errors.New("use of closed file");
  18490. $pkg.ErrNoDeadline = errors.New("file type does not support deadline");
  18491. $pkg.ErrTimeout = new TimeoutError.ptr();
  18492. $pkg.TestHookDidWritev = (function(wrote) {
  18493. var wrote;
  18494. });
  18495. tryDupCloexec = 1;
  18496. $pkg.Accept4Func = syscall.Accept4;
  18497. $pkg.CloseFunc = syscall.Close;
  18498. $pkg.AcceptFunc = syscall.Accept;
  18499. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  18500. };
  18501. $pkg.$init = $init;
  18502. return $pkg;
  18503. })();
  18504. $packages["internal/syscall/unix"] = (function() {
  18505. var $pkg = {}, $init, atomic, syscall, IsNonblock;
  18506. atomic = $packages["sync/atomic"];
  18507. syscall = $packages["syscall"];
  18508. IsNonblock = function(fd) {
  18509. var _tmp, _tmp$1, err, fd, nonblocking;
  18510. nonblocking = false;
  18511. err = $ifaceNil;
  18512. _tmp = false;
  18513. _tmp$1 = $ifaceNil;
  18514. nonblocking = _tmp;
  18515. err = _tmp$1;
  18516. return [nonblocking, err];
  18517. };
  18518. $pkg.IsNonblock = IsNonblock;
  18519. $init = function() {
  18520. $pkg.$init = function() {};
  18521. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  18522. $r = atomic.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  18523. $r = syscall.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  18524. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  18525. };
  18526. $pkg.$init = $init;
  18527. return $pkg;
  18528. })();
  18529. $packages["internal/testlog"] = (function() {
  18530. var $pkg = {}, $init, atomic, Interface, ptrType, logger, Logger, Open, Stat;
  18531. atomic = $packages["sync/atomic"];
  18532. Interface = $pkg.Interface = $newType(8, $kindInterface, "testlog.Interface", true, "internal/testlog", true, null);
  18533. ptrType = $ptrType(Interface);
  18534. Logger = function() {
  18535. var impl;
  18536. impl = logger.Load();
  18537. if ($interfaceIsEqual(impl, $ifaceNil)) {
  18538. return $ifaceNil;
  18539. }
  18540. return $assertType(impl, ptrType).$get();
  18541. };
  18542. $pkg.Logger = Logger;
  18543. Open = function(name) {
  18544. var log, name, $s, $r;
  18545. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; log = $f.log; name = $f.name; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  18546. log = Logger();
  18547. /* */ if (!($interfaceIsEqual(log, $ifaceNil))) { $s = 1; continue; }
  18548. /* */ $s = 2; continue;
  18549. /* if (!($interfaceIsEqual(log, $ifaceNil))) { */ case 1:
  18550. $r = log.Open(name); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  18551. /* } */ case 2:
  18552. $s = -1; return;
  18553. /* */ } return; } if ($f === undefined) { $f = { $blk: Open }; } $f.log = log; $f.name = name; $f.$s = $s; $f.$r = $r; return $f;
  18554. };
  18555. $pkg.Open = Open;
  18556. Stat = function(name) {
  18557. var log, name, $s, $r;
  18558. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; log = $f.log; name = $f.name; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  18559. log = Logger();
  18560. /* */ if (!($interfaceIsEqual(log, $ifaceNil))) { $s = 1; continue; }
  18561. /* */ $s = 2; continue;
  18562. /* if (!($interfaceIsEqual(log, $ifaceNil))) { */ case 1:
  18563. $r = log.Stat(name); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  18564. /* } */ case 2:
  18565. $s = -1; return;
  18566. /* */ } return; } if ($f === undefined) { $f = { $blk: Stat }; } $f.log = log; $f.name = name; $f.$s = $s; $f.$r = $r; return $f;
  18567. };
  18568. $pkg.Stat = Stat;
  18569. Interface.init([{prop: "Chdir", name: "Chdir", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Getenv", name: "Getenv", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Open", name: "Open", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Stat", name: "Stat", pkg: "", typ: $funcType([$String], [], false)}]);
  18570. $init = function() {
  18571. $pkg.$init = function() {};
  18572. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  18573. $r = atomic.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  18574. logger = new atomic.Value.ptr($ifaceNil);
  18575. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  18576. };
  18577. $pkg.$init = $init;
  18578. return $pkg;
  18579. })();
  18580. $packages["os"] = (function() {
  18581. var $pkg = {}, $init, errors, js, poll, unix, testlog, io, runtime, sync, atomic, syscall, time, dirInfo, timeout, PathError, SyscallError, LinkError, file, rawConn, File, FileInfo, FileMode, fileStat, sliceType, ptrType, sliceType$1, ptrType$1, sliceType$2, ptrType$2, ptrType$3, ptrType$4, sliceType$5, ptrType$12, arrayType$1, ptrType$13, funcType$1, ptrType$15, arrayType$6, ptrType$16, funcType$2, funcType$3, ptrType$18, errFinished, lstat, runtime_args, init, runtime_beforeExit, NewSyscallError, IsNotExist, underlyingError, wrapSyscallError, isNotExist, setStickyBit, Open, OpenFile, Chmod, sigpipe, syscallMode, chmod, fixLongPath, NewFile, newFile, epipecheck, openFileNolog, basename, init$1, Exit, newRawConn, Stat, Lstat, fillFileStatFromSys, timespecToTime, statNolog, lstatNolog;
  18582. errors = $packages["errors"];
  18583. js = $packages["github.com/gopherjs/gopherjs/js"];
  18584. poll = $packages["internal/poll"];
  18585. unix = $packages["internal/syscall/unix"];
  18586. testlog = $packages["internal/testlog"];
  18587. io = $packages["io"];
  18588. runtime = $packages["runtime"];
  18589. sync = $packages["sync"];
  18590. atomic = $packages["sync/atomic"];
  18591. syscall = $packages["syscall"];
  18592. time = $packages["time"];
  18593. dirInfo = $pkg.dirInfo = $newType(0, $kindStruct, "os.dirInfo", true, "os", false, function(buf_, nbuf_, bufp_) {
  18594. this.$val = this;
  18595. if (arguments.length === 0) {
  18596. this.buf = sliceType$2.nil;
  18597. this.nbuf = 0;
  18598. this.bufp = 0;
  18599. return;
  18600. }
  18601. this.buf = buf_;
  18602. this.nbuf = nbuf_;
  18603. this.bufp = bufp_;
  18604. });
  18605. timeout = $pkg.timeout = $newType(8, $kindInterface, "os.timeout", true, "os", false, null);
  18606. PathError = $pkg.PathError = $newType(0, $kindStruct, "os.PathError", true, "os", true, function(Op_, Path_, Err_) {
  18607. this.$val = this;
  18608. if (arguments.length === 0) {
  18609. this.Op = "";
  18610. this.Path = "";
  18611. this.Err = $ifaceNil;
  18612. return;
  18613. }
  18614. this.Op = Op_;
  18615. this.Path = Path_;
  18616. this.Err = Err_;
  18617. });
  18618. SyscallError = $pkg.SyscallError = $newType(0, $kindStruct, "os.SyscallError", true, "os", true, function(Syscall_, Err_) {
  18619. this.$val = this;
  18620. if (arguments.length === 0) {
  18621. this.Syscall = "";
  18622. this.Err = $ifaceNil;
  18623. return;
  18624. }
  18625. this.Syscall = Syscall_;
  18626. this.Err = Err_;
  18627. });
  18628. LinkError = $pkg.LinkError = $newType(0, $kindStruct, "os.LinkError", true, "os", true, function(Op_, Old_, New_, Err_) {
  18629. this.$val = this;
  18630. if (arguments.length === 0) {
  18631. this.Op = "";
  18632. this.Old = "";
  18633. this.New = "";
  18634. this.Err = $ifaceNil;
  18635. return;
  18636. }
  18637. this.Op = Op_;
  18638. this.Old = Old_;
  18639. this.New = New_;
  18640. this.Err = Err_;
  18641. });
  18642. file = $pkg.file = $newType(0, $kindStruct, "os.file", true, "os", false, function(pfd_, name_, dirinfo_, nonblock_, stdoutOrErr_) {
  18643. this.$val = this;
  18644. if (arguments.length === 0) {
  18645. this.pfd = new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), 0, new poll.pollDesc.ptr(false), ptrType$12.nil, 0, 0, false, false, false);
  18646. this.name = "";
  18647. this.dirinfo = ptrType$1.nil;
  18648. this.nonblock = false;
  18649. this.stdoutOrErr = false;
  18650. return;
  18651. }
  18652. this.pfd = pfd_;
  18653. this.name = name_;
  18654. this.dirinfo = dirinfo_;
  18655. this.nonblock = nonblock_;
  18656. this.stdoutOrErr = stdoutOrErr_;
  18657. });
  18658. rawConn = $pkg.rawConn = $newType(0, $kindStruct, "os.rawConn", true, "os", false, function(file_) {
  18659. this.$val = this;
  18660. if (arguments.length === 0) {
  18661. this.file = ptrType.nil;
  18662. return;
  18663. }
  18664. this.file = file_;
  18665. });
  18666. File = $pkg.File = $newType(0, $kindStruct, "os.File", true, "os", true, function(file_) {
  18667. this.$val = this;
  18668. if (arguments.length === 0) {
  18669. this.file = ptrType$13.nil;
  18670. return;
  18671. }
  18672. this.file = file_;
  18673. });
  18674. FileInfo = $pkg.FileInfo = $newType(8, $kindInterface, "os.FileInfo", true, "os", true, null);
  18675. FileMode = $pkg.FileMode = $newType(4, $kindUint32, "os.FileMode", true, "os", true, null);
  18676. fileStat = $pkg.fileStat = $newType(0, $kindStruct, "os.fileStat", true, "os", false, function(name_, size_, mode_, modTime_, sys_) {
  18677. this.$val = this;
  18678. if (arguments.length === 0) {
  18679. this.name = "";
  18680. this.size = new $Int64(0, 0);
  18681. this.mode = 0;
  18682. this.modTime = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$15.nil);
  18683. this.sys = new syscall.Stat_t.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), 0, 0, 0, 0, new $Uint64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), arrayType$1.zero());
  18684. return;
  18685. }
  18686. this.name = name_;
  18687. this.size = size_;
  18688. this.mode = mode_;
  18689. this.modTime = modTime_;
  18690. this.sys = sys_;
  18691. });
  18692. sliceType = $sliceType($String);
  18693. ptrType = $ptrType(File);
  18694. sliceType$1 = $sliceType(FileInfo);
  18695. ptrType$1 = $ptrType(dirInfo);
  18696. sliceType$2 = $sliceType($Uint8);
  18697. ptrType$2 = $ptrType(PathError);
  18698. ptrType$3 = $ptrType(LinkError);
  18699. ptrType$4 = $ptrType(SyscallError);
  18700. sliceType$5 = $sliceType(syscall.Iovec);
  18701. ptrType$12 = $ptrType(sliceType$5);
  18702. arrayType$1 = $arrayType($Int64, 3);
  18703. ptrType$13 = $ptrType(file);
  18704. funcType$1 = $funcType([ptrType$13], [$error], false);
  18705. ptrType$15 = $ptrType(time.Location);
  18706. arrayType$6 = $arrayType($Uint8, 32);
  18707. ptrType$16 = $ptrType(fileStat);
  18708. funcType$2 = $funcType([$Uintptr], [], false);
  18709. funcType$3 = $funcType([$Uintptr], [$Bool], false);
  18710. ptrType$18 = $ptrType(rawConn);
  18711. runtime_args = function() {
  18712. return $pkg.Args;
  18713. };
  18714. init = function() {
  18715. var argv, i, process;
  18716. process = $global.process;
  18717. if (!(process === undefined)) {
  18718. argv = process.argv;
  18719. $pkg.Args = $makeSlice(sliceType, ($parseInt(argv.length) - 1 >> 0));
  18720. i = 0;
  18721. while (true) {
  18722. if (!(i < ($parseInt(argv.length) - 1 >> 0))) { break; }
  18723. ((i < 0 || i >= $pkg.Args.$length) ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Args.$array[$pkg.Args.$offset + i] = $internalize(argv[(i + 1 >> 0)], $String));
  18724. i = i + (1) >> 0;
  18725. }
  18726. }
  18727. if ($pkg.Args.$length === 0) {
  18728. $pkg.Args = new sliceType(["?"]);
  18729. }
  18730. };
  18731. runtime_beforeExit = function() {
  18732. };
  18733. File.ptr.prototype.Readdir = function(n) {
  18734. var _r, f, n, $s, $r;
  18735. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  18736. f = this;
  18737. if (f === ptrType.nil) {
  18738. $s = -1; return [sliceType$1.nil, $pkg.ErrInvalid];
  18739. }
  18740. _r = f.readdir(n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  18741. $s = -1; return _r;
  18742. /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Readdir }; } $f._r = _r; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f;
  18743. };
  18744. File.prototype.Readdir = function(n) { return this.$val.Readdir(n); };
  18745. File.ptr.prototype.Readdirnames = function(n) {
  18746. var _r, _tmp, _tmp$1, _tuple, err, f, n, names, $s, $r;
  18747. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; err = $f.err; f = $f.f; n = $f.n; names = $f.names; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  18748. names = sliceType.nil;
  18749. err = $ifaceNil;
  18750. f = this;
  18751. if (f === ptrType.nil) {
  18752. _tmp = sliceType.nil;
  18753. _tmp$1 = $pkg.ErrInvalid;
  18754. names = _tmp;
  18755. err = _tmp$1;
  18756. $s = -1; return [names, err];
  18757. }
  18758. _r = f.readdirnames(n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  18759. _tuple = _r;
  18760. names = _tuple[0];
  18761. err = _tuple[1];
  18762. $s = -1; return [names, err];
  18763. /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Readdirnames }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.err = err; $f.f = f; $f.n = n; $f.names = names; $f.$s = $s; $f.$r = $r; return $f;
  18764. };
  18765. File.prototype.Readdirnames = function(n) { return this.$val.Readdirnames(n); };
  18766. dirInfo.ptr.prototype.close = function() {
  18767. var d;
  18768. d = this;
  18769. };
  18770. dirInfo.prototype.close = function() { return this.$val.close(); };
  18771. File.ptr.prototype.readdirnames = function(n) {
  18772. var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, d, err, errno, f, n, names, nb, nc, size, $s, $r;
  18773. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; d = $f.d; err = $f.err; errno = $f.errno; f = $f.f; n = $f.n; names = $f.names; nb = $f.nb; nc = $f.nc; size = $f.size; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  18774. names = sliceType.nil;
  18775. err = $ifaceNil;
  18776. f = this;
  18777. if (f.file.dirinfo === ptrType$1.nil) {
  18778. f.file.dirinfo = new dirInfo.ptr(sliceType$2.nil, 0, 0);
  18779. f.file.dirinfo.buf = $makeSlice(sliceType$2, 8192);
  18780. }
  18781. d = f.file.dirinfo;
  18782. size = n;
  18783. if (size <= 0) {
  18784. size = 100;
  18785. n = -1;
  18786. }
  18787. names = $makeSlice(sliceType, 0, size);
  18788. /* while (true) { */ case 1:
  18789. /* if (!(!((n === 0)))) { break; } */ if(!(!((n === 0)))) { $s = 2; continue; }
  18790. /* */ if (d.bufp >= d.nbuf) { $s = 3; continue; }
  18791. /* */ $s = 4; continue;
  18792. /* if (d.bufp >= d.nbuf) { */ case 3:
  18793. d.bufp = 0;
  18794. errno = $ifaceNil;
  18795. _r = f.file.pfd.ReadDirent(d.buf); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  18796. _tuple = _r;
  18797. d.nbuf = _tuple[0];
  18798. errno = _tuple[1];
  18799. runtime.KeepAlive(f);
  18800. if (!($interfaceIsEqual(errno, $ifaceNil))) {
  18801. _tmp = names;
  18802. _tmp$1 = wrapSyscallError("readdirent", errno);
  18803. names = _tmp;
  18804. err = _tmp$1;
  18805. $s = -1; return [names, err];
  18806. }
  18807. if (d.nbuf <= 0) {
  18808. /* break; */ $s = 2; continue;
  18809. }
  18810. /* } */ case 4:
  18811. _tmp$2 = 0;
  18812. _tmp$3 = 0;
  18813. nb = _tmp$2;
  18814. nc = _tmp$3;
  18815. _tuple$1 = syscall.ParseDirent($subslice(d.buf, d.bufp, d.nbuf), n, names);
  18816. nb = _tuple$1[0];
  18817. nc = _tuple$1[1];
  18818. names = _tuple$1[2];
  18819. d.bufp = d.bufp + (nb) >> 0;
  18820. n = n - (nc) >> 0;
  18821. /* } */ $s = 1; continue; case 2:
  18822. if (n >= 0 && (names.$length === 0)) {
  18823. _tmp$4 = names;
  18824. _tmp$5 = io.EOF;
  18825. names = _tmp$4;
  18826. err = _tmp$5;
  18827. $s = -1; return [names, err];
  18828. }
  18829. _tmp$6 = names;
  18830. _tmp$7 = $ifaceNil;
  18831. names = _tmp$6;
  18832. err = _tmp$7;
  18833. $s = -1; return [names, err];
  18834. /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.readdirnames }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.d = d; $f.err = err; $f.errno = errno; $f.f = f; $f.n = n; $f.names = names; $f.nb = nb; $f.nc = nc; $f.size = size; $f.$s = $s; $f.$r = $r; return $f;
  18835. };
  18836. File.prototype.readdirnames = function(n) { return this.$val.readdirnames(n); };
  18837. PathError.ptr.prototype.Error = function() {
  18838. var _r, e, $s, $r;
  18839. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  18840. e = this;
  18841. _r = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  18842. $s = -1; return e.Op + " " + e.Path + ": " + _r;
  18843. /* */ } return; } if ($f === undefined) { $f = { $blk: PathError.ptr.prototype.Error }; } $f._r = _r; $f.e = e; $f.$s = $s; $f.$r = $r; return $f;
  18844. };
  18845. PathError.prototype.Error = function() { return this.$val.Error(); };
  18846. PathError.ptr.prototype.Timeout = function() {
  18847. var _r, _tuple, _v, e, ok, t, $s, $r;
  18848. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; _v = $f._v; e = $f.e; ok = $f.ok; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  18849. e = this;
  18850. _tuple = $assertType(e.Err, timeout, true);
  18851. t = _tuple[0];
  18852. ok = _tuple[1];
  18853. if (!(ok)) { _v = false; $s = 1; continue s; }
  18854. _r = t.Timeout(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  18855. _v = _r; case 1:
  18856. $s = -1; return _v;
  18857. /* */ } return; } if ($f === undefined) { $f = { $blk: PathError.ptr.prototype.Timeout }; } $f._r = _r; $f._tuple = _tuple; $f._v = _v; $f.e = e; $f.ok = ok; $f.t = t; $f.$s = $s; $f.$r = $r; return $f;
  18858. };
  18859. PathError.prototype.Timeout = function() { return this.$val.Timeout(); };
  18860. SyscallError.ptr.prototype.Error = function() {
  18861. var _r, e, $s, $r;
  18862. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  18863. e = this;
  18864. _r = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  18865. $s = -1; return e.Syscall + ": " + _r;
  18866. /* */ } return; } if ($f === undefined) { $f = { $blk: SyscallError.ptr.prototype.Error }; } $f._r = _r; $f.e = e; $f.$s = $s; $f.$r = $r; return $f;
  18867. };
  18868. SyscallError.prototype.Error = function() { return this.$val.Error(); };
  18869. SyscallError.ptr.prototype.Timeout = function() {
  18870. var _r, _tuple, _v, e, ok, t, $s, $r;
  18871. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; _v = $f._v; e = $f.e; ok = $f.ok; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  18872. e = this;
  18873. _tuple = $assertType(e.Err, timeout, true);
  18874. t = _tuple[0];
  18875. ok = _tuple[1];
  18876. if (!(ok)) { _v = false; $s = 1; continue s; }
  18877. _r = t.Timeout(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  18878. _v = _r; case 1:
  18879. $s = -1; return _v;
  18880. /* */ } return; } if ($f === undefined) { $f = { $blk: SyscallError.ptr.prototype.Timeout }; } $f._r = _r; $f._tuple = _tuple; $f._v = _v; $f.e = e; $f.ok = ok; $f.t = t; $f.$s = $s; $f.$r = $r; return $f;
  18881. };
  18882. SyscallError.prototype.Timeout = function() { return this.$val.Timeout(); };
  18883. NewSyscallError = function(syscall$1, err) {
  18884. var err, syscall$1;
  18885. if ($interfaceIsEqual(err, $ifaceNil)) {
  18886. return $ifaceNil;
  18887. }
  18888. return new SyscallError.ptr(syscall$1, err);
  18889. };
  18890. $pkg.NewSyscallError = NewSyscallError;
  18891. IsNotExist = function(err) {
  18892. var err;
  18893. return isNotExist(err);
  18894. };
  18895. $pkg.IsNotExist = IsNotExist;
  18896. underlyingError = function(err) {
  18897. var _ref, err, err$1, err$2, err$3;
  18898. _ref = err;
  18899. if ($assertType(_ref, ptrType$2, true)[1]) {
  18900. err$1 = _ref.$val;
  18901. return err$1.Err;
  18902. } else if ($assertType(_ref, ptrType$3, true)[1]) {
  18903. err$2 = _ref.$val;
  18904. return err$2.Err;
  18905. } else if ($assertType(_ref, ptrType$4, true)[1]) {
  18906. err$3 = _ref.$val;
  18907. return err$3.Err;
  18908. }
  18909. return err;
  18910. };
  18911. wrapSyscallError = function(name, err) {
  18912. var _tuple, err, name, ok;
  18913. _tuple = $assertType(err, syscall.Errno, true);
  18914. ok = _tuple[1];
  18915. if (ok) {
  18916. err = NewSyscallError(name, err);
  18917. }
  18918. return err;
  18919. };
  18920. isNotExist = function(err) {
  18921. var err;
  18922. err = underlyingError(err);
  18923. return $interfaceIsEqual(err, new syscall.Errno(2)) || $interfaceIsEqual(err, $pkg.ErrNotExist);
  18924. };
  18925. File.ptr.prototype.Name = function() {
  18926. var f;
  18927. f = this;
  18928. return f.file.name;
  18929. };
  18930. File.prototype.Name = function() { return this.$val.Name(); };
  18931. LinkError.ptr.prototype.Error = function() {
  18932. var _r, e, $s, $r;
  18933. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  18934. e = this;
  18935. _r = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  18936. $s = -1; return e.Op + " " + e.Old + " " + e.New + ": " + _r;
  18937. /* */ } return; } if ($f === undefined) { $f = { $blk: LinkError.ptr.prototype.Error }; } $f._r = _r; $f.e = e; $f.$s = $s; $f.$r = $r; return $f;
  18938. };
  18939. LinkError.prototype.Error = function() { return this.$val.Error(); };
  18940. File.ptr.prototype.Read = function(b) {
  18941. var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s, $r;
  18942. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  18943. n = 0;
  18944. err = $ifaceNil;
  18945. f = this;
  18946. err$1 = f.checkValid("read");
  18947. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  18948. _tmp = 0;
  18949. _tmp$1 = err$1;
  18950. n = _tmp;
  18951. err = _tmp$1;
  18952. $s = -1; return [n, err];
  18953. }
  18954. _r = f.read(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  18955. _tuple = _r;
  18956. n = _tuple[0];
  18957. e = _tuple[1];
  18958. _tmp$2 = n;
  18959. _tmp$3 = f.wrapErr("read", e);
  18960. n = _tmp$2;
  18961. err = _tmp$3;
  18962. $s = -1; return [n, err];
  18963. /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Read }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f;
  18964. };
  18965. File.prototype.Read = function(b) { return this.$val.Read(b); };
  18966. File.ptr.prototype.ReadAt = function(b, off) {
  18967. var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, m, n, off, x, $s, $r;
  18968. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; m = $f.m; n = $f.n; off = $f.off; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  18969. n = 0;
  18970. err = $ifaceNil;
  18971. f = this;
  18972. err$1 = f.checkValid("read");
  18973. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  18974. _tmp = 0;
  18975. _tmp$1 = err$1;
  18976. n = _tmp;
  18977. err = _tmp$1;
  18978. $s = -1; return [n, err];
  18979. }
  18980. if ((off.$high < 0 || (off.$high === 0 && off.$low < 0))) {
  18981. _tmp$2 = 0;
  18982. _tmp$3 = new PathError.ptr("readat", f.file.name, errors.New("negative offset"));
  18983. n = _tmp$2;
  18984. err = _tmp$3;
  18985. $s = -1; return [n, err];
  18986. }
  18987. /* while (true) { */ case 1:
  18988. /* if (!(b.$length > 0)) { break; } */ if(!(b.$length > 0)) { $s = 2; continue; }
  18989. _r = f.pread(b, off); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  18990. _tuple = _r;
  18991. m = _tuple[0];
  18992. e = _tuple[1];
  18993. if (!($interfaceIsEqual(e, $ifaceNil))) {
  18994. err = f.wrapErr("read", e);
  18995. /* break; */ $s = 2; continue;
  18996. }
  18997. n = n + (m) >> 0;
  18998. b = $subslice(b, m);
  18999. off = (x = (new $Int64(0, m)), new $Int64(off.$high + x.$high, off.$low + x.$low));
  19000. /* } */ $s = 1; continue; case 2:
  19001. $s = -1; return [n, err];
  19002. /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.ReadAt }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.m = m; $f.n = n; $f.off = off; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  19003. };
  19004. File.prototype.ReadAt = function(b, off) { return this.$val.ReadAt(b, off); };
  19005. File.ptr.prototype.Write = function(b) {
  19006. var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s, $r;
  19007. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19008. n = 0;
  19009. err = $ifaceNil;
  19010. f = this;
  19011. err$1 = f.checkValid("write");
  19012. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  19013. _tmp = 0;
  19014. _tmp$1 = err$1;
  19015. n = _tmp;
  19016. err = _tmp$1;
  19017. $s = -1; return [n, err];
  19018. }
  19019. _r = f.write(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19020. _tuple = _r;
  19021. n = _tuple[0];
  19022. e = _tuple[1];
  19023. if (n < 0) {
  19024. n = 0;
  19025. }
  19026. if (!((n === b.$length))) {
  19027. err = io.ErrShortWrite;
  19028. }
  19029. epipecheck(f, e);
  19030. if (!($interfaceIsEqual(e, $ifaceNil))) {
  19031. err = f.wrapErr("write", e);
  19032. }
  19033. _tmp$2 = n;
  19034. _tmp$3 = err;
  19035. n = _tmp$2;
  19036. err = _tmp$3;
  19037. $s = -1; return [n, err];
  19038. /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Write }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f;
  19039. };
  19040. File.prototype.Write = function(b) { return this.$val.Write(b); };
  19041. File.ptr.prototype.WriteAt = function(b, off) {
  19042. var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, m, n, off, x, $s, $r;
  19043. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; m = $f.m; n = $f.n; off = $f.off; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19044. n = 0;
  19045. err = $ifaceNil;
  19046. f = this;
  19047. err$1 = f.checkValid("write");
  19048. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  19049. _tmp = 0;
  19050. _tmp$1 = err$1;
  19051. n = _tmp;
  19052. err = _tmp$1;
  19053. $s = -1; return [n, err];
  19054. }
  19055. if ((off.$high < 0 || (off.$high === 0 && off.$low < 0))) {
  19056. _tmp$2 = 0;
  19057. _tmp$3 = new PathError.ptr("writeat", f.file.name, errors.New("negative offset"));
  19058. n = _tmp$2;
  19059. err = _tmp$3;
  19060. $s = -1; return [n, err];
  19061. }
  19062. /* while (true) { */ case 1:
  19063. /* if (!(b.$length > 0)) { break; } */ if(!(b.$length > 0)) { $s = 2; continue; }
  19064. _r = f.pwrite(b, off); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19065. _tuple = _r;
  19066. m = _tuple[0];
  19067. e = _tuple[1];
  19068. if (!($interfaceIsEqual(e, $ifaceNil))) {
  19069. err = f.wrapErr("write", e);
  19070. /* break; */ $s = 2; continue;
  19071. }
  19072. n = n + (m) >> 0;
  19073. b = $subslice(b, m);
  19074. off = (x = (new $Int64(0, m)), new $Int64(off.$high + x.$high, off.$low + x.$low));
  19075. /* } */ $s = 1; continue; case 2:
  19076. $s = -1; return [n, err];
  19077. /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.WriteAt }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.m = m; $f.n = n; $f.off = off; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  19078. };
  19079. File.prototype.WriteAt = function(b, off) { return this.$val.WriteAt(b, off); };
  19080. File.ptr.prototype.Seek = function(offset, whence) {
  19081. var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, e, err, err$1, f, offset, r, ret, whence, $s, $r;
  19082. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; offset = $f.offset; r = $f.r; ret = $f.ret; whence = $f.whence; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19083. ret = new $Int64(0, 0);
  19084. err = $ifaceNil;
  19085. f = this;
  19086. err$1 = f.checkValid("seek");
  19087. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  19088. _tmp = new $Int64(0, 0);
  19089. _tmp$1 = err$1;
  19090. ret = _tmp;
  19091. err = _tmp$1;
  19092. $s = -1; return [ret, err];
  19093. }
  19094. _r = f.seek(offset, whence); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19095. _tuple = _r;
  19096. r = _tuple[0];
  19097. e = _tuple[1];
  19098. if ($interfaceIsEqual(e, $ifaceNil) && !(f.file.dirinfo === ptrType$1.nil) && !((r.$high === 0 && r.$low === 0))) {
  19099. e = new syscall.Errno(21);
  19100. }
  19101. if (!($interfaceIsEqual(e, $ifaceNil))) {
  19102. _tmp$2 = new $Int64(0, 0);
  19103. _tmp$3 = f.wrapErr("seek", e);
  19104. ret = _tmp$2;
  19105. err = _tmp$3;
  19106. $s = -1; return [ret, err];
  19107. }
  19108. _tmp$4 = r;
  19109. _tmp$5 = $ifaceNil;
  19110. ret = _tmp$4;
  19111. err = _tmp$5;
  19112. $s = -1; return [ret, err];
  19113. /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Seek }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.offset = offset; $f.r = r; $f.ret = ret; $f.whence = whence; $f.$s = $s; $f.$r = $r; return $f;
  19114. };
  19115. File.prototype.Seek = function(offset, whence) { return this.$val.Seek(offset, whence); };
  19116. File.ptr.prototype.WriteString = function(s) {
  19117. var _r, _tuple, err, f, n, s, $s, $r;
  19118. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; f = $f.f; n = $f.n; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19119. n = 0;
  19120. err = $ifaceNil;
  19121. f = this;
  19122. _r = f.Write((new sliceType$2($stringToBytes(s)))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19123. _tuple = _r;
  19124. n = _tuple[0];
  19125. err = _tuple[1];
  19126. $s = -1; return [n, err];
  19127. /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.WriteString }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.f = f; $f.n = n; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  19128. };
  19129. File.prototype.WriteString = function(s) { return this.$val.WriteString(s); };
  19130. setStickyBit = function(name) {
  19131. var _arg, _arg$1, _r, _r$1, _r$2, _tuple, err, fi, name, $s, $r;
  19132. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; err = $f.err; fi = $f.fi; name = $f.name; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19133. _r = Stat(name); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19134. _tuple = _r;
  19135. fi = _tuple[0];
  19136. err = _tuple[1];
  19137. if (!($interfaceIsEqual(err, $ifaceNil))) {
  19138. $s = -1; return err;
  19139. }
  19140. _arg = name;
  19141. _r$1 = fi.Mode(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  19142. _arg$1 = (_r$1 | 1048576) >>> 0;
  19143. _r$2 = Chmod(_arg, _arg$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  19144. $s = -1; return _r$2;
  19145. /* */ } return; } if ($f === undefined) { $f = { $blk: setStickyBit }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f.err = err; $f.fi = fi; $f.name = name; $f.$s = $s; $f.$r = $r; return $f;
  19146. };
  19147. Open = function(name) {
  19148. var _r, name, $s, $r;
  19149. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; name = $f.name; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19150. _r = OpenFile(name, 0, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19151. $s = -1; return _r;
  19152. /* */ } return; } if ($f === undefined) { $f = { $blk: Open }; } $f._r = _r; $f.name = name; $f.$s = $s; $f.$r = $r; return $f;
  19153. };
  19154. $pkg.Open = Open;
  19155. OpenFile = function(name, flag, perm) {
  19156. var _r, flag, name, perm, $s, $r;
  19157. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; flag = $f.flag; name = $f.name; perm = $f.perm; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19158. $r = testlog.Open(name); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  19159. _r = openFileNolog(name, flag, perm); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19160. $s = -1; return _r;
  19161. /* */ } return; } if ($f === undefined) { $f = { $blk: OpenFile }; } $f._r = _r; $f.flag = flag; $f.name = name; $f.perm = perm; $f.$s = $s; $f.$r = $r; return $f;
  19162. };
  19163. $pkg.OpenFile = OpenFile;
  19164. File.ptr.prototype.wrapErr = function(op, err) {
  19165. var err, f, op;
  19166. f = this;
  19167. if ($interfaceIsEqual(err, $ifaceNil) || $interfaceIsEqual(err, io.EOF)) {
  19168. return err;
  19169. }
  19170. if ($interfaceIsEqual(err, poll.ErrFileClosing)) {
  19171. err = $pkg.ErrClosed;
  19172. }
  19173. return new PathError.ptr(op, f.file.name, err);
  19174. };
  19175. File.prototype.wrapErr = function(op, err) { return this.$val.wrapErr(op, err); };
  19176. Chmod = function(name, mode) {
  19177. var mode, name;
  19178. return chmod(name, mode);
  19179. };
  19180. $pkg.Chmod = Chmod;
  19181. File.ptr.prototype.Chmod = function(mode) {
  19182. var _r, f, mode, $s, $r;
  19183. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; mode = $f.mode; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19184. f = this;
  19185. _r = f.chmod(mode); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19186. $s = -1; return _r;
  19187. /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Chmod }; } $f._r = _r; $f.f = f; $f.mode = mode; $f.$s = $s; $f.$r = $r; return $f;
  19188. };
  19189. File.prototype.Chmod = function(mode) { return this.$val.Chmod(mode); };
  19190. File.ptr.prototype.SetDeadline = function(t) {
  19191. var f, t;
  19192. f = this;
  19193. return f.setDeadline($clone(t, time.Time));
  19194. };
  19195. File.prototype.SetDeadline = function(t) { return this.$val.SetDeadline(t); };
  19196. File.ptr.prototype.SetReadDeadline = function(t) {
  19197. var f, t;
  19198. f = this;
  19199. return f.setReadDeadline($clone(t, time.Time));
  19200. };
  19201. File.prototype.SetReadDeadline = function(t) { return this.$val.SetReadDeadline(t); };
  19202. File.ptr.prototype.SetWriteDeadline = function(t) {
  19203. var f, t;
  19204. f = this;
  19205. return f.setWriteDeadline($clone(t, time.Time));
  19206. };
  19207. File.prototype.SetWriteDeadline = function(t) { return this.$val.SetWriteDeadline(t); };
  19208. File.ptr.prototype.SyscallConn = function() {
  19209. var _returncast, err, f;
  19210. f = this;
  19211. err = f.checkValid("SyscallConn");
  19212. if (!($interfaceIsEqual(err, $ifaceNil))) {
  19213. return [$ifaceNil, err];
  19214. }
  19215. _returncast = newRawConn(f);
  19216. return [_returncast[0], _returncast[1]];
  19217. };
  19218. File.prototype.SyscallConn = function() { return this.$val.SyscallConn(); };
  19219. sigpipe = function() {
  19220. $throwRuntimeError("native function not implemented: os.sigpipe");
  19221. };
  19222. syscallMode = function(i) {
  19223. var i, o;
  19224. o = 0;
  19225. o = (o | (((new FileMode(i).Perm() >>> 0)))) >>> 0;
  19226. if (!((((i & 8388608) >>> 0) === 0))) {
  19227. o = (o | (2048)) >>> 0;
  19228. }
  19229. if (!((((i & 4194304) >>> 0) === 0))) {
  19230. o = (o | (1024)) >>> 0;
  19231. }
  19232. if (!((((i & 1048576) >>> 0) === 0))) {
  19233. o = (o | (512)) >>> 0;
  19234. }
  19235. return o;
  19236. };
  19237. chmod = function(name, mode) {
  19238. var e, mode, name;
  19239. e = syscall.Chmod(fixLongPath(name), syscallMode(mode));
  19240. if (!($interfaceIsEqual(e, $ifaceNil))) {
  19241. return new PathError.ptr("chmod", name, e);
  19242. }
  19243. return $ifaceNil;
  19244. };
  19245. File.ptr.prototype.chmod = function(mode) {
  19246. var _r, e, err, f, mode, $s, $r;
  19247. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; f = $f.f; mode = $f.mode; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19248. f = this;
  19249. err = f.checkValid("chmod");
  19250. if (!($interfaceIsEqual(err, $ifaceNil))) {
  19251. $s = -1; return err;
  19252. }
  19253. _r = f.file.pfd.Fchmod(syscallMode(mode)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19254. e = _r;
  19255. if (!($interfaceIsEqual(e, $ifaceNil))) {
  19256. $s = -1; return f.wrapErr("chmod", e);
  19257. }
  19258. $s = -1; return $ifaceNil;
  19259. /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.chmod }; } $f._r = _r; $f.e = e; $f.err = err; $f.f = f; $f.mode = mode; $f.$s = $s; $f.$r = $r; return $f;
  19260. };
  19261. File.prototype.chmod = function(mode) { return this.$val.chmod(mode); };
  19262. File.ptr.prototype.Chown = function(uid, gid) {
  19263. var _r, e, err, f, gid, uid, $s, $r;
  19264. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; f = $f.f; gid = $f.gid; uid = $f.uid; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19265. f = this;
  19266. err = f.checkValid("chown");
  19267. if (!($interfaceIsEqual(err, $ifaceNil))) {
  19268. $s = -1; return err;
  19269. }
  19270. _r = f.file.pfd.Fchown(uid, gid); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19271. e = _r;
  19272. if (!($interfaceIsEqual(e, $ifaceNil))) {
  19273. $s = -1; return f.wrapErr("chown", e);
  19274. }
  19275. $s = -1; return $ifaceNil;
  19276. /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Chown }; } $f._r = _r; $f.e = e; $f.err = err; $f.f = f; $f.gid = gid; $f.uid = uid; $f.$s = $s; $f.$r = $r; return $f;
  19277. };
  19278. File.prototype.Chown = function(uid, gid) { return this.$val.Chown(uid, gid); };
  19279. File.ptr.prototype.Truncate = function(size) {
  19280. var _r, e, err, f, size, $s, $r;
  19281. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; f = $f.f; size = $f.size; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19282. f = this;
  19283. err = f.checkValid("truncate");
  19284. if (!($interfaceIsEqual(err, $ifaceNil))) {
  19285. $s = -1; return err;
  19286. }
  19287. _r = f.file.pfd.Ftruncate(size); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19288. e = _r;
  19289. if (!($interfaceIsEqual(e, $ifaceNil))) {
  19290. $s = -1; return f.wrapErr("truncate", e);
  19291. }
  19292. $s = -1; return $ifaceNil;
  19293. /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Truncate }; } $f._r = _r; $f.e = e; $f.err = err; $f.f = f; $f.size = size; $f.$s = $s; $f.$r = $r; return $f;
  19294. };
  19295. File.prototype.Truncate = function(size) { return this.$val.Truncate(size); };
  19296. File.ptr.prototype.Sync = function() {
  19297. var _r, e, err, f, $s, $r;
  19298. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19299. f = this;
  19300. err = f.checkValid("sync");
  19301. if (!($interfaceIsEqual(err, $ifaceNil))) {
  19302. $s = -1; return err;
  19303. }
  19304. _r = f.file.pfd.Fsync(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19305. e = _r;
  19306. if (!($interfaceIsEqual(e, $ifaceNil))) {
  19307. $s = -1; return f.wrapErr("sync", e);
  19308. }
  19309. $s = -1; return $ifaceNil;
  19310. /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Sync }; } $f._r = _r; $f.e = e; $f.err = err; $f.f = f; $f.$s = $s; $f.$r = $r; return $f;
  19311. };
  19312. File.prototype.Sync = function() { return this.$val.Sync(); };
  19313. File.ptr.prototype.Chdir = function() {
  19314. var _r, e, err, f, $s, $r;
  19315. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19316. f = this;
  19317. err = f.checkValid("chdir");
  19318. if (!($interfaceIsEqual(err, $ifaceNil))) {
  19319. $s = -1; return err;
  19320. }
  19321. _r = f.file.pfd.Fchdir(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19322. e = _r;
  19323. if (!($interfaceIsEqual(e, $ifaceNil))) {
  19324. $s = -1; return f.wrapErr("chdir", e);
  19325. }
  19326. $s = -1; return $ifaceNil;
  19327. /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Chdir }; } $f._r = _r; $f.e = e; $f.err = err; $f.f = f; $f.$s = $s; $f.$r = $r; return $f;
  19328. };
  19329. File.prototype.Chdir = function() { return this.$val.Chdir(); };
  19330. File.ptr.prototype.setDeadline = function(t) {
  19331. var err, f, t;
  19332. f = this;
  19333. err = f.checkValid("SetDeadline");
  19334. if (!($interfaceIsEqual(err, $ifaceNil))) {
  19335. return err;
  19336. }
  19337. return f.file.pfd.SetDeadline($clone(t, time.Time));
  19338. };
  19339. File.prototype.setDeadline = function(t) { return this.$val.setDeadline(t); };
  19340. File.ptr.prototype.setReadDeadline = function(t) {
  19341. var err, f, t;
  19342. f = this;
  19343. err = f.checkValid("SetReadDeadline");
  19344. if (!($interfaceIsEqual(err, $ifaceNil))) {
  19345. return err;
  19346. }
  19347. return f.file.pfd.SetReadDeadline($clone(t, time.Time));
  19348. };
  19349. File.prototype.setReadDeadline = function(t) { return this.$val.setReadDeadline(t); };
  19350. File.ptr.prototype.setWriteDeadline = function(t) {
  19351. var err, f, t;
  19352. f = this;
  19353. err = f.checkValid("SetWriteDeadline");
  19354. if (!($interfaceIsEqual(err, $ifaceNil))) {
  19355. return err;
  19356. }
  19357. return f.file.pfd.SetWriteDeadline($clone(t, time.Time));
  19358. };
  19359. File.prototype.setWriteDeadline = function(t) { return this.$val.setWriteDeadline(t); };
  19360. File.ptr.prototype.checkValid = function(op) {
  19361. var f, op;
  19362. f = this;
  19363. if (f === ptrType.nil) {
  19364. return $pkg.ErrInvalid;
  19365. }
  19366. return $ifaceNil;
  19367. };
  19368. File.prototype.checkValid = function(op) { return this.$val.checkValid(op); };
  19369. fixLongPath = function(path) {
  19370. var path;
  19371. return path;
  19372. };
  19373. File.ptr.prototype.Fd = function() {
  19374. var _r, f, $s, $r;
  19375. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19376. f = this;
  19377. if (f === ptrType.nil) {
  19378. $s = -1; return 4294967295;
  19379. }
  19380. /* */ if (f.file.nonblock) { $s = 1; continue; }
  19381. /* */ $s = 2; continue;
  19382. /* if (f.file.nonblock) { */ case 1:
  19383. _r = f.file.pfd.SetBlocking(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19384. _r;
  19385. /* } */ case 2:
  19386. $s = -1; return ((f.file.pfd.Sysfd >>> 0));
  19387. /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Fd }; } $f._r = _r; $f.f = f; $f.$s = $s; $f.$r = $r; return $f;
  19388. };
  19389. File.prototype.Fd = function() { return this.$val.Fd(); };
  19390. NewFile = function(fd, name) {
  19391. var _tuple, err, fd, kind, name, nb;
  19392. kind = 0;
  19393. _tuple = unix.IsNonblock(((fd >> 0)));
  19394. nb = _tuple[0];
  19395. err = _tuple[1];
  19396. if ($interfaceIsEqual(err, $ifaceNil) && nb) {
  19397. kind = 3;
  19398. }
  19399. return newFile(fd, name, kind);
  19400. };
  19401. $pkg.NewFile = NewFile;
  19402. newFile = function(fd, name, kind) {
  19403. var _1, err, err$1, err$2, err$3, f, fd, fdi, kind, name, pollable, st;
  19404. fdi = ((fd >> 0));
  19405. if (fdi < 0) {
  19406. return ptrType.nil;
  19407. }
  19408. f = new File.ptr(new file.ptr(new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), fdi, new poll.pollDesc.ptr(false), ptrType$12.nil, 0, 0, true, true, false), name, ptrType$1.nil, false, (fdi === 1) || (fdi === 2)));
  19409. pollable = (kind === 1) || (kind === 2) || (kind === 3);
  19410. if (kind === 1) {
  19411. st = new syscall.Stat_t.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), 0, 0, 0, 0, new $Uint64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), arrayType$1.zero());
  19412. _1 = "linux";
  19413. if (_1 === ("freebsd")) {
  19414. pollable = false;
  19415. } else if (_1 === ("dragonfly") || _1 === ("netbsd") || _1 === ("openbsd")) {
  19416. err = syscall.Fstat(fdi, st);
  19417. if ($interfaceIsEqual(err, $ifaceNil) && (((st.Mode & 61440) >>> 0) === 32768)) {
  19418. pollable = false;
  19419. }
  19420. } else if (_1 === ("darwin")) {
  19421. err$1 = syscall.Fstat(fdi, st);
  19422. if ($interfaceIsEqual(err$1, $ifaceNil) && ((((st.Mode & 61440) >>> 0) === 4096) || (((st.Mode & 61440) >>> 0) === 32768))) {
  19423. pollable = false;
  19424. }
  19425. }
  19426. }
  19427. err$2 = f.file.pfd.Init("file", pollable);
  19428. if (!($interfaceIsEqual(err$2, $ifaceNil))) {
  19429. } else if (pollable) {
  19430. err$3 = syscall.SetNonblock(fdi, true);
  19431. if ($interfaceIsEqual(err$3, $ifaceNil)) {
  19432. f.file.nonblock = true;
  19433. }
  19434. }
  19435. runtime.SetFinalizer(f.file, new funcType$1($methodExpr(ptrType$13, "close")));
  19436. return f;
  19437. };
  19438. epipecheck = function(file$1, e) {
  19439. var e, file$1;
  19440. if ($interfaceIsEqual(e, new syscall.Errno(32)) && file$1.file.stdoutOrErr) {
  19441. sigpipe();
  19442. }
  19443. };
  19444. openFileNolog = function(name, flag, perm) {
  19445. var _r, _r$1, _tuple, _tuple$1, e, err, flag, name, perm, r, setSticky, $s, $r;
  19446. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; e = $f.e; err = $f.err; flag = $f.flag; name = $f.name; perm = $f.perm; r = $f.r; setSticky = $f.setSticky; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19447. setSticky = false;
  19448. /* */ if (false && !(((flag & 64) === 0)) && !((((perm & 1048576) >>> 0) === 0))) { $s = 1; continue; }
  19449. /* */ $s = 2; continue;
  19450. /* if (false && !(((flag & 64) === 0)) && !((((perm & 1048576) >>> 0) === 0))) { */ case 1:
  19451. _r = Stat(name); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19452. _tuple = _r;
  19453. err = _tuple[1];
  19454. if (IsNotExist(err)) {
  19455. setSticky = true;
  19456. }
  19457. /* } */ case 2:
  19458. r = 0;
  19459. /* while (true) { */ case 4:
  19460. e = $ifaceNil;
  19461. _tuple$1 = syscall.Open(name, flag | 524288, syscallMode(perm));
  19462. r = _tuple$1[0];
  19463. e = _tuple$1[1];
  19464. if ($interfaceIsEqual(e, $ifaceNil)) {
  19465. /* break; */ $s = 5; continue;
  19466. }
  19467. if (false && $interfaceIsEqual(e, new syscall.Errno(4))) {
  19468. /* continue; */ $s = 4; continue;
  19469. }
  19470. $s = -1; return [ptrType.nil, new PathError.ptr("open", name, e)];
  19471. /* } */ $s = 4; continue; case 5:
  19472. /* */ if (setSticky) { $s = 6; continue; }
  19473. /* */ $s = 7; continue;
  19474. /* if (setSticky) { */ case 6:
  19475. _r$1 = setStickyBit(name); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  19476. _r$1;
  19477. /* } */ case 7:
  19478. if (false) {
  19479. syscall.CloseOnExec(r);
  19480. }
  19481. $s = -1; return [newFile(((r >>> 0)), name, 1), $ifaceNil];
  19482. /* */ } return; } if ($f === undefined) { $f = { $blk: openFileNolog }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.e = e; $f.err = err; $f.flag = flag; $f.name = name; $f.perm = perm; $f.r = r; $f.setSticky = setSticky; $f.$s = $s; $f.$r = $r; return $f;
  19483. };
  19484. File.ptr.prototype.Close = function() {
  19485. var _r, f, $s, $r;
  19486. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19487. f = this;
  19488. if (f === ptrType.nil) {
  19489. $s = -1; return $pkg.ErrInvalid;
  19490. }
  19491. _r = f.file.close(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19492. $s = -1; return _r;
  19493. /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Close }; } $f._r = _r; $f.f = f; $f.$s = $s; $f.$r = $r; return $f;
  19494. };
  19495. File.prototype.Close = function() { return this.$val.Close(); };
  19496. file.ptr.prototype.close = function() {
  19497. var _r, e, err, file$1, $s, $r;
  19498. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; file$1 = $f.file$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19499. file$1 = this;
  19500. if (file$1 === ptrType$13.nil) {
  19501. $s = -1; return new syscall.Errno(22);
  19502. }
  19503. if (!(file$1.dirinfo === ptrType$1.nil)) {
  19504. file$1.dirinfo.close();
  19505. }
  19506. err = $ifaceNil;
  19507. _r = file$1.pfd.Close(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19508. e = _r;
  19509. if (!($interfaceIsEqual(e, $ifaceNil))) {
  19510. if ($interfaceIsEqual(e, poll.ErrFileClosing)) {
  19511. e = $pkg.ErrClosed;
  19512. }
  19513. err = new PathError.ptr("close", file$1.name, e);
  19514. }
  19515. runtime.SetFinalizer(file$1, $ifaceNil);
  19516. $s = -1; return err;
  19517. /* */ } return; } if ($f === undefined) { $f = { $blk: file.ptr.prototype.close }; } $f._r = _r; $f.e = e; $f.err = err; $f.file$1 = file$1; $f.$s = $s; $f.$r = $r; return $f;
  19518. };
  19519. file.prototype.close = function() { return this.$val.close(); };
  19520. File.ptr.prototype.read = function(b) {
  19521. var _r, _tmp, _tmp$1, _tuple, b, err, f, n, $s, $r;
  19522. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; b = $f.b; err = $f.err; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19523. n = 0;
  19524. err = $ifaceNil;
  19525. f = this;
  19526. _r = f.file.pfd.Read(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19527. _tuple = _r;
  19528. n = _tuple[0];
  19529. err = _tuple[1];
  19530. runtime.KeepAlive(f);
  19531. _tmp = n;
  19532. _tmp$1 = err;
  19533. n = _tmp;
  19534. err = _tmp$1;
  19535. $s = -1; return [n, err];
  19536. /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.read }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f;
  19537. };
  19538. File.prototype.read = function(b) { return this.$val.read(b); };
  19539. File.ptr.prototype.pread = function(b, off) {
  19540. var _r, _tmp, _tmp$1, _tuple, b, err, f, n, off, $s, $r;
  19541. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; b = $f.b; err = $f.err; f = $f.f; n = $f.n; off = $f.off; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19542. n = 0;
  19543. err = $ifaceNil;
  19544. f = this;
  19545. _r = f.file.pfd.Pread(b, off); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19546. _tuple = _r;
  19547. n = _tuple[0];
  19548. err = _tuple[1];
  19549. runtime.KeepAlive(f);
  19550. _tmp = n;
  19551. _tmp$1 = err;
  19552. n = _tmp;
  19553. err = _tmp$1;
  19554. $s = -1; return [n, err];
  19555. /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.pread }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.f = f; $f.n = n; $f.off = off; $f.$s = $s; $f.$r = $r; return $f;
  19556. };
  19557. File.prototype.pread = function(b, off) { return this.$val.pread(b, off); };
  19558. File.ptr.prototype.write = function(b) {
  19559. var _r, _tmp, _tmp$1, _tuple, b, err, f, n, $s, $r;
  19560. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; b = $f.b; err = $f.err; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19561. n = 0;
  19562. err = $ifaceNil;
  19563. f = this;
  19564. _r = f.file.pfd.Write(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19565. _tuple = _r;
  19566. n = _tuple[0];
  19567. err = _tuple[1];
  19568. runtime.KeepAlive(f);
  19569. _tmp = n;
  19570. _tmp$1 = err;
  19571. n = _tmp;
  19572. err = _tmp$1;
  19573. $s = -1; return [n, err];
  19574. /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.write }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f;
  19575. };
  19576. File.prototype.write = function(b) { return this.$val.write(b); };
  19577. File.ptr.prototype.pwrite = function(b, off) {
  19578. var _r, _tmp, _tmp$1, _tuple, b, err, f, n, off, $s, $r;
  19579. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; b = $f.b; err = $f.err; f = $f.f; n = $f.n; off = $f.off; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19580. n = 0;
  19581. err = $ifaceNil;
  19582. f = this;
  19583. _r = f.file.pfd.Pwrite(b, off); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19584. _tuple = _r;
  19585. n = _tuple[0];
  19586. err = _tuple[1];
  19587. runtime.KeepAlive(f);
  19588. _tmp = n;
  19589. _tmp$1 = err;
  19590. n = _tmp;
  19591. err = _tmp$1;
  19592. $s = -1; return [n, err];
  19593. /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.pwrite }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.f = f; $f.n = n; $f.off = off; $f.$s = $s; $f.$r = $r; return $f;
  19594. };
  19595. File.prototype.pwrite = function(b, off) { return this.$val.pwrite(b, off); };
  19596. File.ptr.prototype.seek = function(offset, whence) {
  19597. var _r, _tmp, _tmp$1, _tuple, err, f, offset, ret, whence, $s, $r;
  19598. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; err = $f.err; f = $f.f; offset = $f.offset; ret = $f.ret; whence = $f.whence; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19599. ret = new $Int64(0, 0);
  19600. err = $ifaceNil;
  19601. f = this;
  19602. _r = f.file.pfd.Seek(offset, whence); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19603. _tuple = _r;
  19604. ret = _tuple[0];
  19605. err = _tuple[1];
  19606. runtime.KeepAlive(f);
  19607. _tmp = ret;
  19608. _tmp$1 = err;
  19609. ret = _tmp;
  19610. err = _tmp$1;
  19611. $s = -1; return [ret, err];
  19612. /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.seek }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.err = err; $f.f = f; $f.offset = offset; $f.ret = ret; $f.whence = whence; $f.$s = $s; $f.$r = $r; return $f;
  19613. };
  19614. File.prototype.seek = function(offset, whence) { return this.$val.seek(offset, whence); };
  19615. File.ptr.prototype.readdir = function(n) {
  19616. var _i, _r, _r$1, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, dirname, err, f, fi, filename, fip, lerr, n, names, $s, $r;
  19617. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; dirname = $f.dirname; err = $f.err; f = $f.f; fi = $f.fi; filename = $f.filename; fip = $f.fip; lerr = $f.lerr; n = $f.n; names = $f.names; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19618. fi = sliceType$1.nil;
  19619. err = $ifaceNil;
  19620. f = this;
  19621. dirname = f.file.name;
  19622. if (dirname === "") {
  19623. dirname = ".";
  19624. }
  19625. _r = f.Readdirnames(n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19626. _tuple = _r;
  19627. names = _tuple[0];
  19628. err = _tuple[1];
  19629. fi = $makeSlice(sliceType$1, 0, names.$length);
  19630. _ref = names;
  19631. _i = 0;
  19632. /* while (true) { */ case 2:
  19633. /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; }
  19634. filename = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  19635. _r$1 = lstat(dirname + "/" + filename); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  19636. _tuple$1 = _r$1;
  19637. fip = _tuple$1[0];
  19638. lerr = _tuple$1[1];
  19639. if (IsNotExist(lerr)) {
  19640. _i++;
  19641. /* continue; */ $s = 2; continue;
  19642. }
  19643. if (!($interfaceIsEqual(lerr, $ifaceNil))) {
  19644. _tmp = fi;
  19645. _tmp$1 = lerr;
  19646. fi = _tmp;
  19647. err = _tmp$1;
  19648. $s = -1; return [fi, err];
  19649. }
  19650. fi = $append(fi, fip);
  19651. _i++;
  19652. /* } */ $s = 2; continue; case 3:
  19653. if ((fi.$length === 0) && $interfaceIsEqual(err, $ifaceNil) && n > 0) {
  19654. err = io.EOF;
  19655. }
  19656. _tmp$2 = fi;
  19657. _tmp$3 = err;
  19658. fi = _tmp$2;
  19659. err = _tmp$3;
  19660. $s = -1; return [fi, err];
  19661. /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.readdir }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.dirname = dirname; $f.err = err; $f.f = f; $f.fi = fi; $f.filename = filename; $f.fip = fip; $f.lerr = lerr; $f.n = n; $f.names = names; $f.$s = $s; $f.$r = $r; return $f;
  19662. };
  19663. File.prototype.readdir = function(n) { return this.$val.readdir(n); };
  19664. basename = function(name) {
  19665. var i, name;
  19666. i = name.length - 1 >> 0;
  19667. while (true) {
  19668. if (!(i > 0 && (name.charCodeAt(i) === 47))) { break; }
  19669. name = $substring(name, 0, i);
  19670. i = i - (1) >> 0;
  19671. }
  19672. i = i - (1) >> 0;
  19673. while (true) {
  19674. if (!(i >= 0)) { break; }
  19675. if (name.charCodeAt(i) === 47) {
  19676. name = $substring(name, (i + 1 >> 0));
  19677. break;
  19678. }
  19679. i = i - (1) >> 0;
  19680. }
  19681. return name;
  19682. };
  19683. init$1 = function() {
  19684. if (false) {
  19685. return;
  19686. }
  19687. $pkg.Args = runtime_args();
  19688. };
  19689. Exit = function(code) {
  19690. var code;
  19691. if (code === 0) {
  19692. runtime_beforeExit();
  19693. }
  19694. syscall.Exit(code);
  19695. };
  19696. $pkg.Exit = Exit;
  19697. rawConn.ptr.prototype.Control = function(f) {
  19698. var _r, c, err, err$1, f, $s, $r;
  19699. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; c = $f.c; err = $f.err; err$1 = $f.err$1; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19700. c = this;
  19701. err = c.file.checkValid("SyscallConn.Control");
  19702. if (!($interfaceIsEqual(err, $ifaceNil))) {
  19703. $s = -1; return err;
  19704. }
  19705. _r = c.file.file.pfd.RawControl(f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19706. err$1 = _r;
  19707. runtime.KeepAlive(c.file);
  19708. $s = -1; return err$1;
  19709. /* */ } return; } if ($f === undefined) { $f = { $blk: rawConn.ptr.prototype.Control }; } $f._r = _r; $f.c = c; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.$s = $s; $f.$r = $r; return $f;
  19710. };
  19711. rawConn.prototype.Control = function(f) { return this.$val.Control(f); };
  19712. rawConn.ptr.prototype.Read = function(f) {
  19713. var _r, c, err, err$1, f, $s, $r;
  19714. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; c = $f.c; err = $f.err; err$1 = $f.err$1; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19715. c = this;
  19716. err = c.file.checkValid("SyscallConn.Read");
  19717. if (!($interfaceIsEqual(err, $ifaceNil))) {
  19718. $s = -1; return err;
  19719. }
  19720. _r = c.file.file.pfd.RawRead(f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19721. err$1 = _r;
  19722. runtime.KeepAlive(c.file);
  19723. $s = -1; return err$1;
  19724. /* */ } return; } if ($f === undefined) { $f = { $blk: rawConn.ptr.prototype.Read }; } $f._r = _r; $f.c = c; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.$s = $s; $f.$r = $r; return $f;
  19725. };
  19726. rawConn.prototype.Read = function(f) { return this.$val.Read(f); };
  19727. rawConn.ptr.prototype.Write = function(f) {
  19728. var _r, c, err, err$1, f, $s, $r;
  19729. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; c = $f.c; err = $f.err; err$1 = $f.err$1; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19730. c = this;
  19731. err = c.file.checkValid("SyscallConn.Write");
  19732. if (!($interfaceIsEqual(err, $ifaceNil))) {
  19733. $s = -1; return err;
  19734. }
  19735. _r = c.file.file.pfd.RawWrite(f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19736. err$1 = _r;
  19737. runtime.KeepAlive(c.file);
  19738. $s = -1; return err$1;
  19739. /* */ } return; } if ($f === undefined) { $f = { $blk: rawConn.ptr.prototype.Write }; } $f._r = _r; $f.c = c; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.$s = $s; $f.$r = $r; return $f;
  19740. };
  19741. rawConn.prototype.Write = function(f) { return this.$val.Write(f); };
  19742. newRawConn = function(file$1) {
  19743. var file$1;
  19744. return [new rawConn.ptr(file$1), $ifaceNil];
  19745. };
  19746. Stat = function(name) {
  19747. var name, $s, $r;
  19748. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; name = $f.name; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19749. $r = testlog.Stat(name); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  19750. $s = -1; return statNolog(name);
  19751. /* */ } return; } if ($f === undefined) { $f = { $blk: Stat }; } $f.name = name; $f.$s = $s; $f.$r = $r; return $f;
  19752. };
  19753. $pkg.Stat = Stat;
  19754. Lstat = function(name) {
  19755. var name, $s, $r;
  19756. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; name = $f.name; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19757. $r = testlog.Stat(name); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  19758. $s = -1; return lstatNolog(name);
  19759. /* */ } return; } if ($f === undefined) { $f = { $blk: Lstat }; } $f.name = name; $f.$s = $s; $f.$r = $r; return $f;
  19760. };
  19761. $pkg.Lstat = Lstat;
  19762. fillFileStatFromSys = function(fs, name) {
  19763. var _1, fs, name;
  19764. fs.name = basename(name);
  19765. fs.size = fs.sys.Size;
  19766. time.Time.copy(fs.modTime, timespecToTime($clone(fs.sys.Mtim, syscall.Timespec)));
  19767. fs.mode = ((((fs.sys.Mode & 511) >>> 0) >>> 0));
  19768. _1 = (fs.sys.Mode & 61440) >>> 0;
  19769. if (_1 === (24576)) {
  19770. fs.mode = (fs.mode | (67108864)) >>> 0;
  19771. } else if (_1 === (8192)) {
  19772. fs.mode = (fs.mode | (69206016)) >>> 0;
  19773. } else if (_1 === (16384)) {
  19774. fs.mode = (fs.mode | (2147483648)) >>> 0;
  19775. } else if (_1 === (4096)) {
  19776. fs.mode = (fs.mode | (33554432)) >>> 0;
  19777. } else if (_1 === (40960)) {
  19778. fs.mode = (fs.mode | (134217728)) >>> 0;
  19779. } else if (_1 === (32768)) {
  19780. } else if (_1 === (49152)) {
  19781. fs.mode = (fs.mode | (16777216)) >>> 0;
  19782. }
  19783. if (!((((fs.sys.Mode & 1024) >>> 0) === 0))) {
  19784. fs.mode = (fs.mode | (4194304)) >>> 0;
  19785. }
  19786. if (!((((fs.sys.Mode & 2048) >>> 0) === 0))) {
  19787. fs.mode = (fs.mode | (8388608)) >>> 0;
  19788. }
  19789. if (!((((fs.sys.Mode & 512) >>> 0) === 0))) {
  19790. fs.mode = (fs.mode | (1048576)) >>> 0;
  19791. }
  19792. };
  19793. timespecToTime = function(ts) {
  19794. var ts;
  19795. return time.Unix((ts.Sec), (ts.Nsec));
  19796. };
  19797. File.ptr.prototype.Stat = function() {
  19798. var _r, err, f, fs, $s, $r;
  19799. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; f = $f.f; fs = $f.fs; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19800. fs = [fs];
  19801. f = this;
  19802. if (f === ptrType.nil) {
  19803. $s = -1; return [$ifaceNil, $pkg.ErrInvalid];
  19804. }
  19805. fs[0] = new fileStat.ptr("", new $Int64(0, 0), 0, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$15.nil), new syscall.Stat_t.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), 0, 0, 0, 0, new $Uint64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), arrayType$1.zero()));
  19806. _r = f.file.pfd.Fstat(fs[0].sys); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  19807. err = _r;
  19808. if (!($interfaceIsEqual(err, $ifaceNil))) {
  19809. $s = -1; return [$ifaceNil, new PathError.ptr("stat", f.file.name, err)];
  19810. }
  19811. fillFileStatFromSys(fs[0], f.file.name);
  19812. $s = -1; return [fs[0], $ifaceNil];
  19813. /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Stat }; } $f._r = _r; $f.err = err; $f.f = f; $f.fs = fs; $f.$s = $s; $f.$r = $r; return $f;
  19814. };
  19815. File.prototype.Stat = function() { return this.$val.Stat(); };
  19816. statNolog = function(name) {
  19817. var err, fs, name;
  19818. fs = new fileStat.ptr("", new $Int64(0, 0), 0, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$15.nil), new syscall.Stat_t.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), 0, 0, 0, 0, new $Uint64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), arrayType$1.zero()));
  19819. err = syscall.Stat(name, fs.sys);
  19820. if (!($interfaceIsEqual(err, $ifaceNil))) {
  19821. return [$ifaceNil, new PathError.ptr("stat", name, err)];
  19822. }
  19823. fillFileStatFromSys(fs, name);
  19824. return [fs, $ifaceNil];
  19825. };
  19826. lstatNolog = function(name) {
  19827. var err, fs, name;
  19828. fs = new fileStat.ptr("", new $Int64(0, 0), 0, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$15.nil), new syscall.Stat_t.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), 0, 0, 0, 0, new $Uint64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), arrayType$1.zero()));
  19829. err = syscall.Lstat(name, fs.sys);
  19830. if (!($interfaceIsEqual(err, $ifaceNil))) {
  19831. return [$ifaceNil, new PathError.ptr("lstat", name, err)];
  19832. }
  19833. fillFileStatFromSys(fs, name);
  19834. return [fs, $ifaceNil];
  19835. };
  19836. FileMode.prototype.String = function() {
  19837. var _i, _i$1, _ref, _ref$1, _rune, _rune$1, buf, c, c$1, i, i$1, m, w, y, y$1;
  19838. m = this.$val;
  19839. buf = arrayType$6.zero();
  19840. w = 0;
  19841. _ref = "dalTLDpSugct?";
  19842. _i = 0;
  19843. while (true) {
  19844. if (!(_i < _ref.length)) { break; }
  19845. _rune = $decodeRune(_ref, _i);
  19846. i = _i;
  19847. c = _rune[0];
  19848. if (!((((m & (((y = (((31 - i >> 0) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) {
  19849. ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = ((c << 24 >>> 24)));
  19850. w = w + (1) >> 0;
  19851. }
  19852. _i += _rune[1];
  19853. }
  19854. if (w === 0) {
  19855. ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 45);
  19856. w = w + (1) >> 0;
  19857. }
  19858. _ref$1 = "rwxrwxrwx";
  19859. _i$1 = 0;
  19860. while (true) {
  19861. if (!(_i$1 < _ref$1.length)) { break; }
  19862. _rune$1 = $decodeRune(_ref$1, _i$1);
  19863. i$1 = _i$1;
  19864. c$1 = _rune$1[0];
  19865. if (!((((m & (((y$1 = (((8 - i$1 >> 0) >>> 0)), y$1 < 32 ? (1 << y$1) : 0) >>> 0))) >>> 0) === 0))) {
  19866. ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = ((c$1 << 24 >>> 24)));
  19867. } else {
  19868. ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 45);
  19869. }
  19870. w = w + (1) >> 0;
  19871. _i$1 += _rune$1[1];
  19872. }
  19873. return ($bytesToString($subslice(new sliceType$2(buf), 0, w)));
  19874. };
  19875. $ptrType(FileMode).prototype.String = function() { return new FileMode(this.$get()).String(); };
  19876. FileMode.prototype.IsDir = function() {
  19877. var m;
  19878. m = this.$val;
  19879. return !((((m & 2147483648) >>> 0) === 0));
  19880. };
  19881. $ptrType(FileMode).prototype.IsDir = function() { return new FileMode(this.$get()).IsDir(); };
  19882. FileMode.prototype.IsRegular = function() {
  19883. var m;
  19884. m = this.$val;
  19885. return ((m & 2401763328) >>> 0) === 0;
  19886. };
  19887. $ptrType(FileMode).prototype.IsRegular = function() { return new FileMode(this.$get()).IsRegular(); };
  19888. FileMode.prototype.Perm = function() {
  19889. var m;
  19890. m = this.$val;
  19891. return (m & 511) >>> 0;
  19892. };
  19893. $ptrType(FileMode).prototype.Perm = function() { return new FileMode(this.$get()).Perm(); };
  19894. fileStat.ptr.prototype.Name = function() {
  19895. var fs;
  19896. fs = this;
  19897. return fs.name;
  19898. };
  19899. fileStat.prototype.Name = function() { return this.$val.Name(); };
  19900. fileStat.ptr.prototype.IsDir = function() {
  19901. var fs;
  19902. fs = this;
  19903. return new FileMode(fs.Mode()).IsDir();
  19904. };
  19905. fileStat.prototype.IsDir = function() { return this.$val.IsDir(); };
  19906. fileStat.ptr.prototype.Size = function() {
  19907. var fs;
  19908. fs = this;
  19909. return fs.size;
  19910. };
  19911. fileStat.prototype.Size = function() { return this.$val.Size(); };
  19912. fileStat.ptr.prototype.Mode = function() {
  19913. var fs;
  19914. fs = this;
  19915. return fs.mode;
  19916. };
  19917. fileStat.prototype.Mode = function() { return this.$val.Mode(); };
  19918. fileStat.ptr.prototype.ModTime = function() {
  19919. var fs;
  19920. fs = this;
  19921. return fs.modTime;
  19922. };
  19923. fileStat.prototype.ModTime = function() { return this.$val.ModTime(); };
  19924. fileStat.ptr.prototype.Sys = function() {
  19925. var fs;
  19926. fs = this;
  19927. return fs.sys;
  19928. };
  19929. fileStat.prototype.Sys = function() { return this.$val.Sys(); };
  19930. ptrType$1.methods = [{prop: "close", name: "close", pkg: "os", typ: $funcType([], [], false)}];
  19931. ptrType$2.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}];
  19932. ptrType$4.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}];
  19933. ptrType$3.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
  19934. ptrType$13.methods = [{prop: "close", name: "close", pkg: "os", typ: $funcType([], [$error], false)}];
  19935. ptrType$18.methods = [{prop: "Control", name: "Control", pkg: "", typ: $funcType([funcType$2], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([funcType$3], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([funcType$3], [$error], false)}];
  19936. ptrType.methods = [{prop: "Readdir", name: "Readdir", pkg: "", typ: $funcType([$Int], [sliceType$1, $error], false)}, {prop: "Readdirnames", name: "Readdirnames", pkg: "", typ: $funcType([$Int], [sliceType, $error], false)}, {prop: "readdirnames", name: "readdirnames", pkg: "os", typ: $funcType([$Int], [sliceType, $error], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "WriteAt", name: "WriteAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "wrapErr", name: "wrapErr", pkg: "os", typ: $funcType([$String, $error], [$error], false)}, {prop: "Chmod", name: "Chmod", pkg: "", typ: $funcType([FileMode], [$error], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SyscallConn", name: "SyscallConn", pkg: "", typ: $funcType([], [syscall.RawConn, $error], false)}, {prop: "chmod", name: "chmod", pkg: "os", typ: $funcType([FileMode], [$error], false)}, {prop: "Chown", name: "Chown", pkg: "", typ: $funcType([$Int, $Int], [$error], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([$Int64], [$error], false)}, {prop: "Sync", name: "Sync", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Chdir", name: "Chdir", pkg: "", typ: $funcType([], [$error], false)}, {prop: "setDeadline", name: "setDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "setReadDeadline", name: "setReadDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "setWriteDeadline", name: "setWriteDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "checkValid", name: "checkValid", pkg: "os", typ: $funcType([$String], [$error], false)}, {prop: "Fd", name: "Fd", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "read", name: "read", pkg: "os", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "pread", name: "pread", pkg: "os", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "write", name: "write", pkg: "os", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "pwrite", name: "pwrite", pkg: "os", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "seek", name: "seek", pkg: "os", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "readdir", name: "readdir", pkg: "os", typ: $funcType([$Int], [sliceType$1, $error], false)}, {prop: "Stat", name: "Stat", pkg: "", typ: $funcType([], [FileInfo, $error], false)}];
  19937. FileMode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsRegular", name: "IsRegular", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Perm", name: "Perm", pkg: "", typ: $funcType([], [FileMode], false)}];
  19938. ptrType$16.methods = [{prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [FileMode], false)}, {prop: "ModTime", name: "ModTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false)}];
  19939. dirInfo.init("os", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "nbuf", name: "nbuf", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bufp", name: "bufp", embedded: false, exported: false, typ: $Int, tag: ""}]);
  19940. timeout.init([{prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]);
  19941. PathError.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Path", name: "Path", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]);
  19942. SyscallError.init("", [{prop: "Syscall", name: "Syscall", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]);
  19943. LinkError.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Old", name: "Old", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "New", name: "New", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]);
  19944. file.init("os", [{prop: "pfd", name: "pfd", embedded: false, exported: false, typ: poll.FD, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "dirinfo", name: "dirinfo", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "nonblock", name: "nonblock", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "stdoutOrErr", name: "stdoutOrErr", embedded: false, exported: false, typ: $Bool, tag: ""}]);
  19945. rawConn.init("os", [{prop: "file", name: "file", embedded: false, exported: false, typ: ptrType, tag: ""}]);
  19946. File.init("os", [{prop: "file", name: "file", embedded: true, exported: false, typ: ptrType$13, tag: ""}]);
  19947. FileInfo.init([{prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ModTime", name: "ModTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [FileMode], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false)}]);
  19948. fileStat.init("os", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "mode", name: "mode", embedded: false, exported: false, typ: FileMode, tag: ""}, {prop: "modTime", name: "modTime", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "sys", name: "sys", embedded: false, exported: false, typ: syscall.Stat_t, tag: ""}]);
  19949. $init = function() {
  19950. $pkg.$init = function() {};
  19951. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  19952. $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  19953. $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  19954. $r = poll.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  19955. $r = unix.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  19956. $r = testlog.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  19957. $r = io.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  19958. $r = runtime.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  19959. $r = sync.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  19960. $r = atomic.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  19961. $r = syscall.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  19962. $r = time.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  19963. $pkg.Args = sliceType.nil;
  19964. $pkg.ErrInvalid = errors.New("invalid argument");
  19965. $pkg.ErrPermission = errors.New("permission denied");
  19966. $pkg.ErrExist = errors.New("file already exists");
  19967. $pkg.ErrNotExist = errors.New("file does not exist");
  19968. $pkg.ErrClosed = errors.New("file already closed");
  19969. errFinished = errors.New("os: process already finished");
  19970. $pkg.Stdin = NewFile(((syscall.Stdin >>> 0)), "/dev/stdin");
  19971. $pkg.Stdout = NewFile(((syscall.Stdout >>> 0)), "/dev/stdout");
  19972. $pkg.Stderr = NewFile(((syscall.Stderr >>> 0)), "/dev/stderr");
  19973. lstat = Lstat;
  19974. init();
  19975. init$1();
  19976. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  19977. };
  19978. $pkg.$init = $init;
  19979. return $pkg;
  19980. })();
  19981. $packages["fmt"] = (function() {
  19982. var $pkg = {}, $init, errors, fmtsort, io, math, os, reflect, strconv, sync, utf8, fmtFlags, fmt, State, Formatter, Stringer, GoStringer, buffer, pp, scanError, ss, ssave, sliceType, ptrType, ptrType$1, arrayType, arrayType$1, sliceType$1, sliceType$2, arrayType$2, ptrType$2, ptrType$5, ptrType$25, funcType, ppFree, space, ssFree, complexError, boolError, newPrinter, Sprintf, Errorf, Sprint, Fprintln, Println, Sprintln, getField, tooLarge, parsenum, intFromArg, parseArgNumber, isSpace, notSpace, indexRune;
  19983. errors = $packages["errors"];
  19984. fmtsort = $packages["internal/fmtsort"];
  19985. io = $packages["io"];
  19986. math = $packages["math"];
  19987. os = $packages["os"];
  19988. reflect = $packages["reflect"];
  19989. strconv = $packages["strconv"];
  19990. sync = $packages["sync"];
  19991. utf8 = $packages["unicode/utf8"];
  19992. fmtFlags = $pkg.fmtFlags = $newType(0, $kindStruct, "fmt.fmtFlags", true, "fmt", false, function(widPresent_, precPresent_, minus_, plus_, sharp_, space_, zero_, plusV_, sharpV_) {
  19993. this.$val = this;
  19994. if (arguments.length === 0) {
  19995. this.widPresent = false;
  19996. this.precPresent = false;
  19997. this.minus = false;
  19998. this.plus = false;
  19999. this.sharp = false;
  20000. this.space = false;
  20001. this.zero = false;
  20002. this.plusV = false;
  20003. this.sharpV = false;
  20004. return;
  20005. }
  20006. this.widPresent = widPresent_;
  20007. this.precPresent = precPresent_;
  20008. this.minus = minus_;
  20009. this.plus = plus_;
  20010. this.sharp = sharp_;
  20011. this.space = space_;
  20012. this.zero = zero_;
  20013. this.plusV = plusV_;
  20014. this.sharpV = sharpV_;
  20015. });
  20016. fmt = $pkg.fmt = $newType(0, $kindStruct, "fmt.fmt", true, "fmt", false, function(buf_, fmtFlags_, wid_, prec_, intbuf_) {
  20017. this.$val = this;
  20018. if (arguments.length === 0) {
  20019. this.buf = ptrType$1.nil;
  20020. this.fmtFlags = new fmtFlags.ptr(false, false, false, false, false, false, false, false, false);
  20021. this.wid = 0;
  20022. this.prec = 0;
  20023. this.intbuf = arrayType.zero();
  20024. return;
  20025. }
  20026. this.buf = buf_;
  20027. this.fmtFlags = fmtFlags_;
  20028. this.wid = wid_;
  20029. this.prec = prec_;
  20030. this.intbuf = intbuf_;
  20031. });
  20032. State = $pkg.State = $newType(8, $kindInterface, "fmt.State", true, "fmt", true, null);
  20033. Formatter = $pkg.Formatter = $newType(8, $kindInterface, "fmt.Formatter", true, "fmt", true, null);
  20034. Stringer = $pkg.Stringer = $newType(8, $kindInterface, "fmt.Stringer", true, "fmt", true, null);
  20035. GoStringer = $pkg.GoStringer = $newType(8, $kindInterface, "fmt.GoStringer", true, "fmt", true, null);
  20036. buffer = $pkg.buffer = $newType(12, $kindSlice, "fmt.buffer", true, "fmt", false, null);
  20037. pp = $pkg.pp = $newType(0, $kindStruct, "fmt.pp", true, "fmt", false, function(buf_, arg_, value_, fmt_, reordered_, goodArgNum_, panicking_, erroring_) {
  20038. this.$val = this;
  20039. if (arguments.length === 0) {
  20040. this.buf = buffer.nil;
  20041. this.arg = $ifaceNil;
  20042. this.value = new reflect.Value.ptr(ptrType.nil, 0, 0);
  20043. this.fmt = new fmt.ptr(ptrType$1.nil, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false), 0, 0, arrayType.zero());
  20044. this.reordered = false;
  20045. this.goodArgNum = false;
  20046. this.panicking = false;
  20047. this.erroring = false;
  20048. return;
  20049. }
  20050. this.buf = buf_;
  20051. this.arg = arg_;
  20052. this.value = value_;
  20053. this.fmt = fmt_;
  20054. this.reordered = reordered_;
  20055. this.goodArgNum = goodArgNum_;
  20056. this.panicking = panicking_;
  20057. this.erroring = erroring_;
  20058. });
  20059. scanError = $pkg.scanError = $newType(0, $kindStruct, "fmt.scanError", true, "fmt", false, function(err_) {
  20060. this.$val = this;
  20061. if (arguments.length === 0) {
  20062. this.err = $ifaceNil;
  20063. return;
  20064. }
  20065. this.err = err_;
  20066. });
  20067. ss = $pkg.ss = $newType(0, $kindStruct, "fmt.ss", true, "fmt", false, function(rs_, buf_, count_, atEOF_, ssave_) {
  20068. this.$val = this;
  20069. if (arguments.length === 0) {
  20070. this.rs = $ifaceNil;
  20071. this.buf = buffer.nil;
  20072. this.count = 0;
  20073. this.atEOF = false;
  20074. this.ssave = new ssave.ptr(false, false, false, 0, 0, 0);
  20075. return;
  20076. }
  20077. this.rs = rs_;
  20078. this.buf = buf_;
  20079. this.count = count_;
  20080. this.atEOF = atEOF_;
  20081. this.ssave = ssave_;
  20082. });
  20083. ssave = $pkg.ssave = $newType(0, $kindStruct, "fmt.ssave", true, "fmt", false, function(validSave_, nlIsEnd_, nlIsSpace_, argLimit_, limit_, maxWid_) {
  20084. this.$val = this;
  20085. if (arguments.length === 0) {
  20086. this.validSave = false;
  20087. this.nlIsEnd = false;
  20088. this.nlIsSpace = false;
  20089. this.argLimit = 0;
  20090. this.limit = 0;
  20091. this.maxWid = 0;
  20092. return;
  20093. }
  20094. this.validSave = validSave_;
  20095. this.nlIsEnd = nlIsEnd_;
  20096. this.nlIsSpace = nlIsSpace_;
  20097. this.argLimit = argLimit_;
  20098. this.limit = limit_;
  20099. this.maxWid = maxWid_;
  20100. });
  20101. sliceType = $sliceType($emptyInterface);
  20102. ptrType = $ptrType(reflect.rtype);
  20103. ptrType$1 = $ptrType(buffer);
  20104. arrayType = $arrayType($Uint8, 68);
  20105. arrayType$1 = $arrayType($Uint16, 2);
  20106. sliceType$1 = $sliceType(arrayType$1);
  20107. sliceType$2 = $sliceType($Uint8);
  20108. arrayType$2 = $arrayType($Uint8, 5);
  20109. ptrType$2 = $ptrType(pp);
  20110. ptrType$5 = $ptrType(ss);
  20111. ptrType$25 = $ptrType(fmt);
  20112. funcType = $funcType([$Int32], [$Bool], false);
  20113. fmt.ptr.prototype.clearflags = function() {
  20114. var f;
  20115. f = this;
  20116. fmtFlags.copy(f.fmtFlags, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false));
  20117. };
  20118. fmt.prototype.clearflags = function() { return this.$val.clearflags(); };
  20119. fmt.ptr.prototype.init = function(buf) {
  20120. var buf, f;
  20121. f = this;
  20122. f.buf = buf;
  20123. f.clearflags();
  20124. };
  20125. fmt.prototype.init = function(buf) { return this.$val.init(buf); };
  20126. fmt.ptr.prototype.writePadding = function(n) {
  20127. var _i, _ref, buf, f, i, n, newLen, oldLen, padByte, padding;
  20128. f = this;
  20129. if (n <= 0) {
  20130. return;
  20131. }
  20132. buf = f.buf.$get();
  20133. oldLen = buf.$length;
  20134. newLen = oldLen + n >> 0;
  20135. if (newLen > buf.$capacity) {
  20136. buf = $makeSlice(buffer, (($imul(buf.$capacity, 2)) + n >> 0));
  20137. $copySlice(buf, f.buf.$get());
  20138. }
  20139. padByte = 32;
  20140. if (f.fmtFlags.zero) {
  20141. padByte = 48;
  20142. }
  20143. padding = $subslice(buf, oldLen, newLen);
  20144. _ref = padding;
  20145. _i = 0;
  20146. while (true) {
  20147. if (!(_i < _ref.$length)) { break; }
  20148. i = _i;
  20149. ((i < 0 || i >= padding.$length) ? ($throwRuntimeError("index out of range"), undefined) : padding.$array[padding.$offset + i] = padByte);
  20150. _i++;
  20151. }
  20152. f.buf.$set($subslice(buf, 0, newLen));
  20153. };
  20154. fmt.prototype.writePadding = function(n) { return this.$val.writePadding(n); };
  20155. fmt.ptr.prototype.pad = function(b) {
  20156. var b, f, width;
  20157. f = this;
  20158. if (!f.fmtFlags.widPresent || (f.wid === 0)) {
  20159. f.buf.Write(b);
  20160. return;
  20161. }
  20162. width = f.wid - utf8.RuneCount(b) >> 0;
  20163. if (!f.fmtFlags.minus) {
  20164. f.writePadding(width);
  20165. f.buf.Write(b);
  20166. } else {
  20167. f.buf.Write(b);
  20168. f.writePadding(width);
  20169. }
  20170. };
  20171. fmt.prototype.pad = function(b) { return this.$val.pad(b); };
  20172. fmt.ptr.prototype.padString = function(s) {
  20173. var f, s, width;
  20174. f = this;
  20175. if (!f.fmtFlags.widPresent || (f.wid === 0)) {
  20176. f.buf.WriteString(s);
  20177. return;
  20178. }
  20179. width = f.wid - utf8.RuneCountInString(s) >> 0;
  20180. if (!f.fmtFlags.minus) {
  20181. f.writePadding(width);
  20182. f.buf.WriteString(s);
  20183. } else {
  20184. f.buf.WriteString(s);
  20185. f.writePadding(width);
  20186. }
  20187. };
  20188. fmt.prototype.padString = function(s) { return this.$val.padString(s); };
  20189. fmt.ptr.prototype.fmtBoolean = function(v) {
  20190. var f, v;
  20191. f = this;
  20192. if (v) {
  20193. f.padString("true");
  20194. } else {
  20195. f.padString("false");
  20196. }
  20197. };
  20198. fmt.prototype.fmtBoolean = function(v) { return this.$val.fmtBoolean(v); };
  20199. fmt.ptr.prototype.fmtUnicode = function(u) {
  20200. var buf, f, i, oldZero, prec, u, width;
  20201. f = this;
  20202. buf = $subslice(new sliceType$2(f.intbuf), 0);
  20203. prec = 4;
  20204. if (f.fmtFlags.precPresent && f.prec > 4) {
  20205. prec = f.prec;
  20206. width = (((2 + prec >> 0) + 2 >> 0) + 4 >> 0) + 1 >> 0;
  20207. if (width > buf.$length) {
  20208. buf = $makeSlice(sliceType$2, width);
  20209. }
  20210. }
  20211. i = buf.$length;
  20212. if (f.fmtFlags.sharp && (u.$high < 0 || (u.$high === 0 && u.$low <= 1114111)) && strconv.IsPrint(((u.$low >> 0)))) {
  20213. i = i - (1) >> 0;
  20214. ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 39);
  20215. i = i - (utf8.RuneLen(((u.$low >> 0)))) >> 0;
  20216. utf8.EncodeRune($subslice(buf, i), ((u.$low >> 0)));
  20217. i = i - (1) >> 0;
  20218. ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 39);
  20219. i = i - (1) >> 0;
  20220. ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 32);
  20221. }
  20222. while (true) {
  20223. if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 16)))) { break; }
  20224. i = i - (1) >> 0;
  20225. ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = "0123456789ABCDEFX".charCodeAt($flatten64(new $Uint64(u.$high & 0, (u.$low & 15) >>> 0))));
  20226. prec = prec - (1) >> 0;
  20227. u = $shiftRightUint64(u, (4));
  20228. }
  20229. i = i - (1) >> 0;
  20230. ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = "0123456789ABCDEFX".charCodeAt($flatten64(u)));
  20231. prec = prec - (1) >> 0;
  20232. while (true) {
  20233. if (!(prec > 0)) { break; }
  20234. i = i - (1) >> 0;
  20235. ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48);
  20236. prec = prec - (1) >> 0;
  20237. }
  20238. i = i - (1) >> 0;
  20239. ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 43);
  20240. i = i - (1) >> 0;
  20241. ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 85);
  20242. oldZero = f.fmtFlags.zero;
  20243. f.fmtFlags.zero = false;
  20244. f.pad($subslice(buf, i));
  20245. f.fmtFlags.zero = oldZero;
  20246. };
  20247. fmt.prototype.fmtUnicode = function(u) { return this.$val.fmtUnicode(u); };
  20248. fmt.ptr.prototype.fmtInteger = function(u, base, isSigned, digits) {
  20249. var _1, _2, base, buf, digits, f, i, isSigned, negative, next, oldZero, oldZero$1, prec, u, width, x, x$1, x$2, x$3, x$4;
  20250. f = this;
  20251. negative = isSigned && (x = (new $Int64(u.$high, u.$low)), (x.$high < 0 || (x.$high === 0 && x.$low < 0)));
  20252. if (negative) {
  20253. u = new $Uint64(-u.$high, -u.$low);
  20254. }
  20255. buf = $subslice(new sliceType$2(f.intbuf), 0);
  20256. if (f.fmtFlags.widPresent || f.fmtFlags.precPresent) {
  20257. width = (3 + f.wid >> 0) + f.prec >> 0;
  20258. if (width > buf.$length) {
  20259. buf = $makeSlice(sliceType$2, width);
  20260. }
  20261. }
  20262. prec = 0;
  20263. if (f.fmtFlags.precPresent) {
  20264. prec = f.prec;
  20265. if ((prec === 0) && (u.$high === 0 && u.$low === 0)) {
  20266. oldZero = f.fmtFlags.zero;
  20267. f.fmtFlags.zero = false;
  20268. f.writePadding(f.wid);
  20269. f.fmtFlags.zero = oldZero;
  20270. return;
  20271. }
  20272. } else if (f.fmtFlags.zero && f.fmtFlags.widPresent) {
  20273. prec = f.wid;
  20274. if (negative || f.fmtFlags.plus || f.fmtFlags.space) {
  20275. prec = prec - (1) >> 0;
  20276. }
  20277. }
  20278. i = buf.$length;
  20279. _1 = base;
  20280. if (_1 === (10)) {
  20281. while (true) {
  20282. if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 10)))) { break; }
  20283. i = i - (1) >> 0;
  20284. next = $div64(u, new $Uint64(0, 10), false);
  20285. ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (((x$1 = new $Uint64(0 + u.$high, 48 + u.$low), x$2 = $mul64(next, new $Uint64(0, 10)), new $Uint64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)).$low << 24 >>> 24)));
  20286. u = next;
  20287. }
  20288. } else if (_1 === (16)) {
  20289. while (true) {
  20290. if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 16)))) { break; }
  20291. i = i - (1) >> 0;
  20292. ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = digits.charCodeAt($flatten64(new $Uint64(u.$high & 0, (u.$low & 15) >>> 0))));
  20293. u = $shiftRightUint64(u, (4));
  20294. }
  20295. } else if (_1 === (8)) {
  20296. while (true) {
  20297. if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 8)))) { break; }
  20298. i = i - (1) >> 0;
  20299. ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (((x$3 = new $Uint64(u.$high & 0, (u.$low & 7) >>> 0), new $Uint64(0 + x$3.$high, 48 + x$3.$low)).$low << 24 >>> 24)));
  20300. u = $shiftRightUint64(u, (3));
  20301. }
  20302. } else if (_1 === (2)) {
  20303. while (true) {
  20304. if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 2)))) { break; }
  20305. i = i - (1) >> 0;
  20306. ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (((x$4 = new $Uint64(u.$high & 0, (u.$low & 1) >>> 0), new $Uint64(0 + x$4.$high, 48 + x$4.$low)).$low << 24 >>> 24)));
  20307. u = $shiftRightUint64(u, (1));
  20308. }
  20309. } else {
  20310. $panic(new $String("fmt: unknown base; can't happen"));
  20311. }
  20312. i = i - (1) >> 0;
  20313. ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = digits.charCodeAt($flatten64(u)));
  20314. while (true) {
  20315. if (!(i > 0 && prec > (buf.$length - i >> 0))) { break; }
  20316. i = i - (1) >> 0;
  20317. ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48);
  20318. }
  20319. if (f.fmtFlags.sharp) {
  20320. _2 = base;
  20321. if (_2 === (8)) {
  20322. if (!((((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i]) === 48))) {
  20323. i = i - (1) >> 0;
  20324. ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48);
  20325. }
  20326. } else if (_2 === (16)) {
  20327. i = i - (1) >> 0;
  20328. ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = digits.charCodeAt(16));
  20329. i = i - (1) >> 0;
  20330. ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48);
  20331. }
  20332. }
  20333. if (negative) {
  20334. i = i - (1) >> 0;
  20335. ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 45);
  20336. } else if (f.fmtFlags.plus) {
  20337. i = i - (1) >> 0;
  20338. ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 43);
  20339. } else if (f.fmtFlags.space) {
  20340. i = i - (1) >> 0;
  20341. ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 32);
  20342. }
  20343. oldZero$1 = f.fmtFlags.zero;
  20344. f.fmtFlags.zero = false;
  20345. f.pad($subslice(buf, i));
  20346. f.fmtFlags.zero = oldZero$1;
  20347. };
  20348. fmt.prototype.fmtInteger = function(u, base, isSigned, digits) { return this.$val.fmtInteger(u, base, isSigned, digits); };
  20349. fmt.ptr.prototype.truncateString = function(s) {
  20350. var _i, _ref, _rune, f, i, n, s;
  20351. f = this;
  20352. if (f.fmtFlags.precPresent) {
  20353. n = f.prec;
  20354. _ref = s;
  20355. _i = 0;
  20356. while (true) {
  20357. if (!(_i < _ref.length)) { break; }
  20358. _rune = $decodeRune(_ref, _i);
  20359. i = _i;
  20360. n = n - (1) >> 0;
  20361. if (n < 0) {
  20362. return $substring(s, 0, i);
  20363. }
  20364. _i += _rune[1];
  20365. }
  20366. }
  20367. return s;
  20368. };
  20369. fmt.prototype.truncateString = function(s) { return this.$val.truncateString(s); };
  20370. fmt.ptr.prototype.truncate = function(b) {
  20371. var _tuple, b, f, i, n, wid;
  20372. f = this;
  20373. if (f.fmtFlags.precPresent) {
  20374. n = f.prec;
  20375. i = 0;
  20376. while (true) {
  20377. if (!(i < b.$length)) { break; }
  20378. n = n - (1) >> 0;
  20379. if (n < 0) {
  20380. return $subslice(b, 0, i);
  20381. }
  20382. wid = 1;
  20383. if (((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) >= 128) {
  20384. _tuple = utf8.DecodeRune($subslice(b, i));
  20385. wid = _tuple[1];
  20386. }
  20387. i = i + (wid) >> 0;
  20388. }
  20389. }
  20390. return b;
  20391. };
  20392. fmt.prototype.truncate = function(b) { return this.$val.truncate(b); };
  20393. fmt.ptr.prototype.fmtS = function(s) {
  20394. var f, s;
  20395. f = this;
  20396. s = f.truncateString(s);
  20397. f.padString(s);
  20398. };
  20399. fmt.prototype.fmtS = function(s) { return this.$val.fmtS(s); };
  20400. fmt.ptr.prototype.fmtBs = function(b) {
  20401. var b, f;
  20402. f = this;
  20403. b = f.truncate(b);
  20404. f.pad(b);
  20405. };
  20406. fmt.prototype.fmtBs = function(b) { return this.$val.fmtBs(b); };
  20407. fmt.ptr.prototype.fmtSbx = function(s, b, digits) {
  20408. var b, buf, c, digits, f, i, length, s, width;
  20409. f = this;
  20410. length = b.$length;
  20411. if (b === sliceType$2.nil) {
  20412. length = s.length;
  20413. }
  20414. if (f.fmtFlags.precPresent && f.prec < length) {
  20415. length = f.prec;
  20416. }
  20417. width = $imul(2, length);
  20418. if (width > 0) {
  20419. if (f.fmtFlags.space) {
  20420. if (f.fmtFlags.sharp) {
  20421. width = $imul(width, (2));
  20422. }
  20423. width = width + ((length - 1 >> 0)) >> 0;
  20424. } else if (f.fmtFlags.sharp) {
  20425. width = width + (2) >> 0;
  20426. }
  20427. } else {
  20428. if (f.fmtFlags.widPresent) {
  20429. f.writePadding(f.wid);
  20430. }
  20431. return;
  20432. }
  20433. if (f.fmtFlags.widPresent && f.wid > width && !f.fmtFlags.minus) {
  20434. f.writePadding(f.wid - width >> 0);
  20435. }
  20436. buf = f.buf.$get();
  20437. if (f.fmtFlags.sharp) {
  20438. buf = $append(buf, 48, digits.charCodeAt(16));
  20439. }
  20440. c = 0;
  20441. i = 0;
  20442. while (true) {
  20443. if (!(i < length)) { break; }
  20444. if (f.fmtFlags.space && i > 0) {
  20445. buf = $append(buf, 32);
  20446. if (f.fmtFlags.sharp) {
  20447. buf = $append(buf, 48, digits.charCodeAt(16));
  20448. }
  20449. }
  20450. if (!(b === sliceType$2.nil)) {
  20451. c = ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]);
  20452. } else {
  20453. c = s.charCodeAt(i);
  20454. }
  20455. buf = $append(buf, digits.charCodeAt((c >>> 4 << 24 >>> 24)), digits.charCodeAt(((c & 15) >>> 0)));
  20456. i = i + (1) >> 0;
  20457. }
  20458. f.buf.$set(buf);
  20459. if (f.fmtFlags.widPresent && f.wid > width && f.fmtFlags.minus) {
  20460. f.writePadding(f.wid - width >> 0);
  20461. }
  20462. };
  20463. fmt.prototype.fmtSbx = function(s, b, digits) { return this.$val.fmtSbx(s, b, digits); };
  20464. fmt.ptr.prototype.fmtSx = function(s, digits) {
  20465. var digits, f, s;
  20466. f = this;
  20467. f.fmtSbx(s, sliceType$2.nil, digits);
  20468. };
  20469. fmt.prototype.fmtSx = function(s, digits) { return this.$val.fmtSx(s, digits); };
  20470. fmt.ptr.prototype.fmtBx = function(b, digits) {
  20471. var b, digits, f;
  20472. f = this;
  20473. f.fmtSbx("", b, digits);
  20474. };
  20475. fmt.prototype.fmtBx = function(b, digits) { return this.$val.fmtBx(b, digits); };
  20476. fmt.ptr.prototype.fmtQ = function(s) {
  20477. var buf, f, s;
  20478. f = this;
  20479. s = f.truncateString(s);
  20480. if (f.fmtFlags.sharp && strconv.CanBackquote(s)) {
  20481. f.padString("`" + s + "`");
  20482. return;
  20483. }
  20484. buf = $subslice(new sliceType$2(f.intbuf), 0, 0);
  20485. if (f.fmtFlags.plus) {
  20486. f.pad(strconv.AppendQuoteToASCII(buf, s));
  20487. } else {
  20488. f.pad(strconv.AppendQuote(buf, s));
  20489. }
  20490. };
  20491. fmt.prototype.fmtQ = function(s) { return this.$val.fmtQ(s); };
  20492. fmt.ptr.prototype.fmtC = function(c) {
  20493. var buf, c, f, r, w;
  20494. f = this;
  20495. r = ((c.$low >> 0));
  20496. if ((c.$high > 0 || (c.$high === 0 && c.$low > 1114111))) {
  20497. r = 65533;
  20498. }
  20499. buf = $subslice(new sliceType$2(f.intbuf), 0, 0);
  20500. w = utf8.EncodeRune($subslice(buf, 0, 4), r);
  20501. f.pad($subslice(buf, 0, w));
  20502. };
  20503. fmt.prototype.fmtC = function(c) { return this.$val.fmtC(c); };
  20504. fmt.ptr.prototype.fmtQc = function(c) {
  20505. var buf, c, f, r;
  20506. f = this;
  20507. r = ((c.$low >> 0));
  20508. if ((c.$high > 0 || (c.$high === 0 && c.$low > 1114111))) {
  20509. r = 65533;
  20510. }
  20511. buf = $subslice(new sliceType$2(f.intbuf), 0, 0);
  20512. if (f.fmtFlags.plus) {
  20513. f.pad(strconv.AppendQuoteRuneToASCII(buf, r));
  20514. } else {
  20515. f.pad(strconv.AppendQuoteRune(buf, r));
  20516. }
  20517. };
  20518. fmt.prototype.fmtQc = function(c) { return this.$val.fmtQc(c); };
  20519. fmt.ptr.prototype.fmtFloat = function(v, size, verb, prec) {
  20520. var _1, _2, digits, f, hasDecimalPoint, i, num, oldZero, prec, size, tail, tailBuf, v, verb;
  20521. f = this;
  20522. if (f.fmtFlags.precPresent) {
  20523. prec = f.prec;
  20524. }
  20525. num = strconv.AppendFloat($subslice(new sliceType$2(f.intbuf), 0, 1), v, ((verb << 24 >>> 24)), prec, size);
  20526. if (((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 45) || ((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 43)) {
  20527. num = $subslice(num, 1);
  20528. } else {
  20529. (0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0] = 43);
  20530. }
  20531. if (f.fmtFlags.space && ((0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0]) === 43) && !f.fmtFlags.plus) {
  20532. (0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0] = 32);
  20533. }
  20534. if (((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 73) || ((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 78)) {
  20535. oldZero = f.fmtFlags.zero;
  20536. f.fmtFlags.zero = false;
  20537. if (((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 78) && !f.fmtFlags.space && !f.fmtFlags.plus) {
  20538. num = $subslice(num, 1);
  20539. }
  20540. f.pad(num);
  20541. f.fmtFlags.zero = oldZero;
  20542. return;
  20543. }
  20544. if (f.fmtFlags.sharp && !((verb === 98))) {
  20545. digits = 0;
  20546. _1 = verb;
  20547. if ((_1 === (118)) || (_1 === (103)) || (_1 === (71))) {
  20548. digits = prec;
  20549. if (digits === -1) {
  20550. digits = 6;
  20551. }
  20552. }
  20553. tailBuf = arrayType$2.zero();
  20554. tail = $subslice(new sliceType$2(tailBuf), 0, 0);
  20555. hasDecimalPoint = false;
  20556. i = 1;
  20557. while (true) {
  20558. if (!(i < num.$length)) { break; }
  20559. _2 = ((i < 0 || i >= num.$length) ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + i]);
  20560. if (_2 === (46)) {
  20561. hasDecimalPoint = true;
  20562. } else if ((_2 === (101)) || (_2 === (69))) {
  20563. tail = $appendSlice(tail, $subslice(num, i));
  20564. num = $subslice(num, 0, i);
  20565. } else {
  20566. digits = digits - (1) >> 0;
  20567. }
  20568. i = i + (1) >> 0;
  20569. }
  20570. if (!hasDecimalPoint) {
  20571. num = $append(num, 46);
  20572. }
  20573. while (true) {
  20574. if (!(digits > 0)) { break; }
  20575. num = $append(num, 48);
  20576. digits = digits - (1) >> 0;
  20577. }
  20578. num = $appendSlice(num, tail);
  20579. }
  20580. if (f.fmtFlags.plus || !(((0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0]) === 43))) {
  20581. if (f.fmtFlags.zero && f.fmtFlags.widPresent && f.wid > num.$length) {
  20582. f.buf.WriteByte((0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0]));
  20583. f.writePadding(f.wid - num.$length >> 0);
  20584. f.buf.Write($subslice(num, 1));
  20585. return;
  20586. }
  20587. f.pad(num);
  20588. return;
  20589. }
  20590. f.pad($subslice(num, 1));
  20591. };
  20592. fmt.prototype.fmtFloat = function(v, size, verb, prec) { return this.$val.fmtFloat(v, size, verb, prec); };
  20593. $ptrType(buffer).prototype.Write = function(p) {
  20594. var b, p;
  20595. b = this;
  20596. b.$set($appendSlice(b.$get(), p));
  20597. };
  20598. $ptrType(buffer).prototype.WriteString = function(s) {
  20599. var b, s;
  20600. b = this;
  20601. b.$set($appendSlice(b.$get(), s));
  20602. };
  20603. $ptrType(buffer).prototype.WriteByte = function(c) {
  20604. var b, c;
  20605. b = this;
  20606. b.$set($append(b.$get(), c));
  20607. };
  20608. $ptrType(buffer).prototype.WriteRune = function(r) {
  20609. var b, bp, n, r, w, x;
  20610. bp = this;
  20611. if (r < 128) {
  20612. bp.$set($append(bp.$get(), ((r << 24 >>> 24))));
  20613. return;
  20614. }
  20615. b = bp.$get();
  20616. n = b.$length;
  20617. while (true) {
  20618. if (!((n + 4 >> 0) > b.$capacity)) { break; }
  20619. b = $append(b, 0);
  20620. }
  20621. w = utf8.EncodeRune((x = $subslice(b, n, (n + 4 >> 0)), $subslice(new sliceType$2(x.$array), x.$offset, x.$offset + x.$length)), r);
  20622. bp.$set($subslice(b, 0, (n + w >> 0)));
  20623. };
  20624. newPrinter = function() {
  20625. var _r, p, $s, $r;
  20626. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  20627. _r = ppFree.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  20628. p = $assertType(_r, ptrType$2);
  20629. p.panicking = false;
  20630. p.erroring = false;
  20631. p.fmt.init((p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))));
  20632. $s = -1; return p;
  20633. /* */ } return; } if ($f === undefined) { $f = { $blk: newPrinter }; } $f._r = _r; $f.p = p; $f.$s = $s; $f.$r = $r; return $f;
  20634. };
  20635. pp.ptr.prototype.free = function() {
  20636. var p;
  20637. p = this;
  20638. if (p.buf.$capacity > 65536) {
  20639. return;
  20640. }
  20641. p.buf = $subslice(p.buf, 0, 0);
  20642. p.arg = $ifaceNil;
  20643. p.value = new reflect.Value.ptr(ptrType.nil, 0, 0);
  20644. ppFree.Put(p);
  20645. };
  20646. pp.prototype.free = function() { return this.$val.free(); };
  20647. pp.ptr.prototype.Width = function() {
  20648. var _tmp, _tmp$1, ok, p, wid;
  20649. wid = 0;
  20650. ok = false;
  20651. p = this;
  20652. _tmp = p.fmt.wid;
  20653. _tmp$1 = p.fmt.fmtFlags.widPresent;
  20654. wid = _tmp;
  20655. ok = _tmp$1;
  20656. return [wid, ok];
  20657. };
  20658. pp.prototype.Width = function() { return this.$val.Width(); };
  20659. pp.ptr.prototype.Precision = function() {
  20660. var _tmp, _tmp$1, ok, p, prec;
  20661. prec = 0;
  20662. ok = false;
  20663. p = this;
  20664. _tmp = p.fmt.prec;
  20665. _tmp$1 = p.fmt.fmtFlags.precPresent;
  20666. prec = _tmp;
  20667. ok = _tmp$1;
  20668. return [prec, ok];
  20669. };
  20670. pp.prototype.Precision = function() { return this.$val.Precision(); };
  20671. pp.ptr.prototype.Flag = function(b) {
  20672. var _1, b, p;
  20673. p = this;
  20674. _1 = b;
  20675. if (_1 === (45)) {
  20676. return p.fmt.fmtFlags.minus;
  20677. } else if (_1 === (43)) {
  20678. return p.fmt.fmtFlags.plus || p.fmt.fmtFlags.plusV;
  20679. } else if (_1 === (35)) {
  20680. return p.fmt.fmtFlags.sharp || p.fmt.fmtFlags.sharpV;
  20681. } else if (_1 === (32)) {
  20682. return p.fmt.fmtFlags.space;
  20683. } else if (_1 === (48)) {
  20684. return p.fmt.fmtFlags.zero;
  20685. }
  20686. return false;
  20687. };
  20688. pp.prototype.Flag = function(b) { return this.$val.Flag(b); };
  20689. pp.ptr.prototype.Write = function(b) {
  20690. var _tmp, _tmp$1, b, err, p, ret;
  20691. ret = 0;
  20692. err = $ifaceNil;
  20693. p = this;
  20694. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).Write(b);
  20695. _tmp = b.$length;
  20696. _tmp$1 = $ifaceNil;
  20697. ret = _tmp;
  20698. err = _tmp$1;
  20699. return [ret, err];
  20700. };
  20701. pp.prototype.Write = function(b) { return this.$val.Write(b); };
  20702. pp.ptr.prototype.WriteString = function(s) {
  20703. var _tmp, _tmp$1, err, p, ret, s;
  20704. ret = 0;
  20705. err = $ifaceNil;
  20706. p = this;
  20707. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(s);
  20708. _tmp = s.length;
  20709. _tmp$1 = $ifaceNil;
  20710. ret = _tmp;
  20711. err = _tmp$1;
  20712. return [ret, err];
  20713. };
  20714. pp.prototype.WriteString = function(s) { return this.$val.WriteString(s); };
  20715. Sprintf = function(format, a) {
  20716. var _r, a, format, p, s, $s, $r;
  20717. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; format = $f.format; p = $f.p; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  20718. _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  20719. p = _r;
  20720. $r = p.doPrintf(format, a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  20721. s = ($bytesToString(p.buf));
  20722. p.free();
  20723. $s = -1; return s;
  20724. /* */ } return; } if ($f === undefined) { $f = { $blk: Sprintf }; } $f._r = _r; $f.a = a; $f.format = format; $f.p = p; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  20725. };
  20726. $pkg.Sprintf = Sprintf;
  20727. Errorf = function(format, a) {
  20728. var _r, _r$1, a, format, $s, $r;
  20729. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; a = $f.a; format = $f.format; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  20730. _r = Sprintf(format, a); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  20731. _r$1 = errors.New(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  20732. $s = -1; return _r$1;
  20733. /* */ } return; } if ($f === undefined) { $f = { $blk: Errorf }; } $f._r = _r; $f._r$1 = _r$1; $f.a = a; $f.format = format; $f.$s = $s; $f.$r = $r; return $f;
  20734. };
  20735. $pkg.Errorf = Errorf;
  20736. Sprint = function(a) {
  20737. var _r, a, p, s, $s, $r;
  20738. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; p = $f.p; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  20739. _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  20740. p = _r;
  20741. $r = p.doPrint(a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  20742. s = ($bytesToString(p.buf));
  20743. p.free();
  20744. $s = -1; return s;
  20745. /* */ } return; } if ($f === undefined) { $f = { $blk: Sprint }; } $f._r = _r; $f.a = a; $f.p = p; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  20746. };
  20747. $pkg.Sprint = Sprint;
  20748. Fprintln = function(w, a) {
  20749. var _r, _r$1, _tuple, a, err, n, p, w, x, $s, $r;
  20750. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; a = $f.a; err = $f.err; n = $f.n; p = $f.p; w = $f.w; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  20751. n = 0;
  20752. err = $ifaceNil;
  20753. _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  20754. p = _r;
  20755. $r = p.doPrintln(a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  20756. _r$1 = w.Write((x = p.buf, $subslice(new sliceType$2(x.$array), x.$offset, x.$offset + x.$length))); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  20757. _tuple = _r$1;
  20758. n = _tuple[0];
  20759. err = _tuple[1];
  20760. p.free();
  20761. $s = -1; return [n, err];
  20762. /* */ } return; } if ($f === undefined) { $f = { $blk: Fprintln }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.a = a; $f.err = err; $f.n = n; $f.p = p; $f.w = w; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  20763. };
  20764. $pkg.Fprintln = Fprintln;
  20765. Println = function(a) {
  20766. var _r, _tuple, a, err, n, $s, $r;
  20767. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; a = $f.a; err = $f.err; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  20768. n = 0;
  20769. err = $ifaceNil;
  20770. _r = Fprintln(os.Stdout, a); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  20771. _tuple = _r;
  20772. n = _tuple[0];
  20773. err = _tuple[1];
  20774. $s = -1; return [n, err];
  20775. /* */ } return; } if ($f === undefined) { $f = { $blk: Println }; } $f._r = _r; $f._tuple = _tuple; $f.a = a; $f.err = err; $f.n = n; $f.$s = $s; $f.$r = $r; return $f;
  20776. };
  20777. $pkg.Println = Println;
  20778. Sprintln = function(a) {
  20779. var _r, a, p, s, $s, $r;
  20780. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; p = $f.p; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  20781. _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  20782. p = _r;
  20783. $r = p.doPrintln(a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  20784. s = ($bytesToString(p.buf));
  20785. p.free();
  20786. $s = -1; return s;
  20787. /* */ } return; } if ($f === undefined) { $f = { $blk: Sprintln }; } $f._r = _r; $f.a = a; $f.p = p; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  20788. };
  20789. $pkg.Sprintln = Sprintln;
  20790. getField = function(v, i) {
  20791. var _r, _r$1, i, v, val, $s, $r;
  20792. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; i = $f.i; v = $f.v; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  20793. _r = $clone(v, reflect.Value).Field(i); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  20794. val = _r;
  20795. /* */ if (($clone(val, reflect.Value).Kind() === 20) && !$clone(val, reflect.Value).IsNil()) { $s = 2; continue; }
  20796. /* */ $s = 3; continue;
  20797. /* if (($clone(val, reflect.Value).Kind() === 20) && !$clone(val, reflect.Value).IsNil()) { */ case 2:
  20798. _r$1 = $clone(val, reflect.Value).Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  20799. val = _r$1;
  20800. /* } */ case 3:
  20801. $s = -1; return val;
  20802. /* */ } return; } if ($f === undefined) { $f = { $blk: getField }; } $f._r = _r; $f._r$1 = _r$1; $f.i = i; $f.v = v; $f.val = val; $f.$s = $s; $f.$r = $r; return $f;
  20803. };
  20804. tooLarge = function(x) {
  20805. var x;
  20806. return x > 1000000 || x < -1000000;
  20807. };
  20808. parsenum = function(s, start, end) {
  20809. var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, end, isnum, newi, num, s, start;
  20810. num = 0;
  20811. isnum = false;
  20812. newi = 0;
  20813. if (start >= end) {
  20814. _tmp = 0;
  20815. _tmp$1 = false;
  20816. _tmp$2 = end;
  20817. num = _tmp;
  20818. isnum = _tmp$1;
  20819. newi = _tmp$2;
  20820. return [num, isnum, newi];
  20821. }
  20822. newi = start;
  20823. while (true) {
  20824. if (!(newi < end && 48 <= s.charCodeAt(newi) && s.charCodeAt(newi) <= 57)) { break; }
  20825. if (tooLarge(num)) {
  20826. _tmp$3 = 0;
  20827. _tmp$4 = false;
  20828. _tmp$5 = end;
  20829. num = _tmp$3;
  20830. isnum = _tmp$4;
  20831. newi = _tmp$5;
  20832. return [num, isnum, newi];
  20833. }
  20834. num = ($imul(num, 10)) + (((s.charCodeAt(newi) - 48 << 24 >>> 24) >> 0)) >> 0;
  20835. isnum = true;
  20836. newi = newi + (1) >> 0;
  20837. }
  20838. return [num, isnum, newi];
  20839. };
  20840. pp.ptr.prototype.unknownType = function(v) {
  20841. var _r, p, v, $s, $r;
  20842. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; p = $f.p; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  20843. p = this;
  20844. if (!$clone(v, reflect.Value).IsValid()) {
  20845. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("<nil>");
  20846. $s = -1; return;
  20847. }
  20848. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(63);
  20849. _r = $clone(v, reflect.Value).Type().String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  20850. $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  20851. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(63);
  20852. $s = -1; return;
  20853. /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.unknownType }; } $f._r = _r; $f.p = p; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  20854. };
  20855. pp.prototype.unknownType = function(v) { return this.$val.unknownType(v); };
  20856. pp.ptr.prototype.badVerb = function(verb) {
  20857. var _r, _r$1, p, verb, $s, $r;
  20858. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; p = $f.p; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  20859. p = this;
  20860. p.erroring = true;
  20861. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!");
  20862. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteRune(verb);
  20863. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(40);
  20864. /* */ if (!($interfaceIsEqual(p.arg, $ifaceNil))) { $s = 2; continue; }
  20865. /* */ if ($clone(p.value, reflect.Value).IsValid()) { $s = 3; continue; }
  20866. /* */ $s = 4; continue;
  20867. /* if (!($interfaceIsEqual(p.arg, $ifaceNil))) { */ case 2:
  20868. _r = reflect.TypeOf(p.arg).String(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  20869. $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  20870. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(61);
  20871. $r = p.printArg(p.arg, 118); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  20872. $s = 5; continue;
  20873. /* } else if ($clone(p.value, reflect.Value).IsValid()) { */ case 3:
  20874. _r$1 = $clone(p.value, reflect.Value).Type().String(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  20875. $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$1); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  20876. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(61);
  20877. $r = p.printValue($clone(p.value, reflect.Value), 118, 0); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  20878. $s = 5; continue;
  20879. /* } else { */ case 4:
  20880. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("<nil>");
  20881. /* } */ case 5:
  20882. case 1:
  20883. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(41);
  20884. p.erroring = false;
  20885. $s = -1; return;
  20886. /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.badVerb }; } $f._r = _r; $f._r$1 = _r$1; $f.p = p; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f;
  20887. };
  20888. pp.prototype.badVerb = function(verb) { return this.$val.badVerb(verb); };
  20889. pp.ptr.prototype.fmtBool = function(v, verb) {
  20890. var _1, p, v, verb, $s, $r;
  20891. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; p = $f.p; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  20892. p = this;
  20893. _1 = verb;
  20894. /* */ if ((_1 === (116)) || (_1 === (118))) { $s = 2; continue; }
  20895. /* */ $s = 3; continue;
  20896. /* if ((_1 === (116)) || (_1 === (118))) { */ case 2:
  20897. p.fmt.fmtBoolean(v);
  20898. $s = 4; continue;
  20899. /* } else { */ case 3:
  20900. $r = p.badVerb(verb); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  20901. /* } */ case 4:
  20902. case 1:
  20903. $s = -1; return;
  20904. /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtBool }; } $f._1 = _1; $f.p = p; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f;
  20905. };
  20906. pp.prototype.fmtBool = function(v, verb) { return this.$val.fmtBool(v, verb); };
  20907. pp.ptr.prototype.fmt0x64 = function(v, leading0x) {
  20908. var leading0x, p, sharp, v;
  20909. p = this;
  20910. sharp = p.fmt.fmtFlags.sharp;
  20911. p.fmt.fmtFlags.sharp = leading0x;
  20912. p.fmt.fmtInteger(v, 16, false, "0123456789abcdefx");
  20913. p.fmt.fmtFlags.sharp = sharp;
  20914. };
  20915. pp.prototype.fmt0x64 = function(v, leading0x) { return this.$val.fmt0x64(v, leading0x); };
  20916. pp.ptr.prototype.fmtInteger = function(v, isSigned, verb) {
  20917. var _1, isSigned, p, v, verb, $s, $r;
  20918. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; isSigned = $f.isSigned; p = $f.p; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  20919. p = this;
  20920. _1 = verb;
  20921. /* */ if (_1 === (118)) { $s = 2; continue; }
  20922. /* */ if (_1 === (100)) { $s = 3; continue; }
  20923. /* */ if (_1 === (98)) { $s = 4; continue; }
  20924. /* */ if (_1 === (111)) { $s = 5; continue; }
  20925. /* */ if (_1 === (120)) { $s = 6; continue; }
  20926. /* */ if (_1 === (88)) { $s = 7; continue; }
  20927. /* */ if (_1 === (99)) { $s = 8; continue; }
  20928. /* */ if (_1 === (113)) { $s = 9; continue; }
  20929. /* */ if (_1 === (85)) { $s = 10; continue; }
  20930. /* */ $s = 11; continue;
  20931. /* if (_1 === (118)) { */ case 2:
  20932. if (p.fmt.fmtFlags.sharpV && !isSigned) {
  20933. p.fmt0x64(v, true);
  20934. } else {
  20935. p.fmt.fmtInteger(v, 10, isSigned, "0123456789abcdefx");
  20936. }
  20937. $s = 12; continue;
  20938. /* } else if (_1 === (100)) { */ case 3:
  20939. p.fmt.fmtInteger(v, 10, isSigned, "0123456789abcdefx");
  20940. $s = 12; continue;
  20941. /* } else if (_1 === (98)) { */ case 4:
  20942. p.fmt.fmtInteger(v, 2, isSigned, "0123456789abcdefx");
  20943. $s = 12; continue;
  20944. /* } else if (_1 === (111)) { */ case 5:
  20945. p.fmt.fmtInteger(v, 8, isSigned, "0123456789abcdefx");
  20946. $s = 12; continue;
  20947. /* } else if (_1 === (120)) { */ case 6:
  20948. p.fmt.fmtInteger(v, 16, isSigned, "0123456789abcdefx");
  20949. $s = 12; continue;
  20950. /* } else if (_1 === (88)) { */ case 7:
  20951. p.fmt.fmtInteger(v, 16, isSigned, "0123456789ABCDEFX");
  20952. $s = 12; continue;
  20953. /* } else if (_1 === (99)) { */ case 8:
  20954. p.fmt.fmtC(v);
  20955. $s = 12; continue;
  20956. /* } else if (_1 === (113)) { */ case 9:
  20957. /* */ if ((v.$high < 0 || (v.$high === 0 && v.$low <= 1114111))) { $s = 13; continue; }
  20958. /* */ $s = 14; continue;
  20959. /* if ((v.$high < 0 || (v.$high === 0 && v.$low <= 1114111))) { */ case 13:
  20960. p.fmt.fmtQc(v);
  20961. $s = 15; continue;
  20962. /* } else { */ case 14:
  20963. $r = p.badVerb(verb); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  20964. /* } */ case 15:
  20965. $s = 12; continue;
  20966. /* } else if (_1 === (85)) { */ case 10:
  20967. p.fmt.fmtUnicode(v);
  20968. $s = 12; continue;
  20969. /* } else { */ case 11:
  20970. $r = p.badVerb(verb); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  20971. /* } */ case 12:
  20972. case 1:
  20973. $s = -1; return;
  20974. /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtInteger }; } $f._1 = _1; $f.isSigned = isSigned; $f.p = p; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f;
  20975. };
  20976. pp.prototype.fmtInteger = function(v, isSigned, verb) { return this.$val.fmtInteger(v, isSigned, verb); };
  20977. pp.ptr.prototype.fmtFloat = function(v, size, verb) {
  20978. var _1, p, size, v, verb, $s, $r;
  20979. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; p = $f.p; size = $f.size; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  20980. p = this;
  20981. _1 = verb;
  20982. /* */ if (_1 === (118)) { $s = 2; continue; }
  20983. /* */ if ((_1 === (98)) || (_1 === (103)) || (_1 === (71))) { $s = 3; continue; }
  20984. /* */ if ((_1 === (102)) || (_1 === (101)) || (_1 === (69))) { $s = 4; continue; }
  20985. /* */ if (_1 === (70)) { $s = 5; continue; }
  20986. /* */ $s = 6; continue;
  20987. /* if (_1 === (118)) { */ case 2:
  20988. p.fmt.fmtFloat(v, size, 103, -1);
  20989. $s = 7; continue;
  20990. /* } else if ((_1 === (98)) || (_1 === (103)) || (_1 === (71))) { */ case 3:
  20991. p.fmt.fmtFloat(v, size, verb, -1);
  20992. $s = 7; continue;
  20993. /* } else if ((_1 === (102)) || (_1 === (101)) || (_1 === (69))) { */ case 4:
  20994. p.fmt.fmtFloat(v, size, verb, 6);
  20995. $s = 7; continue;
  20996. /* } else if (_1 === (70)) { */ case 5:
  20997. p.fmt.fmtFloat(v, size, 102, 6);
  20998. $s = 7; continue;
  20999. /* } else { */ case 6:
  21000. $r = p.badVerb(verb); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21001. /* } */ case 7:
  21002. case 1:
  21003. $s = -1; return;
  21004. /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtFloat }; } $f._1 = _1; $f.p = p; $f.size = size; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f;
  21005. };
  21006. pp.prototype.fmtFloat = function(v, size, verb) { return this.$val.fmtFloat(v, size, verb); };
  21007. pp.ptr.prototype.fmtComplex = function(v, size, verb) {
  21008. var _1, _q, _q$1, oldPlus, p, size, v, verb, $s, $r;
  21009. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _q = $f._q; _q$1 = $f._q$1; oldPlus = $f.oldPlus; p = $f.p; size = $f.size; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  21010. p = this;
  21011. _1 = verb;
  21012. /* */ if ((_1 === (118)) || (_1 === (98)) || (_1 === (103)) || (_1 === (71)) || (_1 === (102)) || (_1 === (70)) || (_1 === (101)) || (_1 === (69))) { $s = 2; continue; }
  21013. /* */ $s = 3; continue;
  21014. /* if ((_1 === (118)) || (_1 === (98)) || (_1 === (103)) || (_1 === (71)) || (_1 === (102)) || (_1 === (70)) || (_1 === (101)) || (_1 === (69))) { */ case 2:
  21015. oldPlus = p.fmt.fmtFlags.plus;
  21016. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(40);
  21017. $r = p.fmtFloat(v.$real, (_q = size / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), verb); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21018. p.fmt.fmtFlags.plus = true;
  21019. $r = p.fmtFloat(v.$imag, (_q$1 = size / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), verb); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21020. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("i)");
  21021. p.fmt.fmtFlags.plus = oldPlus;
  21022. $s = 4; continue;
  21023. /* } else { */ case 3:
  21024. $r = p.badVerb(verb); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21025. /* } */ case 4:
  21026. case 1:
  21027. $s = -1; return;
  21028. /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtComplex }; } $f._1 = _1; $f._q = _q; $f._q$1 = _q$1; $f.oldPlus = oldPlus; $f.p = p; $f.size = size; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f;
  21029. };
  21030. pp.prototype.fmtComplex = function(v, size, verb) { return this.$val.fmtComplex(v, size, verb); };
  21031. pp.ptr.prototype.fmtString = function(v, verb) {
  21032. var _1, p, v, verb, $s, $r;
  21033. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; p = $f.p; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  21034. p = this;
  21035. _1 = verb;
  21036. /* */ if (_1 === (118)) { $s = 2; continue; }
  21037. /* */ if (_1 === (115)) { $s = 3; continue; }
  21038. /* */ if (_1 === (120)) { $s = 4; continue; }
  21039. /* */ if (_1 === (88)) { $s = 5; continue; }
  21040. /* */ if (_1 === (113)) { $s = 6; continue; }
  21041. /* */ $s = 7; continue;
  21042. /* if (_1 === (118)) { */ case 2:
  21043. if (p.fmt.fmtFlags.sharpV) {
  21044. p.fmt.fmtQ(v);
  21045. } else {
  21046. p.fmt.fmtS(v);
  21047. }
  21048. $s = 8; continue;
  21049. /* } else if (_1 === (115)) { */ case 3:
  21050. p.fmt.fmtS(v);
  21051. $s = 8; continue;
  21052. /* } else if (_1 === (120)) { */ case 4:
  21053. p.fmt.fmtSx(v, "0123456789abcdefx");
  21054. $s = 8; continue;
  21055. /* } else if (_1 === (88)) { */ case 5:
  21056. p.fmt.fmtSx(v, "0123456789ABCDEFX");
  21057. $s = 8; continue;
  21058. /* } else if (_1 === (113)) { */ case 6:
  21059. p.fmt.fmtQ(v);
  21060. $s = 8; continue;
  21061. /* } else { */ case 7:
  21062. $r = p.badVerb(verb); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21063. /* } */ case 8:
  21064. case 1:
  21065. $s = -1; return;
  21066. /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtString }; } $f._1 = _1; $f.p = p; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f;
  21067. };
  21068. pp.prototype.fmtString = function(v, verb) { return this.$val.fmtString(v, verb); };
  21069. pp.ptr.prototype.fmtBytes = function(v, verb, typeString) {
  21070. var _1, _i, _i$1, _r, _ref, _ref$1, c, c$1, i, i$1, p, typeString, v, verb, $s, $r;
  21071. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _ref = $f._ref; _ref$1 = $f._ref$1; c = $f.c; c$1 = $f.c$1; i = $f.i; i$1 = $f.i$1; p = $f.p; typeString = $f.typeString; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  21072. p = this;
  21073. _1 = verb;
  21074. /* */ if ((_1 === (118)) || (_1 === (100))) { $s = 2; continue; }
  21075. /* */ if (_1 === (115)) { $s = 3; continue; }
  21076. /* */ if (_1 === (120)) { $s = 4; continue; }
  21077. /* */ if (_1 === (88)) { $s = 5; continue; }
  21078. /* */ if (_1 === (113)) { $s = 6; continue; }
  21079. /* */ $s = 7; continue;
  21080. /* if ((_1 === (118)) || (_1 === (100))) { */ case 2:
  21081. if (p.fmt.fmtFlags.sharpV) {
  21082. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(typeString);
  21083. if (v === sliceType$2.nil) {
  21084. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(nil)");
  21085. $s = -1; return;
  21086. }
  21087. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(123);
  21088. _ref = v;
  21089. _i = 0;
  21090. while (true) {
  21091. if (!(_i < _ref.$length)) { break; }
  21092. i = _i;
  21093. c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  21094. if (i > 0) {
  21095. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", ");
  21096. }
  21097. p.fmt0x64((new $Uint64(0, c)), true);
  21098. _i++;
  21099. }
  21100. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(125);
  21101. } else {
  21102. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(91);
  21103. _ref$1 = v;
  21104. _i$1 = 0;
  21105. while (true) {
  21106. if (!(_i$1 < _ref$1.$length)) { break; }
  21107. i$1 = _i$1;
  21108. c$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]);
  21109. if (i$1 > 0) {
  21110. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32);
  21111. }
  21112. p.fmt.fmtInteger((new $Uint64(0, c$1)), 10, false, "0123456789abcdefx");
  21113. _i$1++;
  21114. }
  21115. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(93);
  21116. }
  21117. $s = 8; continue;
  21118. /* } else if (_1 === (115)) { */ case 3:
  21119. p.fmt.fmtBs(v);
  21120. $s = 8; continue;
  21121. /* } else if (_1 === (120)) { */ case 4:
  21122. p.fmt.fmtBx(v, "0123456789abcdefx");
  21123. $s = 8; continue;
  21124. /* } else if (_1 === (88)) { */ case 5:
  21125. p.fmt.fmtBx(v, "0123456789ABCDEFX");
  21126. $s = 8; continue;
  21127. /* } else if (_1 === (113)) { */ case 6:
  21128. p.fmt.fmtQ(($bytesToString(v)));
  21129. $s = 8; continue;
  21130. /* } else { */ case 7:
  21131. _r = reflect.ValueOf(v); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  21132. $r = p.printValue($clone(_r, reflect.Value), verb, 0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21133. /* } */ case 8:
  21134. case 1:
  21135. $s = -1; return;
  21136. /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtBytes }; } $f._1 = _1; $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._ref = _ref; $f._ref$1 = _ref$1; $f.c = c; $f.c$1 = c$1; $f.i = i; $f.i$1 = i$1; $f.p = p; $f.typeString = typeString; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f;
  21137. };
  21138. pp.prototype.fmtBytes = function(v, verb, typeString) { return this.$val.fmtBytes(v, verb, typeString); };
  21139. pp.ptr.prototype.fmtPointer = function(value, verb) {
  21140. var _1, _2, _r, p, u, value, verb, $s, $r;
  21141. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _r = $f._r; p = $f.p; u = $f.u; value = $f.value; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  21142. p = this;
  21143. u = 0;
  21144. _1 = $clone(value, reflect.Value).Kind();
  21145. /* */ if ((_1 === (18)) || (_1 === (19)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23)) || (_1 === (26))) { $s = 2; continue; }
  21146. /* */ $s = 3; continue;
  21147. /* if ((_1 === (18)) || (_1 === (19)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23)) || (_1 === (26))) { */ case 2:
  21148. u = $clone(value, reflect.Value).Pointer();
  21149. $s = 4; continue;
  21150. /* } else { */ case 3:
  21151. $r = p.badVerb(verb); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21152. $s = -1; return;
  21153. /* } */ case 4:
  21154. case 1:
  21155. _2 = verb;
  21156. /* */ if (_2 === (118)) { $s = 7; continue; }
  21157. /* */ if (_2 === (112)) { $s = 8; continue; }
  21158. /* */ if ((_2 === (98)) || (_2 === (111)) || (_2 === (100)) || (_2 === (120)) || (_2 === (88))) { $s = 9; continue; }
  21159. /* */ $s = 10; continue;
  21160. /* if (_2 === (118)) { */ case 7:
  21161. /* */ if (p.fmt.fmtFlags.sharpV) { $s = 12; continue; }
  21162. /* */ $s = 13; continue;
  21163. /* if (p.fmt.fmtFlags.sharpV) { */ case 12:
  21164. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(40);
  21165. _r = $clone(value, reflect.Value).Type().String(); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  21166. $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21167. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(")(");
  21168. if (u === 0) {
  21169. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("nil");
  21170. } else {
  21171. p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), true);
  21172. }
  21173. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(41);
  21174. $s = 14; continue;
  21175. /* } else { */ case 13:
  21176. if (u === 0) {
  21177. p.fmt.padString("<nil>");
  21178. } else {
  21179. p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), !p.fmt.fmtFlags.sharp);
  21180. }
  21181. /* } */ case 14:
  21182. $s = 11; continue;
  21183. /* } else if (_2 === (112)) { */ case 8:
  21184. p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), !p.fmt.fmtFlags.sharp);
  21185. $s = 11; continue;
  21186. /* } else if ((_2 === (98)) || (_2 === (111)) || (_2 === (100)) || (_2 === (120)) || (_2 === (88))) { */ case 9:
  21187. $r = p.fmtInteger((new $Uint64(0, u.constructor === Number ? u : 1)), false, verb); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21188. $s = 11; continue;
  21189. /* } else { */ case 10:
  21190. $r = p.badVerb(verb); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21191. /* } */ case 11:
  21192. case 6:
  21193. $s = -1; return;
  21194. /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtPointer }; } $f._1 = _1; $f._2 = _2; $f._r = _r; $f.p = p; $f.u = u; $f.value = value; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f;
  21195. };
  21196. pp.prototype.fmtPointer = function(value, verb) { return this.$val.fmtPointer(value, verb); };
  21197. pp.ptr.prototype.catchPanic = function(arg, verb, method) {
  21198. var _r, arg, err, method, oldFlags, p, v, verb, $s, $r;
  21199. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; arg = $f.arg; err = $f.err; method = $f.method; oldFlags = $f.oldFlags; p = $f.p; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  21200. p = this;
  21201. err = $recover();
  21202. /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; }
  21203. /* */ $s = 2; continue;
  21204. /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1:
  21205. _r = reflect.ValueOf(arg); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  21206. v = _r;
  21207. if (($clone(v, reflect.Value).Kind() === 22) && $clone(v, reflect.Value).IsNil()) {
  21208. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("<nil>");
  21209. $s = -1; return;
  21210. }
  21211. if (p.panicking) {
  21212. $panic(err);
  21213. }
  21214. oldFlags = $clone(p.fmt.fmtFlags, fmtFlags);
  21215. p.fmt.clearflags();
  21216. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!");
  21217. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteRune(verb);
  21218. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(PANIC=");
  21219. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(method);
  21220. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(" method: ");
  21221. p.panicking = true;
  21222. $r = p.printArg(err, 118); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21223. p.panicking = false;
  21224. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(41);
  21225. fmtFlags.copy(p.fmt.fmtFlags, oldFlags);
  21226. /* } */ case 2:
  21227. $s = -1; return;
  21228. /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.catchPanic }; } $f._r = _r; $f.arg = arg; $f.err = err; $f.method = method; $f.oldFlags = oldFlags; $f.p = p; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f;
  21229. };
  21230. pp.prototype.catchPanic = function(arg, verb, method) { return this.$val.catchPanic(arg, verb, method); };
  21231. pp.ptr.prototype.handleMethods = function(verb) {
  21232. var _1, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, formatter, handled, ok, ok$1, p, stringer, v, v$1, verb, $s, $deferred, $r;
  21233. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _ref = $f._ref; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; formatter = $f.formatter; handled = $f.handled; ok = $f.ok; ok$1 = $f.ok$1; p = $f.p; stringer = $f.stringer; v = $f.v; v$1 = $f.v$1; verb = $f.verb; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  21234. handled = false;
  21235. p = this;
  21236. if (p.erroring) {
  21237. $s = -1; return handled;
  21238. }
  21239. _tuple = $assertType(p.arg, Formatter, true);
  21240. formatter = _tuple[0];
  21241. ok = _tuple[1];
  21242. /* */ if (ok) { $s = 1; continue; }
  21243. /* */ $s = 2; continue;
  21244. /* if (ok) { */ case 1:
  21245. handled = true;
  21246. $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb, "Format"]]);
  21247. $r = formatter.Format(p, verb); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21248. $s = -1; return handled;
  21249. /* } */ case 2:
  21250. /* */ if (p.fmt.fmtFlags.sharpV) { $s = 4; continue; }
  21251. /* */ $s = 5; continue;
  21252. /* if (p.fmt.fmtFlags.sharpV) { */ case 4:
  21253. _tuple$1 = $assertType(p.arg, GoStringer, true);
  21254. stringer = _tuple$1[0];
  21255. ok$1 = _tuple$1[1];
  21256. /* */ if (ok$1) { $s = 7; continue; }
  21257. /* */ $s = 8; continue;
  21258. /* if (ok$1) { */ case 7:
  21259. handled = true;
  21260. $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb, "GoString"]]);
  21261. _r = stringer.GoString(); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  21262. $r = p.fmt.fmtS(_r); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21263. $s = -1; return handled;
  21264. /* } */ case 8:
  21265. $s = 6; continue;
  21266. /* } else { */ case 5:
  21267. _1 = verb;
  21268. /* */ if ((_1 === (118)) || (_1 === (115)) || (_1 === (120)) || (_1 === (88)) || (_1 === (113))) { $s = 12; continue; }
  21269. /* */ $s = 13; continue;
  21270. /* if ((_1 === (118)) || (_1 === (115)) || (_1 === (120)) || (_1 === (88)) || (_1 === (113))) { */ case 12:
  21271. _ref = p.arg;
  21272. /* */ if ($assertType(_ref, $error, true)[1]) { $s = 14; continue; }
  21273. /* */ if ($assertType(_ref, Stringer, true)[1]) { $s = 15; continue; }
  21274. /* */ $s = 16; continue;
  21275. /* if ($assertType(_ref, $error, true)[1]) { */ case 14:
  21276. v = _ref;
  21277. handled = true;
  21278. $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb, "Error"]]);
  21279. _r$1 = v.Error(); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  21280. $r = p.fmtString(_r$1, verb); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21281. $s = -1; return handled;
  21282. /* } else if ($assertType(_ref, Stringer, true)[1]) { */ case 15:
  21283. v$1 = _ref;
  21284. handled = true;
  21285. $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb, "String"]]);
  21286. _r$2 = v$1.String(); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  21287. $r = p.fmtString(_r$2, verb); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21288. $s = -1; return handled;
  21289. /* } */ case 16:
  21290. /* } */ case 13:
  21291. case 11:
  21292. /* } */ case 6:
  21293. handled = false;
  21294. $s = -1; return handled;
  21295. /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return handled; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: pp.ptr.prototype.handleMethods }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._ref = _ref; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.formatter = formatter; $f.handled = handled; $f.ok = ok; $f.ok$1 = ok$1; $f.p = p; $f.stringer = stringer; $f.v = v; $f.v$1 = v$1; $f.verb = verb; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  21296. };
  21297. pp.prototype.handleMethods = function(verb) { return this.$val.handleMethods(verb); };
  21298. pp.ptr.prototype.printArg = function(arg, verb) {
  21299. var _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, arg, f, f$1, f$10, f$11, f$12, f$13, f$14, f$15, f$16, f$17, f$18, f$19, f$2, f$3, f$4, f$5, f$6, f$7, f$8, f$9, p, verb, $s, $r;
  21300. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _ref = $f._ref; arg = $f.arg; f = $f.f; f$1 = $f.f$1; f$10 = $f.f$10; f$11 = $f.f$11; f$12 = $f.f$12; f$13 = $f.f$13; f$14 = $f.f$14; f$15 = $f.f$15; f$16 = $f.f$16; f$17 = $f.f$17; f$18 = $f.f$18; f$19 = $f.f$19; f$2 = $f.f$2; f$3 = $f.f$3; f$4 = $f.f$4; f$5 = $f.f$5; f$6 = $f.f$6; f$7 = $f.f$7; f$8 = $f.f$8; f$9 = $f.f$9; p = $f.p; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  21301. p = this;
  21302. p.arg = arg;
  21303. p.value = new reflect.Value.ptr(ptrType.nil, 0, 0);
  21304. /* */ if ($interfaceIsEqual(arg, $ifaceNil)) { $s = 1; continue; }
  21305. /* */ $s = 2; continue;
  21306. /* if ($interfaceIsEqual(arg, $ifaceNil)) { */ case 1:
  21307. _1 = verb;
  21308. /* */ if ((_1 === (84)) || (_1 === (118))) { $s = 4; continue; }
  21309. /* */ $s = 5; continue;
  21310. /* if ((_1 === (84)) || (_1 === (118))) { */ case 4:
  21311. p.fmt.padString("<nil>");
  21312. $s = 6; continue;
  21313. /* } else { */ case 5:
  21314. $r = p.badVerb(verb); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21315. /* } */ case 6:
  21316. case 3:
  21317. $s = -1; return;
  21318. /* } */ case 2:
  21319. _2 = verb;
  21320. /* */ if (_2 === (84)) { $s = 9; continue; }
  21321. /* */ if (_2 === (112)) { $s = 10; continue; }
  21322. /* */ $s = 11; continue;
  21323. /* if (_2 === (84)) { */ case 9:
  21324. _r = reflect.TypeOf(arg).String(); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  21325. $r = p.fmt.fmtS(_r); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21326. $s = -1; return;
  21327. /* } else if (_2 === (112)) { */ case 10:
  21328. _r$1 = reflect.ValueOf(arg); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  21329. $r = p.fmtPointer($clone(_r$1, reflect.Value), 112); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21330. $s = -1; return;
  21331. /* } */ case 11:
  21332. case 8:
  21333. _ref = arg;
  21334. /* */ if ($assertType(_ref, $Bool, true)[1]) { $s = 16; continue; }
  21335. /* */ if ($assertType(_ref, $Float32, true)[1]) { $s = 17; continue; }
  21336. /* */ if ($assertType(_ref, $Float64, true)[1]) { $s = 18; continue; }
  21337. /* */ if ($assertType(_ref, $Complex64, true)[1]) { $s = 19; continue; }
  21338. /* */ if ($assertType(_ref, $Complex128, true)[1]) { $s = 20; continue; }
  21339. /* */ if ($assertType(_ref, $Int, true)[1]) { $s = 21; continue; }
  21340. /* */ if ($assertType(_ref, $Int8, true)[1]) { $s = 22; continue; }
  21341. /* */ if ($assertType(_ref, $Int16, true)[1]) { $s = 23; continue; }
  21342. /* */ if ($assertType(_ref, $Int32, true)[1]) { $s = 24; continue; }
  21343. /* */ if ($assertType(_ref, $Int64, true)[1]) { $s = 25; continue; }
  21344. /* */ if ($assertType(_ref, $Uint, true)[1]) { $s = 26; continue; }
  21345. /* */ if ($assertType(_ref, $Uint8, true)[1]) { $s = 27; continue; }
  21346. /* */ if ($assertType(_ref, $Uint16, true)[1]) { $s = 28; continue; }
  21347. /* */ if ($assertType(_ref, $Uint32, true)[1]) { $s = 29; continue; }
  21348. /* */ if ($assertType(_ref, $Uint64, true)[1]) { $s = 30; continue; }
  21349. /* */ if ($assertType(_ref, $Uintptr, true)[1]) { $s = 31; continue; }
  21350. /* */ if ($assertType(_ref, $String, true)[1]) { $s = 32; continue; }
  21351. /* */ if ($assertType(_ref, sliceType$2, true)[1]) { $s = 33; continue; }
  21352. /* */ if ($assertType(_ref, reflect.Value, true)[1]) { $s = 34; continue; }
  21353. /* */ $s = 35; continue;
  21354. /* if ($assertType(_ref, $Bool, true)[1]) { */ case 16:
  21355. f = _ref.$val;
  21356. $r = p.fmtBool(f, verb); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21357. $s = 36; continue;
  21358. /* } else if ($assertType(_ref, $Float32, true)[1]) { */ case 17:
  21359. f$1 = _ref.$val;
  21360. $r = p.fmtFloat((f$1), 32, verb); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21361. $s = 36; continue;
  21362. /* } else if ($assertType(_ref, $Float64, true)[1]) { */ case 18:
  21363. f$2 = _ref.$val;
  21364. $r = p.fmtFloat(f$2, 64, verb); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21365. $s = 36; continue;
  21366. /* } else if ($assertType(_ref, $Complex64, true)[1]) { */ case 19:
  21367. f$3 = _ref.$val;
  21368. $r = p.fmtComplex((new $Complex128(f$3.$real, f$3.$imag)), 64, verb); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21369. $s = 36; continue;
  21370. /* } else if ($assertType(_ref, $Complex128, true)[1]) { */ case 20:
  21371. f$4 = _ref.$val;
  21372. $r = p.fmtComplex(f$4, 128, verb); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21373. $s = 36; continue;
  21374. /* } else if ($assertType(_ref, $Int, true)[1]) { */ case 21:
  21375. f$5 = _ref.$val;
  21376. $r = p.fmtInteger((new $Uint64(0, f$5)), true, verb); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21377. $s = 36; continue;
  21378. /* } else if ($assertType(_ref, $Int8, true)[1]) { */ case 22:
  21379. f$6 = _ref.$val;
  21380. $r = p.fmtInteger((new $Uint64(0, f$6)), true, verb); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21381. $s = 36; continue;
  21382. /* } else if ($assertType(_ref, $Int16, true)[1]) { */ case 23:
  21383. f$7 = _ref.$val;
  21384. $r = p.fmtInteger((new $Uint64(0, f$7)), true, verb); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21385. $s = 36; continue;
  21386. /* } else if ($assertType(_ref, $Int32, true)[1]) { */ case 24:
  21387. f$8 = _ref.$val;
  21388. $r = p.fmtInteger((new $Uint64(0, f$8)), true, verb); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21389. $s = 36; continue;
  21390. /* } else if ($assertType(_ref, $Int64, true)[1]) { */ case 25:
  21391. f$9 = _ref.$val;
  21392. $r = p.fmtInteger((new $Uint64(f$9.$high, f$9.$low)), true, verb); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21393. $s = 36; continue;
  21394. /* } else if ($assertType(_ref, $Uint, true)[1]) { */ case 26:
  21395. f$10 = _ref.$val;
  21396. $r = p.fmtInteger((new $Uint64(0, f$10)), false, verb); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21397. $s = 36; continue;
  21398. /* } else if ($assertType(_ref, $Uint8, true)[1]) { */ case 27:
  21399. f$11 = _ref.$val;
  21400. $r = p.fmtInteger((new $Uint64(0, f$11)), false, verb); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21401. $s = 36; continue;
  21402. /* } else if ($assertType(_ref, $Uint16, true)[1]) { */ case 28:
  21403. f$12 = _ref.$val;
  21404. $r = p.fmtInteger((new $Uint64(0, f$12)), false, verb); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21405. $s = 36; continue;
  21406. /* } else if ($assertType(_ref, $Uint32, true)[1]) { */ case 29:
  21407. f$13 = _ref.$val;
  21408. $r = p.fmtInteger((new $Uint64(0, f$13)), false, verb); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21409. $s = 36; continue;
  21410. /* } else if ($assertType(_ref, $Uint64, true)[1]) { */ case 30:
  21411. f$14 = _ref.$val;
  21412. $r = p.fmtInteger(f$14, false, verb); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21413. $s = 36; continue;
  21414. /* } else if ($assertType(_ref, $Uintptr, true)[1]) { */ case 31:
  21415. f$15 = _ref.$val;
  21416. $r = p.fmtInteger((new $Uint64(0, f$15.constructor === Number ? f$15 : 1)), false, verb); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21417. $s = 36; continue;
  21418. /* } else if ($assertType(_ref, $String, true)[1]) { */ case 32:
  21419. f$16 = _ref.$val;
  21420. $r = p.fmtString(f$16, verb); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21421. $s = 36; continue;
  21422. /* } else if ($assertType(_ref, sliceType$2, true)[1]) { */ case 33:
  21423. f$17 = _ref.$val;
  21424. $r = p.fmtBytes(f$17, verb, "[]byte"); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21425. $s = 36; continue;
  21426. /* } else if ($assertType(_ref, reflect.Value, true)[1]) { */ case 34:
  21427. f$18 = _ref.$val;
  21428. /* */ if ($clone(f$18, reflect.Value).IsValid() && $clone(f$18, reflect.Value).CanInterface()) { $s = 55; continue; }
  21429. /* */ $s = 56; continue;
  21430. /* if ($clone(f$18, reflect.Value).IsValid() && $clone(f$18, reflect.Value).CanInterface()) { */ case 55:
  21431. _r$2 = $clone(f$18, reflect.Value).Interface(); /* */ $s = 57; case 57: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  21432. p.arg = _r$2;
  21433. _r$3 = p.handleMethods(verb); /* */ $s = 60; case 60: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  21434. /* */ if (_r$3) { $s = 58; continue; }
  21435. /* */ $s = 59; continue;
  21436. /* if (_r$3) { */ case 58:
  21437. $s = -1; return;
  21438. /* } */ case 59:
  21439. /* } */ case 56:
  21440. $r = p.printValue($clone(f$18, reflect.Value), verb, 0); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21441. $s = 36; continue;
  21442. /* } else { */ case 35:
  21443. f$19 = _ref;
  21444. _r$4 = p.handleMethods(verb); /* */ $s = 64; case 64: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  21445. /* */ if (!_r$4) { $s = 62; continue; }
  21446. /* */ $s = 63; continue;
  21447. /* if (!_r$4) { */ case 62:
  21448. _r$5 = reflect.ValueOf(f$19); /* */ $s = 65; case 65: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  21449. $r = p.printValue($clone(_r$5, reflect.Value), verb, 0); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21450. /* } */ case 63:
  21451. /* } */ case 36:
  21452. $s = -1; return;
  21453. /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.printArg }; } $f._1 = _1; $f._2 = _2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._ref = _ref; $f.arg = arg; $f.f = f; $f.f$1 = f$1; $f.f$10 = f$10; $f.f$11 = f$11; $f.f$12 = f$12; $f.f$13 = f$13; $f.f$14 = f$14; $f.f$15 = f$15; $f.f$16 = f$16; $f.f$17 = f$17; $f.f$18 = f$18; $f.f$19 = f$19; $f.f$2 = f$2; $f.f$3 = f$3; $f.f$4 = f$4; $f.f$5 = f$5; $f.f$6 = f$6; $f.f$7 = f$7; $f.f$8 = f$8; $f.f$9 = f$9; $f.p = p; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f;
  21454. };
  21455. pp.prototype.printArg = function(arg, verb) { return this.$val.printArg(arg, verb); };
  21456. pp.ptr.prototype.printValue = function(value, verb, depth) {
  21457. var _1, _2, _3, _4, _arg, _arg$1, _arg$2, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, a, bytes, depth, f, i, i$1, i$2, i$3, i$4, key, name, p, sorted, t, value, value$1, verb, x, x$1, $s, $r;
  21458. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _4 = $f._4; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$16 = $f._r$16; _r$17 = $f._r$17; _r$18 = $f._r$18; _r$19 = $f._r$19; _r$2 = $f._r$2; _r$20 = $f._r$20; _r$21 = $f._r$21; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; a = $f.a; bytes = $f.bytes; depth = $f.depth; f = $f.f; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; i$3 = $f.i$3; i$4 = $f.i$4; key = $f.key; name = $f.name; p = $f.p; sorted = $f.sorted; t = $f.t; value = $f.value; value$1 = $f.value$1; verb = $f.verb; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  21459. p = this;
  21460. /* */ if (depth > 0 && $clone(value, reflect.Value).IsValid() && $clone(value, reflect.Value).CanInterface()) { $s = 1; continue; }
  21461. /* */ $s = 2; continue;
  21462. /* if (depth > 0 && $clone(value, reflect.Value).IsValid() && $clone(value, reflect.Value).CanInterface()) { */ case 1:
  21463. _r = $clone(value, reflect.Value).Interface(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  21464. p.arg = _r;
  21465. _r$1 = p.handleMethods(verb); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  21466. /* */ if (_r$1) { $s = 4; continue; }
  21467. /* */ $s = 5; continue;
  21468. /* if (_r$1) { */ case 4:
  21469. $s = -1; return;
  21470. /* } */ case 5:
  21471. /* } */ case 2:
  21472. p.arg = $ifaceNil;
  21473. p.value = value;
  21474. f = value;
  21475. _1 = $clone(value, reflect.Value).Kind();
  21476. /* */ if (_1 === (0)) { $s = 8; continue; }
  21477. /* */ if (_1 === (1)) { $s = 9; continue; }
  21478. /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 10; continue; }
  21479. /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 11; continue; }
  21480. /* */ if (_1 === (13)) { $s = 12; continue; }
  21481. /* */ if (_1 === (14)) { $s = 13; continue; }
  21482. /* */ if (_1 === (15)) { $s = 14; continue; }
  21483. /* */ if (_1 === (16)) { $s = 15; continue; }
  21484. /* */ if (_1 === (24)) { $s = 16; continue; }
  21485. /* */ if (_1 === (21)) { $s = 17; continue; }
  21486. /* */ if (_1 === (25)) { $s = 18; continue; }
  21487. /* */ if (_1 === (20)) { $s = 19; continue; }
  21488. /* */ if ((_1 === (17)) || (_1 === (23))) { $s = 20; continue; }
  21489. /* */ if (_1 === (22)) { $s = 21; continue; }
  21490. /* */ if ((_1 === (18)) || (_1 === (19)) || (_1 === (26))) { $s = 22; continue; }
  21491. /* */ $s = 23; continue;
  21492. /* if (_1 === (0)) { */ case 8:
  21493. /* */ if (depth === 0) { $s = 25; continue; }
  21494. /* */ $s = 26; continue;
  21495. /* if (depth === 0) { */ case 25:
  21496. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("<invalid reflect.Value>");
  21497. $s = 27; continue;
  21498. /* } else { */ case 26:
  21499. _2 = verb;
  21500. /* */ if (_2 === (118)) { $s = 29; continue; }
  21501. /* */ $s = 30; continue;
  21502. /* if (_2 === (118)) { */ case 29:
  21503. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("<nil>");
  21504. $s = 31; continue;
  21505. /* } else { */ case 30:
  21506. $r = p.badVerb(verb); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21507. /* } */ case 31:
  21508. case 28:
  21509. /* } */ case 27:
  21510. $s = 24; continue;
  21511. /* } else if (_1 === (1)) { */ case 9:
  21512. $r = p.fmtBool($clone(f, reflect.Value).Bool(), verb); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21513. $s = 24; continue;
  21514. /* } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 10:
  21515. $r = p.fmtInteger(((x = $clone(f, reflect.Value).Int(), new $Uint64(x.$high, x.$low))), true, verb); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21516. $s = 24; continue;
  21517. /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 11:
  21518. $r = p.fmtInteger($clone(f, reflect.Value).Uint(), false, verb); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21519. $s = 24; continue;
  21520. /* } else if (_1 === (13)) { */ case 12:
  21521. $r = p.fmtFloat($clone(f, reflect.Value).Float(), 32, verb); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21522. $s = 24; continue;
  21523. /* } else if (_1 === (14)) { */ case 13:
  21524. $r = p.fmtFloat($clone(f, reflect.Value).Float(), 64, verb); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21525. $s = 24; continue;
  21526. /* } else if (_1 === (15)) { */ case 14:
  21527. $r = p.fmtComplex($clone(f, reflect.Value).Complex(), 64, verb); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21528. $s = 24; continue;
  21529. /* } else if (_1 === (16)) { */ case 15:
  21530. $r = p.fmtComplex($clone(f, reflect.Value).Complex(), 128, verb); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21531. $s = 24; continue;
  21532. /* } else if (_1 === (24)) { */ case 16:
  21533. _r$2 = $clone(f, reflect.Value).String(); /* */ $s = 40; case 40: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  21534. $r = p.fmtString(_r$2, verb); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21535. $s = 24; continue;
  21536. /* } else if (_1 === (21)) { */ case 17:
  21537. /* */ if (p.fmt.fmtFlags.sharpV) { $s = 42; continue; }
  21538. /* */ $s = 43; continue;
  21539. /* if (p.fmt.fmtFlags.sharpV) { */ case 42:
  21540. _r$3 = $clone(f, reflect.Value).Type().String(); /* */ $s = 45; case 45: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  21541. $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$3); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21542. if ($clone(f, reflect.Value).IsNil()) {
  21543. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(nil)");
  21544. $s = -1; return;
  21545. }
  21546. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(123);
  21547. $s = 44; continue;
  21548. /* } else { */ case 43:
  21549. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("map[");
  21550. /* } */ case 44:
  21551. _r$4 = fmtsort.Sort($clone(f, reflect.Value)); /* */ $s = 47; case 47: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  21552. sorted = _r$4;
  21553. _ref = sorted.Key;
  21554. _i = 0;
  21555. /* while (true) { */ case 48:
  21556. /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 49; continue; }
  21557. i = _i;
  21558. key = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  21559. if (i > 0) {
  21560. if (p.fmt.fmtFlags.sharpV) {
  21561. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", ");
  21562. } else {
  21563. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32);
  21564. }
  21565. }
  21566. $r = p.printValue($clone(key, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21567. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(58);
  21568. $r = p.printValue($clone((x$1 = sorted.Value, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])), reflect.Value), verb, depth + 1 >> 0); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21569. _i++;
  21570. /* } */ $s = 48; continue; case 49:
  21571. if (p.fmt.fmtFlags.sharpV) {
  21572. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(125);
  21573. } else {
  21574. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(93);
  21575. }
  21576. $s = 24; continue;
  21577. /* } else if (_1 === (25)) { */ case 18:
  21578. /* */ if (p.fmt.fmtFlags.sharpV) { $s = 52; continue; }
  21579. /* */ $s = 53; continue;
  21580. /* if (p.fmt.fmtFlags.sharpV) { */ case 52:
  21581. _r$5 = $clone(f, reflect.Value).Type().String(); /* */ $s = 54; case 54: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  21582. $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$5); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21583. /* } */ case 53:
  21584. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(123);
  21585. i$1 = 0;
  21586. /* while (true) { */ case 56:
  21587. /* if (!(i$1 < $clone(f, reflect.Value).NumField())) { break; } */ if(!(i$1 < $clone(f, reflect.Value).NumField())) { $s = 57; continue; }
  21588. if (i$1 > 0) {
  21589. if (p.fmt.fmtFlags.sharpV) {
  21590. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", ");
  21591. } else {
  21592. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32);
  21593. }
  21594. }
  21595. /* */ if (p.fmt.fmtFlags.plusV || p.fmt.fmtFlags.sharpV) { $s = 58; continue; }
  21596. /* */ $s = 59; continue;
  21597. /* if (p.fmt.fmtFlags.plusV || p.fmt.fmtFlags.sharpV) { */ case 58:
  21598. _r$6 = $clone(f, reflect.Value).Type().Field(i$1); /* */ $s = 60; case 60: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  21599. name = _r$6.Name;
  21600. if (!(name === "")) {
  21601. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(name);
  21602. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(58);
  21603. }
  21604. /* } */ case 59:
  21605. _r$7 = getField($clone(f, reflect.Value), i$1); /* */ $s = 61; case 61: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
  21606. $r = p.printValue($clone(_r$7, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21607. i$1 = i$1 + (1) >> 0;
  21608. /* } */ $s = 56; continue; case 57:
  21609. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(125);
  21610. $s = 24; continue;
  21611. /* } else if (_1 === (20)) { */ case 19:
  21612. _r$8 = $clone(f, reflect.Value).Elem(); /* */ $s = 63; case 63: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
  21613. value$1 = _r$8;
  21614. /* */ if (!$clone(value$1, reflect.Value).IsValid()) { $s = 64; continue; }
  21615. /* */ $s = 65; continue;
  21616. /* if (!$clone(value$1, reflect.Value).IsValid()) { */ case 64:
  21617. /* */ if (p.fmt.fmtFlags.sharpV) { $s = 67; continue; }
  21618. /* */ $s = 68; continue;
  21619. /* if (p.fmt.fmtFlags.sharpV) { */ case 67:
  21620. _r$9 = $clone(f, reflect.Value).Type().String(); /* */ $s = 70; case 70: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  21621. $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$9); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21622. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(nil)");
  21623. $s = 69; continue;
  21624. /* } else { */ case 68:
  21625. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("<nil>");
  21626. /* } */ case 69:
  21627. $s = 66; continue;
  21628. /* } else { */ case 65:
  21629. $r = p.printValue($clone(value$1, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21630. /* } */ case 66:
  21631. $s = 24; continue;
  21632. /* } else if ((_1 === (17)) || (_1 === (23))) { */ case 20:
  21633. _3 = verb;
  21634. /* */ if ((_3 === (115)) || (_3 === (113)) || (_3 === (120)) || (_3 === (88))) { $s = 74; continue; }
  21635. /* */ $s = 75; continue;
  21636. /* if ((_3 === (115)) || (_3 === (113)) || (_3 === (120)) || (_3 === (88))) { */ case 74:
  21637. t = $clone(f, reflect.Value).Type();
  21638. _r$10 = t.Elem(); /* */ $s = 78; case 78: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
  21639. _r$11 = _r$10.Kind(); /* */ $s = 79; case 79: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
  21640. /* */ if (_r$11 === 8) { $s = 76; continue; }
  21641. /* */ $s = 77; continue;
  21642. /* if (_r$11 === 8) { */ case 76:
  21643. bytes = sliceType$2.nil;
  21644. /* */ if ($clone(f, reflect.Value).Kind() === 23) { $s = 80; continue; }
  21645. /* */ if ($clone(f, reflect.Value).CanAddr()) { $s = 81; continue; }
  21646. /* */ $s = 82; continue;
  21647. /* if ($clone(f, reflect.Value).Kind() === 23) { */ case 80:
  21648. _r$12 = $clone(f, reflect.Value).Bytes(); /* */ $s = 84; case 84: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
  21649. bytes = _r$12;
  21650. $s = 83; continue;
  21651. /* } else if ($clone(f, reflect.Value).CanAddr()) { */ case 81:
  21652. _r$13 = $clone(f, reflect.Value).Slice(0, $clone(f, reflect.Value).Len()); /* */ $s = 85; case 85: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
  21653. _r$14 = $clone(_r$13, reflect.Value).Bytes(); /* */ $s = 86; case 86: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
  21654. bytes = _r$14;
  21655. $s = 83; continue;
  21656. /* } else { */ case 82:
  21657. bytes = $makeSlice(sliceType$2, $clone(f, reflect.Value).Len());
  21658. _ref$1 = bytes;
  21659. _i$1 = 0;
  21660. /* while (true) { */ case 87:
  21661. /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 88; continue; }
  21662. i$2 = _i$1;
  21663. _r$15 = $clone(f, reflect.Value).Index(i$2); /* */ $s = 89; case 89: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
  21664. _r$16 = $clone(_r$15, reflect.Value).Uint(); /* */ $s = 90; case 90: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; }
  21665. ((i$2 < 0 || i$2 >= bytes.$length) ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + i$2] = ((_r$16.$low << 24 >>> 24)));
  21666. _i$1++;
  21667. /* } */ $s = 87; continue; case 88:
  21668. /* } */ case 83:
  21669. _arg = bytes;
  21670. _arg$1 = verb;
  21671. _r$17 = t.String(); /* */ $s = 91; case 91: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; }
  21672. _arg$2 = _r$17;
  21673. $r = p.fmtBytes(_arg, _arg$1, _arg$2); /* */ $s = 92; case 92: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21674. $s = -1; return;
  21675. /* } */ case 77:
  21676. /* } */ case 75:
  21677. case 73:
  21678. /* */ if (p.fmt.fmtFlags.sharpV) { $s = 93; continue; }
  21679. /* */ $s = 94; continue;
  21680. /* if (p.fmt.fmtFlags.sharpV) { */ case 93:
  21681. _r$18 = $clone(f, reflect.Value).Type().String(); /* */ $s = 96; case 96: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; }
  21682. $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$18); /* */ $s = 97; case 97: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21683. if (($clone(f, reflect.Value).Kind() === 23) && $clone(f, reflect.Value).IsNil()) {
  21684. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(nil)");
  21685. $s = -1; return;
  21686. }
  21687. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(123);
  21688. i$3 = 0;
  21689. /* while (true) { */ case 98:
  21690. /* if (!(i$3 < $clone(f, reflect.Value).Len())) { break; } */ if(!(i$3 < $clone(f, reflect.Value).Len())) { $s = 99; continue; }
  21691. if (i$3 > 0) {
  21692. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", ");
  21693. }
  21694. _r$19 = $clone(f, reflect.Value).Index(i$3); /* */ $s = 100; case 100: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; }
  21695. $r = p.printValue($clone(_r$19, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 101; case 101: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21696. i$3 = i$3 + (1) >> 0;
  21697. /* } */ $s = 98; continue; case 99:
  21698. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(125);
  21699. $s = 95; continue;
  21700. /* } else { */ case 94:
  21701. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(91);
  21702. i$4 = 0;
  21703. /* while (true) { */ case 102:
  21704. /* if (!(i$4 < $clone(f, reflect.Value).Len())) { break; } */ if(!(i$4 < $clone(f, reflect.Value).Len())) { $s = 103; continue; }
  21705. if (i$4 > 0) {
  21706. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32);
  21707. }
  21708. _r$20 = $clone(f, reflect.Value).Index(i$4); /* */ $s = 104; case 104: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; }
  21709. $r = p.printValue($clone(_r$20, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 105; case 105: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21710. i$4 = i$4 + (1) >> 0;
  21711. /* } */ $s = 102; continue; case 103:
  21712. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(93);
  21713. /* } */ case 95:
  21714. $s = 24; continue;
  21715. /* } else if (_1 === (22)) { */ case 21:
  21716. /* */ if ((depth === 0) && !(($clone(f, reflect.Value).Pointer() === 0))) { $s = 106; continue; }
  21717. /* */ $s = 107; continue;
  21718. /* if ((depth === 0) && !(($clone(f, reflect.Value).Pointer() === 0))) { */ case 106:
  21719. _r$21 = $clone(f, reflect.Value).Elem(); /* */ $s = 109; case 109: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; }
  21720. a = _r$21;
  21721. _4 = $clone(a, reflect.Value).Kind();
  21722. /* */ if ((_4 === (17)) || (_4 === (23)) || (_4 === (25)) || (_4 === (21))) { $s = 110; continue; }
  21723. /* */ $s = 111; continue;
  21724. /* if ((_4 === (17)) || (_4 === (23)) || (_4 === (25)) || (_4 === (21))) { */ case 110:
  21725. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(38);
  21726. $r = p.printValue($clone(a, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 112; case 112: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21727. $s = -1; return;
  21728. /* } */ case 111:
  21729. case 108:
  21730. /* } */ case 107:
  21731. $r = p.fmtPointer($clone(f, reflect.Value), verb); /* */ $s = 113; case 113: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21732. $s = 24; continue;
  21733. /* } else if ((_1 === (18)) || (_1 === (19)) || (_1 === (26))) { */ case 22:
  21734. $r = p.fmtPointer($clone(f, reflect.Value), verb); /* */ $s = 114; case 114: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21735. $s = 24; continue;
  21736. /* } else { */ case 23:
  21737. $r = p.unknownType($clone(f, reflect.Value)); /* */ $s = 115; case 115: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21738. /* } */ case 24:
  21739. case 7:
  21740. $s = -1; return;
  21741. /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.printValue }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._4 = _4; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$16 = _r$16; $f._r$17 = _r$17; $f._r$18 = _r$18; $f._r$19 = _r$19; $f._r$2 = _r$2; $f._r$20 = _r$20; $f._r$21 = _r$21; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f.a = a; $f.bytes = bytes; $f.depth = depth; $f.f = f; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.i$3 = i$3; $f.i$4 = i$4; $f.key = key; $f.name = name; $f.p = p; $f.sorted = sorted; $f.t = t; $f.value = value; $f.value$1 = value$1; $f.verb = verb; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f;
  21742. };
  21743. pp.prototype.printValue = function(value, verb, depth) { return this.$val.printValue(value, verb, depth); };
  21744. intFromArg = function(a, argNum) {
  21745. var _1, _r, _tuple, a, argNum, isInt, n, n$1, newArgNum, num, v, x, x$1, x$2, $s, $r;
  21746. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _tuple = $f._tuple; a = $f.a; argNum = $f.argNum; isInt = $f.isInt; n = $f.n; n$1 = $f.n$1; newArgNum = $f.newArgNum; num = $f.num; v = $f.v; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  21747. num = 0;
  21748. isInt = false;
  21749. newArgNum = 0;
  21750. newArgNum = argNum;
  21751. /* */ if (argNum < a.$length) { $s = 1; continue; }
  21752. /* */ $s = 2; continue;
  21753. /* if (argNum < a.$length) { */ case 1:
  21754. _tuple = $assertType(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), $Int, true);
  21755. num = _tuple[0];
  21756. isInt = _tuple[1];
  21757. /* */ if (!isInt) { $s = 3; continue; }
  21758. /* */ $s = 4; continue;
  21759. /* if (!isInt) { */ case 3:
  21760. _r = reflect.ValueOf(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum])); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  21761. v = _r;
  21762. _1 = $clone(v, reflect.Value).Kind();
  21763. if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) {
  21764. n = $clone(v, reflect.Value).Int();
  21765. if ((x = (new $Int64(0, (((n.$low + ((n.$high >> 31) * 4294967296)) >> 0)))), (x.$high === n.$high && x.$low === n.$low))) {
  21766. num = (((n.$low + ((n.$high >> 31) * 4294967296)) >> 0));
  21767. isInt = true;
  21768. }
  21769. } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) {
  21770. n$1 = $clone(v, reflect.Value).Uint();
  21771. if ((x$1 = (new $Int64(n$1.$high, n$1.$low)), (x$1.$high > 0 || (x$1.$high === 0 && x$1.$low >= 0))) && (x$2 = (new $Uint64(0, ((n$1.$low >> 0)))), (x$2.$high === n$1.$high && x$2.$low === n$1.$low))) {
  21772. num = ((n$1.$low >> 0));
  21773. isInt = true;
  21774. }
  21775. }
  21776. case 5:
  21777. /* } */ case 4:
  21778. newArgNum = argNum + 1 >> 0;
  21779. if (tooLarge(num)) {
  21780. num = 0;
  21781. isInt = false;
  21782. }
  21783. /* } */ case 2:
  21784. $s = -1; return [num, isInt, newArgNum];
  21785. /* */ } return; } if ($f === undefined) { $f = { $blk: intFromArg }; } $f._1 = _1; $f._r = _r; $f._tuple = _tuple; $f.a = a; $f.argNum = argNum; $f.isInt = isInt; $f.n = n; $f.n$1 = n$1; $f.newArgNum = newArgNum; $f.num = num; $f.v = v; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f;
  21786. };
  21787. parseArgNumber = function(format) {
  21788. var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, format, i, index, newi, ok, ok$1, wid, width;
  21789. index = 0;
  21790. wid = 0;
  21791. ok = false;
  21792. if (format.length < 3) {
  21793. _tmp = 0;
  21794. _tmp$1 = 1;
  21795. _tmp$2 = false;
  21796. index = _tmp;
  21797. wid = _tmp$1;
  21798. ok = _tmp$2;
  21799. return [index, wid, ok];
  21800. }
  21801. i = 1;
  21802. while (true) {
  21803. if (!(i < format.length)) { break; }
  21804. if (format.charCodeAt(i) === 93) {
  21805. _tuple = parsenum(format, 1, i);
  21806. width = _tuple[0];
  21807. ok$1 = _tuple[1];
  21808. newi = _tuple[2];
  21809. if (!ok$1 || !((newi === i))) {
  21810. _tmp$3 = 0;
  21811. _tmp$4 = i + 1 >> 0;
  21812. _tmp$5 = false;
  21813. index = _tmp$3;
  21814. wid = _tmp$4;
  21815. ok = _tmp$5;
  21816. return [index, wid, ok];
  21817. }
  21818. _tmp$6 = width - 1 >> 0;
  21819. _tmp$7 = i + 1 >> 0;
  21820. _tmp$8 = true;
  21821. index = _tmp$6;
  21822. wid = _tmp$7;
  21823. ok = _tmp$8;
  21824. return [index, wid, ok];
  21825. }
  21826. i = i + (1) >> 0;
  21827. }
  21828. _tmp$9 = 0;
  21829. _tmp$10 = 1;
  21830. _tmp$11 = false;
  21831. index = _tmp$9;
  21832. wid = _tmp$10;
  21833. ok = _tmp$11;
  21834. return [index, wid, ok];
  21835. };
  21836. pp.ptr.prototype.argNumber = function(argNum, format, i, numArgs) {
  21837. var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tuple, argNum, format, found, i, index, newArgNum, newi, numArgs, ok, p, wid;
  21838. newArgNum = 0;
  21839. newi = 0;
  21840. found = false;
  21841. p = this;
  21842. if (format.length <= i || !((format.charCodeAt(i) === 91))) {
  21843. _tmp = argNum;
  21844. _tmp$1 = i;
  21845. _tmp$2 = false;
  21846. newArgNum = _tmp;
  21847. newi = _tmp$1;
  21848. found = _tmp$2;
  21849. return [newArgNum, newi, found];
  21850. }
  21851. p.reordered = true;
  21852. _tuple = parseArgNumber($substring(format, i));
  21853. index = _tuple[0];
  21854. wid = _tuple[1];
  21855. ok = _tuple[2];
  21856. if (ok && 0 <= index && index < numArgs) {
  21857. _tmp$3 = index;
  21858. _tmp$4 = i + wid >> 0;
  21859. _tmp$5 = true;
  21860. newArgNum = _tmp$3;
  21861. newi = _tmp$4;
  21862. found = _tmp$5;
  21863. return [newArgNum, newi, found];
  21864. }
  21865. p.goodArgNum = false;
  21866. _tmp$6 = argNum;
  21867. _tmp$7 = i + wid >> 0;
  21868. _tmp$8 = ok;
  21869. newArgNum = _tmp$6;
  21870. newi = _tmp$7;
  21871. found = _tmp$8;
  21872. return [newArgNum, newi, found];
  21873. };
  21874. pp.prototype.argNumber = function(argNum, format, i, numArgs) { return this.$val.argNumber(argNum, format, i, numArgs); };
  21875. pp.ptr.prototype.badArgNum = function(verb) {
  21876. var p, verb;
  21877. p = this;
  21878. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!");
  21879. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteRune(verb);
  21880. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(BADINDEX)");
  21881. };
  21882. pp.prototype.badArgNum = function(verb) { return this.$val.badArgNum(verb); };
  21883. pp.ptr.prototype.missingArg = function(verb) {
  21884. var p, verb;
  21885. p = this;
  21886. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!");
  21887. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteRune(verb);
  21888. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(MISSING)");
  21889. };
  21890. pp.prototype.missingArg = function(verb) { return this.$val.missingArg(verb); };
  21891. pp.ptr.prototype.doPrintf = function(format, a) {
  21892. var _1, _i, _r, _r$1, _r$2, _ref, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, a, afterIndex, arg, argNum, c, end, format, i, i$1, lasti, p, size, verb, $s, $r;
  21893. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; a = $f.a; afterIndex = $f.afterIndex; arg = $f.arg; argNum = $f.argNum; c = $f.c; end = $f.end; format = $f.format; i = $f.i; i$1 = $f.i$1; lasti = $f.lasti; p = $f.p; size = $f.size; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  21894. p = this;
  21895. end = format.length;
  21896. argNum = 0;
  21897. afterIndex = false;
  21898. p.reordered = false;
  21899. i = 0;
  21900. /* while (true) { */ case 1:
  21901. /* if (!(i < end)) { break; } */ if(!(i < end)) { $s = 2; continue; }
  21902. p.goodArgNum = true;
  21903. lasti = i;
  21904. while (true) {
  21905. if (!(i < end && !((format.charCodeAt(i) === 37)))) { break; }
  21906. i = i + (1) >> 0;
  21907. }
  21908. if (i > lasti) {
  21909. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString($substring(format, lasti, i));
  21910. }
  21911. if (i >= end) {
  21912. /* break; */ $s = 2; continue;
  21913. }
  21914. i = i + (1) >> 0;
  21915. p.fmt.clearflags();
  21916. /* while (true) { */ case 3:
  21917. /* if (!(i < end)) { break; } */ if(!(i < end)) { $s = 4; continue; }
  21918. c = format.charCodeAt(i);
  21919. _1 = c;
  21920. /* */ if (_1 === (35)) { $s = 6; continue; }
  21921. /* */ if (_1 === (48)) { $s = 7; continue; }
  21922. /* */ if (_1 === (43)) { $s = 8; continue; }
  21923. /* */ if (_1 === (45)) { $s = 9; continue; }
  21924. /* */ if (_1 === (32)) { $s = 10; continue; }
  21925. /* */ $s = 11; continue;
  21926. /* if (_1 === (35)) { */ case 6:
  21927. p.fmt.fmtFlags.sharp = true;
  21928. $s = 12; continue;
  21929. /* } else if (_1 === (48)) { */ case 7:
  21930. p.fmt.fmtFlags.zero = !p.fmt.fmtFlags.minus;
  21931. $s = 12; continue;
  21932. /* } else if (_1 === (43)) { */ case 8:
  21933. p.fmt.fmtFlags.plus = true;
  21934. $s = 12; continue;
  21935. /* } else if (_1 === (45)) { */ case 9:
  21936. p.fmt.fmtFlags.minus = true;
  21937. p.fmt.fmtFlags.zero = false;
  21938. $s = 12; continue;
  21939. /* } else if (_1 === (32)) { */ case 10:
  21940. p.fmt.fmtFlags.space = true;
  21941. $s = 12; continue;
  21942. /* } else { */ case 11:
  21943. /* */ if (97 <= c && c <= 122 && argNum < a.$length) { $s = 13; continue; }
  21944. /* */ $s = 14; continue;
  21945. /* if (97 <= c && c <= 122 && argNum < a.$length) { */ case 13:
  21946. if (c === 118) {
  21947. p.fmt.fmtFlags.sharpV = p.fmt.fmtFlags.sharp;
  21948. p.fmt.fmtFlags.sharp = false;
  21949. p.fmt.fmtFlags.plusV = p.fmt.fmtFlags.plus;
  21950. p.fmt.fmtFlags.plus = false;
  21951. }
  21952. $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), ((c >> 0))); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  21953. argNum = argNum + (1) >> 0;
  21954. i = i + (1) >> 0;
  21955. /* continue formatLoop; */ $s = 1; continue s;
  21956. /* } */ case 14:
  21957. /* break simpleFormat; */ $s = 4; continue s;
  21958. /* } */ case 12:
  21959. case 5:
  21960. i = i + (1) >> 0;
  21961. /* } */ $s = 3; continue; case 4:
  21962. _tuple = p.argNumber(argNum, format, i, a.$length);
  21963. argNum = _tuple[0];
  21964. i = _tuple[1];
  21965. afterIndex = _tuple[2];
  21966. /* */ if (i < end && (format.charCodeAt(i) === 42)) { $s = 16; continue; }
  21967. /* */ $s = 17; continue;
  21968. /* if (i < end && (format.charCodeAt(i) === 42)) { */ case 16:
  21969. i = i + (1) >> 0;
  21970. _r = intFromArg(a, argNum); /* */ $s = 19; case 19: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  21971. _tuple$1 = _r;
  21972. p.fmt.wid = _tuple$1[0];
  21973. p.fmt.fmtFlags.widPresent = _tuple$1[1];
  21974. argNum = _tuple$1[2];
  21975. if (!p.fmt.fmtFlags.widPresent) {
  21976. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!(BADWIDTH)");
  21977. }
  21978. if (p.fmt.wid < 0) {
  21979. p.fmt.wid = -p.fmt.wid;
  21980. p.fmt.fmtFlags.minus = true;
  21981. p.fmt.fmtFlags.zero = false;
  21982. }
  21983. afterIndex = false;
  21984. $s = 18; continue;
  21985. /* } else { */ case 17:
  21986. _tuple$2 = parsenum(format, i, end);
  21987. p.fmt.wid = _tuple$2[0];
  21988. p.fmt.fmtFlags.widPresent = _tuple$2[1];
  21989. i = _tuple$2[2];
  21990. if (afterIndex && p.fmt.fmtFlags.widPresent) {
  21991. p.goodArgNum = false;
  21992. }
  21993. /* } */ case 18:
  21994. /* */ if ((i + 1 >> 0) < end && (format.charCodeAt(i) === 46)) { $s = 20; continue; }
  21995. /* */ $s = 21; continue;
  21996. /* if ((i + 1 >> 0) < end && (format.charCodeAt(i) === 46)) { */ case 20:
  21997. i = i + (1) >> 0;
  21998. if (afterIndex) {
  21999. p.goodArgNum = false;
  22000. }
  22001. _tuple$3 = p.argNumber(argNum, format, i, a.$length);
  22002. argNum = _tuple$3[0];
  22003. i = _tuple$3[1];
  22004. afterIndex = _tuple$3[2];
  22005. /* */ if (i < end && (format.charCodeAt(i) === 42)) { $s = 22; continue; }
  22006. /* */ $s = 23; continue;
  22007. /* if (i < end && (format.charCodeAt(i) === 42)) { */ case 22:
  22008. i = i + (1) >> 0;
  22009. _r$1 = intFromArg(a, argNum); /* */ $s = 25; case 25: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  22010. _tuple$4 = _r$1;
  22011. p.fmt.prec = _tuple$4[0];
  22012. p.fmt.fmtFlags.precPresent = _tuple$4[1];
  22013. argNum = _tuple$4[2];
  22014. if (p.fmt.prec < 0) {
  22015. p.fmt.prec = 0;
  22016. p.fmt.fmtFlags.precPresent = false;
  22017. }
  22018. if (!p.fmt.fmtFlags.precPresent) {
  22019. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!(BADPREC)");
  22020. }
  22021. afterIndex = false;
  22022. $s = 24; continue;
  22023. /* } else { */ case 23:
  22024. _tuple$5 = parsenum(format, i, end);
  22025. p.fmt.prec = _tuple$5[0];
  22026. p.fmt.fmtFlags.precPresent = _tuple$5[1];
  22027. i = _tuple$5[2];
  22028. if (!p.fmt.fmtFlags.precPresent) {
  22029. p.fmt.prec = 0;
  22030. p.fmt.fmtFlags.precPresent = true;
  22031. }
  22032. /* } */ case 24:
  22033. /* } */ case 21:
  22034. if (!afterIndex) {
  22035. _tuple$6 = p.argNumber(argNum, format, i, a.$length);
  22036. argNum = _tuple$6[0];
  22037. i = _tuple$6[1];
  22038. afterIndex = _tuple$6[2];
  22039. }
  22040. if (i >= end) {
  22041. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!(NOVERB)");
  22042. /* break; */ $s = 2; continue;
  22043. }
  22044. _tmp = ((format.charCodeAt(i) >> 0));
  22045. _tmp$1 = 1;
  22046. verb = _tmp;
  22047. size = _tmp$1;
  22048. if (verb >= 128) {
  22049. _tuple$7 = utf8.DecodeRuneInString($substring(format, i));
  22050. verb = _tuple$7[0];
  22051. size = _tuple$7[1];
  22052. }
  22053. i = i + (size) >> 0;
  22054. /* */ if ((verb === 37)) { $s = 27; continue; }
  22055. /* */ if (!p.goodArgNum) { $s = 28; continue; }
  22056. /* */ if (argNum >= a.$length) { $s = 29; continue; }
  22057. /* */ if ((verb === 118)) { $s = 30; continue; }
  22058. /* */ $s = 31; continue;
  22059. /* if ((verb === 37)) { */ case 27:
  22060. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(37);
  22061. $s = 32; continue;
  22062. /* } else if (!p.goodArgNum) { */ case 28:
  22063. p.badArgNum(verb);
  22064. $s = 32; continue;
  22065. /* } else if (argNum >= a.$length) { */ case 29:
  22066. p.missingArg(verb);
  22067. $s = 32; continue;
  22068. /* } else if ((verb === 118)) { */ case 30:
  22069. p.fmt.fmtFlags.sharpV = p.fmt.fmtFlags.sharp;
  22070. p.fmt.fmtFlags.sharp = false;
  22071. p.fmt.fmtFlags.plusV = p.fmt.fmtFlags.plus;
  22072. p.fmt.fmtFlags.plus = false;
  22073. $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  22074. argNum = argNum + (1) >> 0;
  22075. $s = 32; continue;
  22076. /* } else { */ case 31:
  22077. $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  22078. argNum = argNum + (1) >> 0;
  22079. /* } */ case 32:
  22080. case 26:
  22081. /* } */ $s = 1; continue; case 2:
  22082. /* */ if (!p.reordered && argNum < a.$length) { $s = 35; continue; }
  22083. /* */ $s = 36; continue;
  22084. /* if (!p.reordered && argNum < a.$length) { */ case 35:
  22085. p.fmt.clearflags();
  22086. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!(EXTRA ");
  22087. _ref = $subslice(a, argNum);
  22088. _i = 0;
  22089. /* while (true) { */ case 37:
  22090. /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 38; continue; }
  22091. i$1 = _i;
  22092. arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  22093. if (i$1 > 0) {
  22094. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", ");
  22095. }
  22096. /* */ if ($interfaceIsEqual(arg, $ifaceNil)) { $s = 39; continue; }
  22097. /* */ $s = 40; continue;
  22098. /* if ($interfaceIsEqual(arg, $ifaceNil)) { */ case 39:
  22099. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("<nil>");
  22100. $s = 41; continue;
  22101. /* } else { */ case 40:
  22102. _r$2 = reflect.TypeOf(arg).String(); /* */ $s = 42; case 42: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  22103. $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$2); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  22104. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(61);
  22105. $r = p.printArg(arg, 118); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  22106. /* } */ case 41:
  22107. _i++;
  22108. /* } */ $s = 37; continue; case 38:
  22109. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(41);
  22110. /* } */ case 36:
  22111. $s = -1; return;
  22112. /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.doPrintf }; } $f._1 = _1; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f.a = a; $f.afterIndex = afterIndex; $f.arg = arg; $f.argNum = argNum; $f.c = c; $f.end = end; $f.format = format; $f.i = i; $f.i$1 = i$1; $f.lasti = lasti; $f.p = p; $f.size = size; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f;
  22113. };
  22114. pp.prototype.doPrintf = function(format, a) { return this.$val.doPrintf(format, a); };
  22115. pp.ptr.prototype.doPrint = function(a) {
  22116. var _i, _r, _ref, _v, a, arg, argNum, isString, p, prevString, $s, $r;
  22117. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _v = $f._v; a = $f.a; arg = $f.arg; argNum = $f.argNum; isString = $f.isString; p = $f.p; prevString = $f.prevString; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  22118. p = this;
  22119. prevString = false;
  22120. _ref = a;
  22121. _i = 0;
  22122. /* while (true) { */ case 1:
  22123. /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
  22124. argNum = _i;
  22125. arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  22126. if (!(!($interfaceIsEqual(arg, $ifaceNil)))) { _v = false; $s = 3; continue s; }
  22127. _r = reflect.TypeOf(arg).Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  22128. _v = _r === 24; case 3:
  22129. isString = _v;
  22130. if (argNum > 0 && !isString && !prevString) {
  22131. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32);
  22132. }
  22133. $r = p.printArg(arg, 118); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  22134. prevString = isString;
  22135. _i++;
  22136. /* } */ $s = 1; continue; case 2:
  22137. $s = -1; return;
  22138. /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.doPrint }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._v = _v; $f.a = a; $f.arg = arg; $f.argNum = argNum; $f.isString = isString; $f.p = p; $f.prevString = prevString; $f.$s = $s; $f.$r = $r; return $f;
  22139. };
  22140. pp.prototype.doPrint = function(a) { return this.$val.doPrint(a); };
  22141. pp.ptr.prototype.doPrintln = function(a) {
  22142. var _i, _ref, a, arg, argNum, p, $s, $r;
  22143. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _ref = $f._ref; a = $f.a; arg = $f.arg; argNum = $f.argNum; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  22144. p = this;
  22145. _ref = a;
  22146. _i = 0;
  22147. /* while (true) { */ case 1:
  22148. /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
  22149. argNum = _i;
  22150. arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  22151. if (argNum > 0) {
  22152. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32);
  22153. }
  22154. $r = p.printArg(arg, 118); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  22155. _i++;
  22156. /* } */ $s = 1; continue; case 2:
  22157. (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(10);
  22158. $s = -1; return;
  22159. /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.doPrintln }; } $f._i = _i; $f._ref = _ref; $f.a = a; $f.arg = arg; $f.argNum = argNum; $f.p = p; $f.$s = $s; $f.$r = $r; return $f;
  22160. };
  22161. pp.prototype.doPrintln = function(a) { return this.$val.doPrintln(a); };
  22162. ss.ptr.prototype.Read = function(buf) {
  22163. var _tmp, _tmp$1, buf, err, n, s;
  22164. n = 0;
  22165. err = $ifaceNil;
  22166. s = this;
  22167. _tmp = 0;
  22168. _tmp$1 = errors.New("ScanState's Read should not be called. Use ReadRune");
  22169. n = _tmp;
  22170. err = _tmp$1;
  22171. return [n, err];
  22172. };
  22173. ss.prototype.Read = function(buf) { return this.$val.Read(buf); };
  22174. ss.ptr.prototype.ReadRune = function() {
  22175. var _r, _tuple, err, r, s, size, $s, $r;
  22176. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; r = $f.r; s = $f.s; size = $f.size; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  22177. r = 0;
  22178. size = 0;
  22179. err = $ifaceNil;
  22180. s = this;
  22181. if (s.atEOF || s.count >= s.ssave.argLimit) {
  22182. err = io.EOF;
  22183. $s = -1; return [r, size, err];
  22184. }
  22185. _r = s.rs.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  22186. _tuple = _r;
  22187. r = _tuple[0];
  22188. size = _tuple[1];
  22189. err = _tuple[2];
  22190. if ($interfaceIsEqual(err, $ifaceNil)) {
  22191. s.count = s.count + (1) >> 0;
  22192. if (s.ssave.nlIsEnd && (r === 10)) {
  22193. s.atEOF = true;
  22194. }
  22195. } else if ($interfaceIsEqual(err, io.EOF)) {
  22196. s.atEOF = true;
  22197. }
  22198. $s = -1; return [r, size, err];
  22199. /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.ReadRune }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.r = r; $f.s = s; $f.size = size; $f.$s = $s; $f.$r = $r; return $f;
  22200. };
  22201. ss.prototype.ReadRune = function() { return this.$val.ReadRune(); };
  22202. ss.ptr.prototype.Width = function() {
  22203. var _tmp, _tmp$1, _tmp$2, _tmp$3, ok, s, wid;
  22204. wid = 0;
  22205. ok = false;
  22206. s = this;
  22207. if (s.ssave.maxWid === 1073741824) {
  22208. _tmp = 0;
  22209. _tmp$1 = false;
  22210. wid = _tmp;
  22211. ok = _tmp$1;
  22212. return [wid, ok];
  22213. }
  22214. _tmp$2 = s.ssave.maxWid;
  22215. _tmp$3 = true;
  22216. wid = _tmp$2;
  22217. ok = _tmp$3;
  22218. return [wid, ok];
  22219. };
  22220. ss.prototype.Width = function() { return this.$val.Width(); };
  22221. ss.ptr.prototype.getRune = function() {
  22222. var _r, _tuple, err, r, s, $s, $r;
  22223. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; r = $f.r; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  22224. r = 0;
  22225. s = this;
  22226. _r = s.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  22227. _tuple = _r;
  22228. r = _tuple[0];
  22229. err = _tuple[2];
  22230. if (!($interfaceIsEqual(err, $ifaceNil))) {
  22231. if ($interfaceIsEqual(err, io.EOF)) {
  22232. r = -1;
  22233. $s = -1; return r;
  22234. }
  22235. s.error(err);
  22236. }
  22237. $s = -1; return r;
  22238. /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.getRune }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.r = r; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  22239. };
  22240. ss.prototype.getRune = function() { return this.$val.getRune(); };
  22241. ss.ptr.prototype.UnreadRune = function() {
  22242. var _r, s, $s, $r;
  22243. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  22244. s = this;
  22245. _r = s.rs.UnreadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  22246. _r;
  22247. s.atEOF = false;
  22248. s.count = s.count - (1) >> 0;
  22249. $s = -1; return $ifaceNil;
  22250. /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.UnreadRune }; } $f._r = _r; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  22251. };
  22252. ss.prototype.UnreadRune = function() { return this.$val.UnreadRune(); };
  22253. ss.ptr.prototype.error = function(err) {
  22254. var err, s, x;
  22255. s = this;
  22256. $panic((x = new scanError.ptr(err), new x.constructor.elem(x)));
  22257. };
  22258. ss.prototype.error = function(err) { return this.$val.error(err); };
  22259. ss.ptr.prototype.errorString = function(err) {
  22260. var err, s, x;
  22261. s = this;
  22262. $panic((x = new scanError.ptr(errors.New(err)), new x.constructor.elem(x)));
  22263. };
  22264. ss.prototype.errorString = function(err) { return this.$val.errorString(err); };
  22265. ss.ptr.prototype.Token = function(skipSpace, f) {
  22266. var _r, err, f, s, skipSpace, tok, $s, $deferred, $r;
  22267. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; f = $f.f; s = $f.s; skipSpace = $f.skipSpace; tok = $f.tok; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  22268. err = [err];
  22269. tok = sliceType$2.nil;
  22270. err[0] = $ifaceNil;
  22271. s = this;
  22272. $deferred.push([(function(err) { return function() {
  22273. var _tuple, e, ok, se;
  22274. e = $recover();
  22275. if (!($interfaceIsEqual(e, $ifaceNil))) {
  22276. _tuple = $assertType(e, scanError, true);
  22277. se = $clone(_tuple[0], scanError);
  22278. ok = _tuple[1];
  22279. if (ok) {
  22280. err[0] = se.err;
  22281. } else {
  22282. $panic(e);
  22283. }
  22284. }
  22285. }; })(err), []]);
  22286. if (f === $throwNilPointerError) {
  22287. f = notSpace;
  22288. }
  22289. s.buf = $subslice(s.buf, 0, 0);
  22290. _r = s.token(skipSpace, f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  22291. tok = _r;
  22292. $s = -1; return [tok, err[0]];
  22293. /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [tok, err[0]]; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: ss.ptr.prototype.Token }; } $f._r = _r; $f.err = err; $f.f = f; $f.s = s; $f.skipSpace = skipSpace; $f.tok = tok; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  22294. };
  22295. ss.prototype.Token = function(skipSpace, f) { return this.$val.Token(skipSpace, f); };
  22296. isSpace = function(r) {
  22297. var _i, _ref, r, rng, rx;
  22298. if (r >= 65536) {
  22299. return false;
  22300. }
  22301. rx = ((r << 16 >>> 16));
  22302. _ref = space;
  22303. _i = 0;
  22304. while (true) {
  22305. if (!(_i < _ref.$length)) { break; }
  22306. rng = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), arrayType$1);
  22307. if (rx < rng[0]) {
  22308. return false;
  22309. }
  22310. if (rx <= rng[1]) {
  22311. return true;
  22312. }
  22313. _i++;
  22314. }
  22315. return false;
  22316. };
  22317. notSpace = function(r) {
  22318. var r;
  22319. return !isSpace(r);
  22320. };
  22321. ss.ptr.prototype.free = function(old) {
  22322. var old, s;
  22323. s = this;
  22324. if (old.validSave) {
  22325. ssave.copy(s.ssave, old);
  22326. return;
  22327. }
  22328. if (s.buf.$capacity > 1024) {
  22329. return;
  22330. }
  22331. s.buf = $subslice(s.buf, 0, 0);
  22332. s.rs = $ifaceNil;
  22333. ssFree.Put(s);
  22334. };
  22335. ss.prototype.free = function(old) { return this.$val.free(old); };
  22336. ss.ptr.prototype.SkipSpace = function() {
  22337. var _r, _r$1, _r$2, _v, r, s, $s, $r;
  22338. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _v = $f._v; r = $f.r; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  22339. s = this;
  22340. /* while (true) { */ case 1:
  22341. _r = s.getRune(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  22342. r = _r;
  22343. if (r === -1) {
  22344. $s = -1; return;
  22345. }
  22346. if (!(r === 13)) { _v = false; $s = 6; continue s; }
  22347. _r$1 = s.peek("\n"); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  22348. _v = _r$1; case 6:
  22349. /* */ if (_v) { $s = 4; continue; }
  22350. /* */ $s = 5; continue;
  22351. /* if (_v) { */ case 4:
  22352. /* continue; */ $s = 1; continue;
  22353. /* } */ case 5:
  22354. /* */ if (r === 10) { $s = 8; continue; }
  22355. /* */ $s = 9; continue;
  22356. /* if (r === 10) { */ case 8:
  22357. if (s.ssave.nlIsSpace) {
  22358. /* continue; */ $s = 1; continue;
  22359. }
  22360. s.errorString("unexpected newline");
  22361. $s = -1; return;
  22362. /* } */ case 9:
  22363. /* */ if (!isSpace(r)) { $s = 10; continue; }
  22364. /* */ $s = 11; continue;
  22365. /* if (!isSpace(r)) { */ case 10:
  22366. _r$2 = s.UnreadRune(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  22367. _r$2;
  22368. /* break; */ $s = 2; continue;
  22369. /* } */ case 11:
  22370. /* } */ $s = 1; continue; case 2:
  22371. $s = -1; return;
  22372. /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.SkipSpace }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._v = _v; $f.r = r; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  22373. };
  22374. ss.prototype.SkipSpace = function() { return this.$val.SkipSpace(); };
  22375. ss.ptr.prototype.token = function(skipSpace, f) {
  22376. var _r, _r$1, _r$2, f, r, s, skipSpace, x, $s, $r;
  22377. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; f = $f.f; r = $f.r; s = $f.s; skipSpace = $f.skipSpace; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  22378. s = this;
  22379. /* */ if (skipSpace) { $s = 1; continue; }
  22380. /* */ $s = 2; continue;
  22381. /* if (skipSpace) { */ case 1:
  22382. $r = s.SkipSpace(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  22383. /* } */ case 2:
  22384. /* while (true) { */ case 4:
  22385. _r = s.getRune(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  22386. r = _r;
  22387. if (r === -1) {
  22388. /* break; */ $s = 5; continue;
  22389. }
  22390. _r$1 = f(r); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  22391. /* */ if (!_r$1) { $s = 7; continue; }
  22392. /* */ $s = 8; continue;
  22393. /* if (!_r$1) { */ case 7:
  22394. _r$2 = s.UnreadRune(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  22395. _r$2;
  22396. /* break; */ $s = 5; continue;
  22397. /* } */ case 8:
  22398. (s.$ptr_buf || (s.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, s))).WriteRune(r);
  22399. /* } */ $s = 4; continue; case 5:
  22400. $s = -1; return (x = s.buf, $subslice(new sliceType$2(x.$array), x.$offset, x.$offset + x.$length));
  22401. /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.token }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.f = f; $f.r = r; $f.s = s; $f.skipSpace = skipSpace; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  22402. };
  22403. ss.prototype.token = function(skipSpace, f) { return this.$val.token(skipSpace, f); };
  22404. indexRune = function(s, r) {
  22405. var _i, _ref, _rune, c, i, r, s;
  22406. _ref = s;
  22407. _i = 0;
  22408. while (true) {
  22409. if (!(_i < _ref.length)) { break; }
  22410. _rune = $decodeRune(_ref, _i);
  22411. i = _i;
  22412. c = _rune[0];
  22413. if (c === r) {
  22414. return i;
  22415. }
  22416. _i += _rune[1];
  22417. }
  22418. return -1;
  22419. };
  22420. ss.ptr.prototype.peek = function(ok) {
  22421. var _r, _r$1, ok, r, s, $s, $r;
  22422. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; ok = $f.ok; r = $f.r; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  22423. s = this;
  22424. _r = s.getRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  22425. r = _r;
  22426. /* */ if (!((r === -1))) { $s = 2; continue; }
  22427. /* */ $s = 3; continue;
  22428. /* if (!((r === -1))) { */ case 2:
  22429. _r$1 = s.UnreadRune(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  22430. _r$1;
  22431. /* } */ case 3:
  22432. $s = -1; return indexRune(ok, r) >= 0;
  22433. /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.peek }; } $f._r = _r; $f._r$1 = _r$1; $f.ok = ok; $f.r = r; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  22434. };
  22435. ss.prototype.peek = function(ok) { return this.$val.peek(ok); };
  22436. ptrType$25.methods = [{prop: "clearflags", name: "clearflags", pkg: "fmt", typ: $funcType([], [], false)}, {prop: "init", name: "init", pkg: "fmt", typ: $funcType([ptrType$1], [], false)}, {prop: "writePadding", name: "writePadding", pkg: "fmt", typ: $funcType([$Int], [], false)}, {prop: "pad", name: "pad", pkg: "fmt", typ: $funcType([sliceType$2], [], false)}, {prop: "padString", name: "padString", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "fmtBoolean", name: "fmtBoolean", pkg: "fmt", typ: $funcType([$Bool], [], false)}, {prop: "fmtUnicode", name: "fmtUnicode", pkg: "fmt", typ: $funcType([$Uint64], [], false)}, {prop: "fmtInteger", name: "fmtInteger", pkg: "fmt", typ: $funcType([$Uint64, $Int, $Bool, $String], [], false)}, {prop: "truncateString", name: "truncateString", pkg: "fmt", typ: $funcType([$String], [$String], false)}, {prop: "truncate", name: "truncate", pkg: "fmt", typ: $funcType([sliceType$2], [sliceType$2], false)}, {prop: "fmtS", name: "fmtS", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "fmtBs", name: "fmtBs", pkg: "fmt", typ: $funcType([sliceType$2], [], false)}, {prop: "fmtSbx", name: "fmtSbx", pkg: "fmt", typ: $funcType([$String, sliceType$2, $String], [], false)}, {prop: "fmtSx", name: "fmtSx", pkg: "fmt", typ: $funcType([$String, $String], [], false)}, {prop: "fmtBx", name: "fmtBx", pkg: "fmt", typ: $funcType([sliceType$2, $String], [], false)}, {prop: "fmtQ", name: "fmtQ", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "fmtC", name: "fmtC", pkg: "fmt", typ: $funcType([$Uint64], [], false)}, {prop: "fmtQc", name: "fmtQc", pkg: "fmt", typ: $funcType([$Uint64], [], false)}, {prop: "fmtFloat", name: "fmtFloat", pkg: "fmt", typ: $funcType([$Float64, $Int, $Int32, $Int], [], false)}];
  22437. ptrType$1.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [], false)}, {prop: "WriteByte", name: "WriteByte", pkg: "", typ: $funcType([$Uint8], [], false)}, {prop: "WriteRune", name: "WriteRune", pkg: "", typ: $funcType([$Int32], [], false)}];
  22438. ptrType$2.methods = [{prop: "free", name: "free", pkg: "fmt", typ: $funcType([], [], false)}, {prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Precision", name: "Precision", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Flag", name: "Flag", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "unknownType", name: "unknownType", pkg: "fmt", typ: $funcType([reflect.Value], [], false)}, {prop: "badVerb", name: "badVerb", pkg: "fmt", typ: $funcType([$Int32], [], false)}, {prop: "fmtBool", name: "fmtBool", pkg: "fmt", typ: $funcType([$Bool, $Int32], [], false)}, {prop: "fmt0x64", name: "fmt0x64", pkg: "fmt", typ: $funcType([$Uint64, $Bool], [], false)}, {prop: "fmtInteger", name: "fmtInteger", pkg: "fmt", typ: $funcType([$Uint64, $Bool, $Int32], [], false)}, {prop: "fmtFloat", name: "fmtFloat", pkg: "fmt", typ: $funcType([$Float64, $Int, $Int32], [], false)}, {prop: "fmtComplex", name: "fmtComplex", pkg: "fmt", typ: $funcType([$Complex128, $Int, $Int32], [], false)}, {prop: "fmtString", name: "fmtString", pkg: "fmt", typ: $funcType([$String, $Int32], [], false)}, {prop: "fmtBytes", name: "fmtBytes", pkg: "fmt", typ: $funcType([sliceType$2, $Int32, $String], [], false)}, {prop: "fmtPointer", name: "fmtPointer", pkg: "fmt", typ: $funcType([reflect.Value, $Int32], [], false)}, {prop: "catchPanic", name: "catchPanic", pkg: "fmt", typ: $funcType([$emptyInterface, $Int32, $String], [], false)}, {prop: "handleMethods", name: "handleMethods", pkg: "fmt", typ: $funcType([$Int32], [$Bool], false)}, {prop: "printArg", name: "printArg", pkg: "fmt", typ: $funcType([$emptyInterface, $Int32], [], false)}, {prop: "printValue", name: "printValue", pkg: "fmt", typ: $funcType([reflect.Value, $Int32, $Int], [], false)}, {prop: "argNumber", name: "argNumber", pkg: "fmt", typ: $funcType([$Int, $String, $Int, $Int], [$Int, $Int, $Bool], false)}, {prop: "badArgNum", name: "badArgNum", pkg: "fmt", typ: $funcType([$Int32], [], false)}, {prop: "missingArg", name: "missingArg", pkg: "fmt", typ: $funcType([$Int32], [], false)}, {prop: "doPrintf", name: "doPrintf", pkg: "fmt", typ: $funcType([$String, sliceType], [], false)}, {prop: "doPrint", name: "doPrint", pkg: "fmt", typ: $funcType([sliceType], [], false)}, {prop: "doPrintln", name: "doPrintln", pkg: "fmt", typ: $funcType([sliceType], [], false)}];
  22439. ptrType$5.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "getRune", name: "getRune", pkg: "fmt", typ: $funcType([], [$Int32], false)}, {prop: "mustReadRune", name: "mustReadRune", pkg: "fmt", typ: $funcType([], [$Int32], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "error", name: "error", pkg: "fmt", typ: $funcType([$error], [], false)}, {prop: "errorString", name: "errorString", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "Token", name: "Token", pkg: "", typ: $funcType([$Bool, funcType], [sliceType$2, $error], false)}, {prop: "free", name: "free", pkg: "fmt", typ: $funcType([ssave], [], false)}, {prop: "SkipSpace", name: "SkipSpace", pkg: "", typ: $funcType([], [], false)}, {prop: "token", name: "token", pkg: "fmt", typ: $funcType([$Bool, funcType], [sliceType$2], false)}, {prop: "consume", name: "consume", pkg: "fmt", typ: $funcType([$String, $Bool], [$Bool], false)}, {prop: "peek", name: "peek", pkg: "fmt", typ: $funcType([$String], [$Bool], false)}, {prop: "notEOF", name: "notEOF", pkg: "fmt", typ: $funcType([], [], false)}, {prop: "accept", name: "accept", pkg: "fmt", typ: $funcType([$String], [$Bool], false)}, {prop: "okVerb", name: "okVerb", pkg: "fmt", typ: $funcType([$Int32, $String, $String], [$Bool], false)}, {prop: "scanBool", name: "scanBool", pkg: "fmt", typ: $funcType([$Int32], [$Bool], false)}, {prop: "getBase", name: "getBase", pkg: "fmt", typ: $funcType([$Int32], [$Int, $String], false)}, {prop: "scanNumber", name: "scanNumber", pkg: "fmt", typ: $funcType([$String, $Bool], [$String], false)}, {prop: "scanRune", name: "scanRune", pkg: "fmt", typ: $funcType([$Int], [$Int64], false)}, {prop: "scanBasePrefix", name: "scanBasePrefix", pkg: "fmt", typ: $funcType([], [$Int, $String, $Bool], false)}, {prop: "scanInt", name: "scanInt", pkg: "fmt", typ: $funcType([$Int32, $Int], [$Int64], false)}, {prop: "scanUint", name: "scanUint", pkg: "fmt", typ: $funcType([$Int32, $Int], [$Uint64], false)}, {prop: "floatToken", name: "floatToken", pkg: "fmt", typ: $funcType([], [$String], false)}, {prop: "complexTokens", name: "complexTokens", pkg: "fmt", typ: $funcType([], [$String, $String], false)}, {prop: "convertFloat", name: "convertFloat", pkg: "fmt", typ: $funcType([$String, $Int], [$Float64], false)}, {prop: "scanComplex", name: "scanComplex", pkg: "fmt", typ: $funcType([$Int32, $Int], [$Complex128], false)}, {prop: "convertString", name: "convertString", pkg: "fmt", typ: $funcType([$Int32], [$String], false)}, {prop: "quotedString", name: "quotedString", pkg: "fmt", typ: $funcType([], [$String], false)}, {prop: "hexByte", name: "hexByte", pkg: "fmt", typ: $funcType([], [$Uint8, $Bool], false)}, {prop: "hexString", name: "hexString", pkg: "fmt", typ: $funcType([], [$String], false)}, {prop: "scanOne", name: "scanOne", pkg: "fmt", typ: $funcType([$Int32, $emptyInterface], [], false)}, {prop: "doScan", name: "doScan", pkg: "fmt", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "advance", name: "advance", pkg: "fmt", typ: $funcType([$String], [$Int], false)}, {prop: "doScanf", name: "doScanf", pkg: "fmt", typ: $funcType([$String, sliceType], [$Int, $error], false)}];
  22440. fmtFlags.init("fmt", [{prop: "widPresent", name: "widPresent", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "precPresent", name: "precPresent", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "minus", name: "minus", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "plus", name: "plus", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sharp", name: "sharp", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "space", name: "space", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "zero", name: "zero", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "plusV", name: "plusV", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sharpV", name: "sharpV", embedded: false, exported: false, typ: $Bool, tag: ""}]);
  22441. fmt.init("fmt", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "fmtFlags", name: "fmtFlags", embedded: true, exported: false, typ: fmtFlags, tag: ""}, {prop: "wid", name: "wid", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "prec", name: "prec", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "intbuf", name: "intbuf", embedded: false, exported: false, typ: arrayType, tag: ""}]);
  22442. State.init([{prop: "Flag", name: "Flag", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "Precision", name: "Precision", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}]);
  22443. Formatter.init([{prop: "Format", name: "Format", pkg: "", typ: $funcType([State, $Int32], [], false)}]);
  22444. Stringer.init([{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]);
  22445. GoStringer.init([{prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]);
  22446. buffer.init($Uint8);
  22447. pp.init("fmt", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: buffer, tag: ""}, {prop: "arg", name: "arg", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "value", name: "value", embedded: false, exported: false, typ: reflect.Value, tag: ""}, {prop: "fmt", name: "fmt", embedded: false, exported: false, typ: fmt, tag: ""}, {prop: "reordered", name: "reordered", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "goodArgNum", name: "goodArgNum", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "panicking", name: "panicking", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "erroring", name: "erroring", embedded: false, exported: false, typ: $Bool, tag: ""}]);
  22448. scanError.init("fmt", [{prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]);
  22449. ss.init("fmt", [{prop: "rs", name: "rs", embedded: false, exported: false, typ: io.RuneScanner, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: buffer, tag: ""}, {prop: "count", name: "count", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "atEOF", name: "atEOF", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "ssave", name: "ssave", embedded: true, exported: false, typ: ssave, tag: ""}]);
  22450. ssave.init("fmt", [{prop: "validSave", name: "validSave", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "nlIsEnd", name: "nlIsEnd", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "nlIsSpace", name: "nlIsSpace", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "argLimit", name: "argLimit", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "limit", name: "limit", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "maxWid", name: "maxWid", embedded: false, exported: false, typ: $Int, tag: ""}]);
  22451. $init = function() {
  22452. $pkg.$init = function() {};
  22453. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  22454. $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  22455. $r = fmtsort.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  22456. $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  22457. $r = math.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  22458. $r = os.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  22459. $r = reflect.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  22460. $r = strconv.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  22461. $r = sync.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  22462. $r = utf8.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  22463. ppFree = new sync.Pool.ptr(0, 0, sliceType.nil, (function() {
  22464. return new pp.ptr(buffer.nil, $ifaceNil, new reflect.Value.ptr(ptrType.nil, 0, 0), new fmt.ptr(ptrType$1.nil, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false), 0, 0, arrayType.zero()), false, false, false, false);
  22465. }));
  22466. space = new sliceType$1([$toNativeArray($kindUint16, [9, 13]), $toNativeArray($kindUint16, [32, 32]), $toNativeArray($kindUint16, [133, 133]), $toNativeArray($kindUint16, [160, 160]), $toNativeArray($kindUint16, [5760, 5760]), $toNativeArray($kindUint16, [8192, 8202]), $toNativeArray($kindUint16, [8232, 8233]), $toNativeArray($kindUint16, [8239, 8239]), $toNativeArray($kindUint16, [8287, 8287]), $toNativeArray($kindUint16, [12288, 12288])]);
  22467. ssFree = new sync.Pool.ptr(0, 0, sliceType.nil, (function() {
  22468. return new ss.ptr($ifaceNil, buffer.nil, 0, false, new ssave.ptr(false, false, false, 0, 0, 0));
  22469. }));
  22470. complexError = errors.New("syntax error scanning complex number");
  22471. boolError = errors.New("syntax error scanning boolean");
  22472. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  22473. };
  22474. $pkg.$init = $init;
  22475. return $pkg;
  22476. })();
  22477. $packages["bytes"] = (function() {
  22478. var $pkg = {}, $init, errors, bytealg, io, unicode, utf8, Reader, sliceType, ptrType$2, errNegativeRead, IndexByte, Equal, HasPrefix, Repeat, Index, indexRabinKarp, hashStr, NewReader;
  22479. errors = $packages["errors"];
  22480. bytealg = $packages["internal/bytealg"];
  22481. io = $packages["io"];
  22482. unicode = $packages["unicode"];
  22483. utf8 = $packages["unicode/utf8"];
  22484. Reader = $pkg.Reader = $newType(0, $kindStruct, "bytes.Reader", true, "bytes", true, function(s_, i_, prevRune_) {
  22485. this.$val = this;
  22486. if (arguments.length === 0) {
  22487. this.s = sliceType.nil;
  22488. this.i = new $Int64(0, 0);
  22489. this.prevRune = 0;
  22490. return;
  22491. }
  22492. this.s = s_;
  22493. this.i = i_;
  22494. this.prevRune = prevRune_;
  22495. });
  22496. sliceType = $sliceType($Uint8);
  22497. ptrType$2 = $ptrType(Reader);
  22498. IndexByte = function(s, c) {
  22499. var _i, _ref, b, c, i, s;
  22500. _ref = s;
  22501. _i = 0;
  22502. while (true) {
  22503. if (!(_i < _ref.$length)) { break; }
  22504. i = _i;
  22505. b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  22506. if (b === c) {
  22507. return i;
  22508. }
  22509. _i++;
  22510. }
  22511. return -1;
  22512. };
  22513. $pkg.IndexByte = IndexByte;
  22514. Equal = function(a, b) {
  22515. var _i, _ref, a, b, c, i;
  22516. if (!((a.$length === b.$length))) {
  22517. return false;
  22518. }
  22519. _ref = a;
  22520. _i = 0;
  22521. while (true) {
  22522. if (!(_i < _ref.$length)) { break; }
  22523. i = _i;
  22524. c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  22525. if (!((c === ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i])))) {
  22526. return false;
  22527. }
  22528. _i++;
  22529. }
  22530. return true;
  22531. };
  22532. $pkg.Equal = Equal;
  22533. HasPrefix = function(s, prefix) {
  22534. var prefix, s;
  22535. return s.$length >= prefix.$length && Equal($subslice(s, 0, prefix.$length), prefix);
  22536. };
  22537. $pkg.HasPrefix = HasPrefix;
  22538. Repeat = function(b, count) {
  22539. var _q, b, bp, count, nb;
  22540. if (count < 0) {
  22541. $panic(new $String("bytes: negative Repeat count"));
  22542. } else if (count > 0 && !(((_q = ($imul(b.$length, count)) / count, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) === b.$length))) {
  22543. $panic(new $String("bytes: Repeat count causes overflow"));
  22544. }
  22545. nb = $makeSlice(sliceType, ($imul(b.$length, count)));
  22546. bp = $copySlice(nb, b);
  22547. while (true) {
  22548. if (!(bp < nb.$length)) { break; }
  22549. $copySlice($subslice(nb, bp), $subslice(nb, 0, bp));
  22550. bp = $imul(bp, (2));
  22551. }
  22552. return nb;
  22553. };
  22554. $pkg.Repeat = Repeat;
  22555. Index = function(s, sep) {
  22556. var c0, c0$1, c1, c1$1, fails, fails$1, i, i$1, j, n, o, o$1, r, s, sep, t, t$1, x, x$1;
  22557. n = sep.$length;
  22558. if ((n === 0)) {
  22559. return 0;
  22560. } else if ((n === 1)) {
  22561. return IndexByte(s, (0 >= sep.$length ? ($throwRuntimeError("index out of range"), undefined) : sep.$array[sep.$offset + 0]));
  22562. } else if ((n === s.$length)) {
  22563. if (Equal(sep, s)) {
  22564. return 0;
  22565. }
  22566. return -1;
  22567. } else if (n > s.$length) {
  22568. return -1;
  22569. } else if (n <= bytealg.MaxLen) {
  22570. if (s.$length <= 0) {
  22571. return bytealg.Index(s, sep);
  22572. }
  22573. c0 = (0 >= sep.$length ? ($throwRuntimeError("index out of range"), undefined) : sep.$array[sep.$offset + 0]);
  22574. c1 = (1 >= sep.$length ? ($throwRuntimeError("index out of range"), undefined) : sep.$array[sep.$offset + 1]);
  22575. i = 0;
  22576. t = (s.$length - n >> 0) + 1 >> 0;
  22577. fails = 0;
  22578. while (true) {
  22579. if (!(i < t)) { break; }
  22580. if (!((((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]) === c0))) {
  22581. o = IndexByte($subslice(s, i, t), c0);
  22582. if (o < 0) {
  22583. return -1;
  22584. }
  22585. i = i + (o) >> 0;
  22586. }
  22587. if (((x = i + 1 >> 0, ((x < 0 || x >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x])) === c1) && Equal($subslice(s, i, (i + n >> 0)), sep)) {
  22588. return i;
  22589. }
  22590. fails = fails + (1) >> 0;
  22591. i = i + (1) >> 0;
  22592. if (fails > bytealg.Cutover(i)) {
  22593. r = bytealg.Index($subslice(s, i), sep);
  22594. if (r >= 0) {
  22595. return r + i >> 0;
  22596. }
  22597. return -1;
  22598. }
  22599. }
  22600. return -1;
  22601. }
  22602. c0$1 = (0 >= sep.$length ? ($throwRuntimeError("index out of range"), undefined) : sep.$array[sep.$offset + 0]);
  22603. c1$1 = (1 >= sep.$length ? ($throwRuntimeError("index out of range"), undefined) : sep.$array[sep.$offset + 1]);
  22604. i$1 = 0;
  22605. fails$1 = 0;
  22606. t$1 = (s.$length - n >> 0) + 1 >> 0;
  22607. while (true) {
  22608. if (!(i$1 < t$1)) { break; }
  22609. if (!((((i$1 < 0 || i$1 >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i$1]) === c0$1))) {
  22610. o$1 = IndexByte($subslice(s, i$1, t$1), c0$1);
  22611. if (o$1 < 0) {
  22612. break;
  22613. }
  22614. i$1 = i$1 + (o$1) >> 0;
  22615. }
  22616. if (((x$1 = i$1 + 1 >> 0, ((x$1 < 0 || x$1 >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x$1])) === c1$1) && Equal($subslice(s, i$1, (i$1 + n >> 0)), sep)) {
  22617. return i$1;
  22618. }
  22619. i$1 = i$1 + (1) >> 0;
  22620. fails$1 = fails$1 + (1) >> 0;
  22621. if (fails$1 >= (4 + (i$1 >> 4 >> 0) >> 0) && i$1 < t$1) {
  22622. j = indexRabinKarp($subslice(s, i$1), sep);
  22623. if (j < 0) {
  22624. return -1;
  22625. }
  22626. return i$1 + j >> 0;
  22627. }
  22628. }
  22629. return -1;
  22630. };
  22631. $pkg.Index = Index;
  22632. indexRabinKarp = function(s, sep) {
  22633. var _tuple, h, hashsep, i, i$1, n, pow, s, sep, x;
  22634. _tuple = hashStr(sep);
  22635. hashsep = _tuple[0];
  22636. pow = _tuple[1];
  22637. n = sep.$length;
  22638. h = 0;
  22639. i = 0;
  22640. while (true) {
  22641. if (!(i < n)) { break; }
  22642. h = ($imul(h, 16777619) >>> 0) + ((((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]) >>> 0)) >>> 0;
  22643. i = i + (1) >> 0;
  22644. }
  22645. if ((h === hashsep) && Equal($subslice(s, 0, n), sep)) {
  22646. return 0;
  22647. }
  22648. i$1 = n;
  22649. while (true) {
  22650. if (!(i$1 < s.$length)) { break; }
  22651. h = $imul(h, (16777619)) >>> 0;
  22652. h = h + (((((i$1 < 0 || i$1 >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i$1]) >>> 0))) >>> 0;
  22653. h = h - (($imul(pow, (((x = i$1 - n >> 0, ((x < 0 || x >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x])) >>> 0))) >>> 0)) >>> 0;
  22654. i$1 = i$1 + (1) >> 0;
  22655. if ((h === hashsep) && Equal($subslice(s, (i$1 - n >> 0), i$1), sep)) {
  22656. return i$1 - n >> 0;
  22657. }
  22658. }
  22659. return -1;
  22660. };
  22661. hashStr = function(sep) {
  22662. var _tmp, _tmp$1, hash, i, i$1, pow, sep, sq;
  22663. hash = 0;
  22664. i = 0;
  22665. while (true) {
  22666. if (!(i < sep.$length)) { break; }
  22667. hash = ($imul(hash, 16777619) >>> 0) + ((((i < 0 || i >= sep.$length) ? ($throwRuntimeError("index out of range"), undefined) : sep.$array[sep.$offset + i]) >>> 0)) >>> 0;
  22668. i = i + (1) >> 0;
  22669. }
  22670. _tmp = 1;
  22671. _tmp$1 = 16777619;
  22672. pow = _tmp;
  22673. sq = _tmp$1;
  22674. i$1 = sep.$length;
  22675. while (true) {
  22676. if (!(i$1 > 0)) { break; }
  22677. if (!(((i$1 & 1) === 0))) {
  22678. pow = $imul(pow, (sq)) >>> 0;
  22679. }
  22680. sq = $imul(sq, (sq)) >>> 0;
  22681. i$1 = (i$1 >> $min((1), 31)) >> 0;
  22682. }
  22683. return [hash, pow];
  22684. };
  22685. Reader.ptr.prototype.Len = function() {
  22686. var r, x, x$1, x$2, x$3, x$4;
  22687. r = this;
  22688. if ((x = r.i, x$1 = (new $Int64(0, r.s.$length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) {
  22689. return 0;
  22690. }
  22691. return (((x$2 = (x$3 = (new $Int64(0, r.s.$length)), x$4 = r.i, new $Int64(x$3.$high - x$4.$high, x$3.$low - x$4.$low)), x$2.$low + ((x$2.$high >> 31) * 4294967296)) >> 0));
  22692. };
  22693. Reader.prototype.Len = function() { return this.$val.Len(); };
  22694. Reader.ptr.prototype.Size = function() {
  22695. var r;
  22696. r = this;
  22697. return (new $Int64(0, r.s.$length));
  22698. };
  22699. Reader.prototype.Size = function() { return this.$val.Size(); };
  22700. Reader.ptr.prototype.Read = function(b) {
  22701. var _tmp, _tmp$1, b, err, n, r, x, x$1, x$2, x$3;
  22702. n = 0;
  22703. err = $ifaceNil;
  22704. r = this;
  22705. if ((x = r.i, x$1 = (new $Int64(0, r.s.$length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) {
  22706. _tmp = 0;
  22707. _tmp$1 = io.EOF;
  22708. n = _tmp;
  22709. err = _tmp$1;
  22710. return [n, err];
  22711. }
  22712. r.prevRune = -1;
  22713. n = $copySlice(b, $subslice(r.s, $flatten64(r.i)));
  22714. r.i = (x$2 = r.i, x$3 = (new $Int64(0, n)), new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low));
  22715. return [n, err];
  22716. };
  22717. Reader.prototype.Read = function(b) { return this.$val.Read(b); };
  22718. Reader.ptr.prototype.ReadAt = function(b, off) {
  22719. var _tmp, _tmp$1, _tmp$2, _tmp$3, b, err, n, off, r, x;
  22720. n = 0;
  22721. err = $ifaceNil;
  22722. r = this;
  22723. if ((off.$high < 0 || (off.$high === 0 && off.$low < 0))) {
  22724. _tmp = 0;
  22725. _tmp$1 = errors.New("bytes.Reader.ReadAt: negative offset");
  22726. n = _tmp;
  22727. err = _tmp$1;
  22728. return [n, err];
  22729. }
  22730. if ((x = (new $Int64(0, r.s.$length)), (off.$high > x.$high || (off.$high === x.$high && off.$low >= x.$low)))) {
  22731. _tmp$2 = 0;
  22732. _tmp$3 = io.EOF;
  22733. n = _tmp$2;
  22734. err = _tmp$3;
  22735. return [n, err];
  22736. }
  22737. n = $copySlice(b, $subslice(r.s, $flatten64(off)));
  22738. if (n < b.$length) {
  22739. err = io.EOF;
  22740. }
  22741. return [n, err];
  22742. };
  22743. Reader.prototype.ReadAt = function(b, off) { return this.$val.ReadAt(b, off); };
  22744. Reader.ptr.prototype.ReadByte = function() {
  22745. var b, r, x, x$1, x$2, x$3, x$4, x$5;
  22746. r = this;
  22747. r.prevRune = -1;
  22748. if ((x = r.i, x$1 = (new $Int64(0, r.s.$length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) {
  22749. return [0, io.EOF];
  22750. }
  22751. b = (x$2 = r.s, x$3 = r.i, (($flatten64(x$3) < 0 || $flatten64(x$3) >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + $flatten64(x$3)]));
  22752. r.i = (x$4 = r.i, x$5 = new $Int64(0, 1), new $Int64(x$4.$high + x$5.$high, x$4.$low + x$5.$low));
  22753. return [b, $ifaceNil];
  22754. };
  22755. Reader.prototype.ReadByte = function() { return this.$val.ReadByte(); };
  22756. Reader.ptr.prototype.UnreadByte = function() {
  22757. var r, x, x$1, x$2;
  22758. r = this;
  22759. if ((x = r.i, (x.$high < 0 || (x.$high === 0 && x.$low <= 0)))) {
  22760. return errors.New("bytes.Reader.UnreadByte: at beginning of slice");
  22761. }
  22762. r.prevRune = -1;
  22763. r.i = (x$1 = r.i, x$2 = new $Int64(0, 1), new $Int64(x$1.$high - x$2.$high, x$1.$low - x$2.$low));
  22764. return $ifaceNil;
  22765. };
  22766. Reader.prototype.UnreadByte = function() { return this.$val.UnreadByte(); };
  22767. Reader.ptr.prototype.ReadRune = function() {
  22768. var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, c, ch, err, r, size, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8;
  22769. ch = 0;
  22770. size = 0;
  22771. err = $ifaceNil;
  22772. r = this;
  22773. if ((x = r.i, x$1 = (new $Int64(0, r.s.$length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) {
  22774. r.prevRune = -1;
  22775. _tmp = 0;
  22776. _tmp$1 = 0;
  22777. _tmp$2 = io.EOF;
  22778. ch = _tmp;
  22779. size = _tmp$1;
  22780. err = _tmp$2;
  22781. return [ch, size, err];
  22782. }
  22783. r.prevRune = (((x$2 = r.i, x$2.$low + ((x$2.$high >> 31) * 4294967296)) >> 0));
  22784. c = (x$3 = r.s, x$4 = r.i, (($flatten64(x$4) < 0 || $flatten64(x$4) >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + $flatten64(x$4)]));
  22785. if (c < 128) {
  22786. r.i = (x$5 = r.i, x$6 = new $Int64(0, 1), new $Int64(x$5.$high + x$6.$high, x$5.$low + x$6.$low));
  22787. _tmp$3 = ((c >> 0));
  22788. _tmp$4 = 1;
  22789. _tmp$5 = $ifaceNil;
  22790. ch = _tmp$3;
  22791. size = _tmp$4;
  22792. err = _tmp$5;
  22793. return [ch, size, err];
  22794. }
  22795. _tuple = utf8.DecodeRune($subslice(r.s, $flatten64(r.i)));
  22796. ch = _tuple[0];
  22797. size = _tuple[1];
  22798. r.i = (x$7 = r.i, x$8 = (new $Int64(0, size)), new $Int64(x$7.$high + x$8.$high, x$7.$low + x$8.$low));
  22799. return [ch, size, err];
  22800. };
  22801. Reader.prototype.ReadRune = function() { return this.$val.ReadRune(); };
  22802. Reader.ptr.prototype.UnreadRune = function() {
  22803. var r, x;
  22804. r = this;
  22805. if ((x = r.i, (x.$high < 0 || (x.$high === 0 && x.$low <= 0)))) {
  22806. return errors.New("bytes.Reader.UnreadRune: at beginning of slice");
  22807. }
  22808. if (r.prevRune < 0) {
  22809. return errors.New("bytes.Reader.UnreadRune: previous operation was not ReadRune");
  22810. }
  22811. r.i = (new $Int64(0, r.prevRune));
  22812. r.prevRune = -1;
  22813. return $ifaceNil;
  22814. };
  22815. Reader.prototype.UnreadRune = function() { return this.$val.UnreadRune(); };
  22816. Reader.ptr.prototype.Seek = function(offset, whence) {
  22817. var _1, abs, offset, r, whence, x, x$1;
  22818. r = this;
  22819. r.prevRune = -1;
  22820. abs = new $Int64(0, 0);
  22821. _1 = whence;
  22822. if (_1 === (0)) {
  22823. abs = offset;
  22824. } else if (_1 === (1)) {
  22825. abs = (x = r.i, new $Int64(x.$high + offset.$high, x.$low + offset.$low));
  22826. } else if (_1 === (2)) {
  22827. abs = (x$1 = (new $Int64(0, r.s.$length)), new $Int64(x$1.$high + offset.$high, x$1.$low + offset.$low));
  22828. } else {
  22829. return [new $Int64(0, 0), errors.New("bytes.Reader.Seek: invalid whence")];
  22830. }
  22831. if ((abs.$high < 0 || (abs.$high === 0 && abs.$low < 0))) {
  22832. return [new $Int64(0, 0), errors.New("bytes.Reader.Seek: negative position")];
  22833. }
  22834. r.i = abs;
  22835. return [abs, $ifaceNil];
  22836. };
  22837. Reader.prototype.Seek = function(offset, whence) { return this.$val.Seek(offset, whence); };
  22838. Reader.ptr.prototype.WriteTo = function(w) {
  22839. var _r, _tmp, _tmp$1, _tuple, b, err, m, n, r, w, x, x$1, x$2, x$3, $s, $r;
  22840. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; b = $f.b; err = $f.err; m = $f.m; n = $f.n; r = $f.r; w = $f.w; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  22841. n = new $Int64(0, 0);
  22842. err = $ifaceNil;
  22843. r = this;
  22844. r.prevRune = -1;
  22845. if ((x = r.i, x$1 = (new $Int64(0, r.s.$length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) {
  22846. _tmp = new $Int64(0, 0);
  22847. _tmp$1 = $ifaceNil;
  22848. n = _tmp;
  22849. err = _tmp$1;
  22850. $s = -1; return [n, err];
  22851. }
  22852. b = $subslice(r.s, $flatten64(r.i));
  22853. _r = w.Write(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  22854. _tuple = _r;
  22855. m = _tuple[0];
  22856. err = _tuple[1];
  22857. if (m > b.$length) {
  22858. $panic(new $String("bytes.Reader.WriteTo: invalid Write count"));
  22859. }
  22860. r.i = (x$2 = r.i, x$3 = (new $Int64(0, m)), new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low));
  22861. n = (new $Int64(0, m));
  22862. if (!((m === b.$length)) && $interfaceIsEqual(err, $ifaceNil)) {
  22863. err = io.ErrShortWrite;
  22864. }
  22865. $s = -1; return [n, err];
  22866. /* */ } return; } if ($f === undefined) { $f = { $blk: Reader.ptr.prototype.WriteTo }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.m = m; $f.n = n; $f.r = r; $f.w = w; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.$s = $s; $f.$r = $r; return $f;
  22867. };
  22868. Reader.prototype.WriteTo = function(w) { return this.$val.WriteTo(w); };
  22869. Reader.ptr.prototype.Reset = function(b) {
  22870. var b, r;
  22871. r = this;
  22872. Reader.copy(r, new Reader.ptr(b, new $Int64(0, 0), -1));
  22873. };
  22874. Reader.prototype.Reset = function(b) { return this.$val.Reset(b); };
  22875. NewReader = function(b) {
  22876. var b;
  22877. return new Reader.ptr(b, new $Int64(0, 0), -1);
  22878. };
  22879. $pkg.NewReader = NewReader;
  22880. ptrType$2.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType, $Int64], [$Int, $error], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([sliceType], [], false)}];
  22881. Reader.init("bytes", [{prop: "s", name: "s", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "prevRune", name: "prevRune", embedded: false, exported: false, typ: $Int, tag: ""}]);
  22882. $init = function() {
  22883. $pkg.$init = function() {};
  22884. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  22885. $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  22886. $r = bytealg.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  22887. $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  22888. $r = unicode.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  22889. $r = utf8.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  22890. $pkg.ErrTooLarge = errors.New("bytes.Buffer: too large");
  22891. errNegativeRead = errors.New("bytes.Buffer: reader returned negative count from Read");
  22892. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  22893. };
  22894. $pkg.$init = $init;
  22895. return $pkg;
  22896. })();
  22897. $packages["encoding/binary"] = (function() {
  22898. var $pkg = {}, $init, errors, io, math, reflect, ByteOrder, littleEndian, bigEndian, decoder, encoder, sliceType, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, sliceType$1, sliceType$2, sliceType$3, sliceType$4, sliceType$5, sliceType$6, sliceType$7, sliceType$8, ptrType$9, ptrType$10, overflow, Read, Write, Size, dataSize, sizeof, intDataSize;
  22899. errors = $packages["errors"];
  22900. io = $packages["io"];
  22901. math = $packages["math"];
  22902. reflect = $packages["reflect"];
  22903. ByteOrder = $pkg.ByteOrder = $newType(8, $kindInterface, "binary.ByteOrder", true, "encoding/binary", true, null);
  22904. littleEndian = $pkg.littleEndian = $newType(0, $kindStruct, "binary.littleEndian", true, "encoding/binary", false, function() {
  22905. this.$val = this;
  22906. if (arguments.length === 0) {
  22907. return;
  22908. }
  22909. });
  22910. bigEndian = $pkg.bigEndian = $newType(0, $kindStruct, "binary.bigEndian", true, "encoding/binary", false, function() {
  22911. this.$val = this;
  22912. if (arguments.length === 0) {
  22913. return;
  22914. }
  22915. });
  22916. decoder = $pkg.decoder = $newType(0, $kindStruct, "binary.decoder", true, "encoding/binary", false, function(order_, buf_, offset_) {
  22917. this.$val = this;
  22918. if (arguments.length === 0) {
  22919. this.order = $ifaceNil;
  22920. this.buf = sliceType.nil;
  22921. this.offset = 0;
  22922. return;
  22923. }
  22924. this.order = order_;
  22925. this.buf = buf_;
  22926. this.offset = offset_;
  22927. });
  22928. encoder = $pkg.encoder = $newType(0, $kindStruct, "binary.encoder", true, "encoding/binary", false, function(order_, buf_, offset_) {
  22929. this.$val = this;
  22930. if (arguments.length === 0) {
  22931. this.order = $ifaceNil;
  22932. this.buf = sliceType.nil;
  22933. this.offset = 0;
  22934. return;
  22935. }
  22936. this.order = order_;
  22937. this.buf = buf_;
  22938. this.offset = offset_;
  22939. });
  22940. sliceType = $sliceType($Uint8);
  22941. ptrType = $ptrType($Bool);
  22942. ptrType$1 = $ptrType($Int8);
  22943. ptrType$2 = $ptrType($Uint8);
  22944. ptrType$3 = $ptrType($Int16);
  22945. ptrType$4 = $ptrType($Uint16);
  22946. ptrType$5 = $ptrType($Int32);
  22947. ptrType$6 = $ptrType($Uint32);
  22948. ptrType$7 = $ptrType($Int64);
  22949. ptrType$8 = $ptrType($Uint64);
  22950. sliceType$1 = $sliceType($Bool);
  22951. sliceType$2 = $sliceType($Int8);
  22952. sliceType$3 = $sliceType($Int16);
  22953. sliceType$4 = $sliceType($Uint16);
  22954. sliceType$5 = $sliceType($Int32);
  22955. sliceType$6 = $sliceType($Uint32);
  22956. sliceType$7 = $sliceType($Int64);
  22957. sliceType$8 = $sliceType($Uint64);
  22958. ptrType$9 = $ptrType(decoder);
  22959. ptrType$10 = $ptrType(encoder);
  22960. littleEndian.ptr.prototype.Uint16 = function(b) {
  22961. var b;
  22962. $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]));
  22963. return ((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) << 16 >>> 16)) | ((((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]) << 16 >>> 16)) << 8 << 16 >>> 16)) >>> 0;
  22964. };
  22965. littleEndian.prototype.Uint16 = function(b) { return this.$val.Uint16(b); };
  22966. littleEndian.ptr.prototype.PutUint16 = function(b, v) {
  22967. var b, v;
  22968. $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]));
  22969. (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = ((v << 24 >>> 24)));
  22970. (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = (((v >>> 8 << 16 >>> 16) << 24 >>> 24)));
  22971. };
  22972. littleEndian.prototype.PutUint16 = function(b, v) { return this.$val.PutUint16(b, v); };
  22973. littleEndian.ptr.prototype.Uint32 = function(b) {
  22974. var b;
  22975. $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]));
  22976. return ((((((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) >>> 0)) | ((((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]) >>> 0)) << 8 >>> 0)) >>> 0) | ((((2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]) >>> 0)) << 16 >>> 0)) >>> 0) | ((((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]) >>> 0)) << 24 >>> 0)) >>> 0;
  22977. };
  22978. littleEndian.prototype.Uint32 = function(b) { return this.$val.Uint32(b); };
  22979. littleEndian.ptr.prototype.PutUint32 = function(b, v) {
  22980. var b, v;
  22981. $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]));
  22982. (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = ((v << 24 >>> 24)));
  22983. (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = (((v >>> 8 >>> 0) << 24 >>> 24)));
  22984. (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2] = (((v >>> 16 >>> 0) << 24 >>> 24)));
  22985. (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3] = (((v >>> 24 >>> 0) << 24 >>> 24)));
  22986. };
  22987. littleEndian.prototype.PutUint32 = function(b, v) { return this.$val.PutUint32(b, v); };
  22988. littleEndian.ptr.prototype.Uint64 = function(b) {
  22989. var b, x, x$1, x$10, x$11, x$12, x$13, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
  22990. $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]));
  22991. return (x = (x$1 = (x$2 = (x$3 = (x$4 = (x$5 = (x$6 = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$7 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x$6.$high | x$7.$high, (x$6.$low | x$7.$low) >>> 0)), x$8 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 16), new $Uint64(x$5.$high | x$8.$high, (x$5.$low | x$8.$low) >>> 0)), x$9 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 24), new $Uint64(x$4.$high | x$9.$high, (x$4.$low | x$9.$low) >>> 0)), x$10 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 32), new $Uint64(x$3.$high | x$10.$high, (x$3.$low | x$10.$low) >>> 0)), x$11 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 40), new $Uint64(x$2.$high | x$11.$high, (x$2.$low | x$11.$low) >>> 0)), x$12 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 48), new $Uint64(x$1.$high | x$12.$high, (x$1.$low | x$12.$low) >>> 0)), x$13 = $shiftLeft64((new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), 56), new $Uint64(x.$high | x$13.$high, (x.$low | x$13.$low) >>> 0));
  22992. };
  22993. littleEndian.prototype.Uint64 = function(b) { return this.$val.Uint64(b); };
  22994. littleEndian.ptr.prototype.PutUint64 = function(b, v) {
  22995. var b, v;
  22996. $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]));
  22997. (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = ((v.$low << 24 >>> 24)));
  22998. (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = (($shiftRightUint64(v, 8).$low << 24 >>> 24)));
  22999. (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2] = (($shiftRightUint64(v, 16).$low << 24 >>> 24)));
  23000. (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3] = (($shiftRightUint64(v, 24).$low << 24 >>> 24)));
  23001. (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4] = (($shiftRightUint64(v, 32).$low << 24 >>> 24)));
  23002. (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5] = (($shiftRightUint64(v, 40).$low << 24 >>> 24)));
  23003. (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6] = (($shiftRightUint64(v, 48).$low << 24 >>> 24)));
  23004. (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7] = (($shiftRightUint64(v, 56).$low << 24 >>> 24)));
  23005. };
  23006. littleEndian.prototype.PutUint64 = function(b, v) { return this.$val.PutUint64(b, v); };
  23007. littleEndian.ptr.prototype.String = function() {
  23008. return "LittleEndian";
  23009. };
  23010. littleEndian.prototype.String = function() { return this.$val.String(); };
  23011. littleEndian.ptr.prototype.GoString = function() {
  23012. return "binary.LittleEndian";
  23013. };
  23014. littleEndian.prototype.GoString = function() { return this.$val.GoString(); };
  23015. bigEndian.ptr.prototype.Uint16 = function(b) {
  23016. var b;
  23017. $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]));
  23018. return ((((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]) << 16 >>> 16)) | ((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) << 16 >>> 16)) << 8 << 16 >>> 16)) >>> 0;
  23019. };
  23020. bigEndian.prototype.Uint16 = function(b) { return this.$val.Uint16(b); };
  23021. bigEndian.ptr.prototype.PutUint16 = function(b, v) {
  23022. var b, v;
  23023. $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]));
  23024. (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = (((v >>> 8 << 16 >>> 16) << 24 >>> 24)));
  23025. (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = ((v << 24 >>> 24)));
  23026. };
  23027. bigEndian.prototype.PutUint16 = function(b, v) { return this.$val.PutUint16(b, v); };
  23028. bigEndian.ptr.prototype.Uint32 = function(b) {
  23029. var b;
  23030. $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]));
  23031. return ((((((((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]) >>> 0)) | ((((2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]) >>> 0)) << 8 >>> 0)) >>> 0) | ((((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]) >>> 0)) << 16 >>> 0)) >>> 0) | ((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) >>> 0)) << 24 >>> 0)) >>> 0;
  23032. };
  23033. bigEndian.prototype.Uint32 = function(b) { return this.$val.Uint32(b); };
  23034. bigEndian.ptr.prototype.PutUint32 = function(b, v) {
  23035. var b, v;
  23036. $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]));
  23037. (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = (((v >>> 24 >>> 0) << 24 >>> 24)));
  23038. (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = (((v >>> 16 >>> 0) << 24 >>> 24)));
  23039. (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2] = (((v >>> 8 >>> 0) << 24 >>> 24)));
  23040. (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3] = ((v << 24 >>> 24)));
  23041. };
  23042. bigEndian.prototype.PutUint32 = function(b, v) { return this.$val.PutUint32(b, v); };
  23043. bigEndian.ptr.prototype.Uint64 = function(b) {
  23044. var b, x, x$1, x$10, x$11, x$12, x$13, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
  23045. $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]));
  23046. return (x = (x$1 = (x$2 = (x$3 = (x$4 = (x$5 = (x$6 = (new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), x$7 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 8), new $Uint64(x$6.$high | x$7.$high, (x$6.$low | x$7.$low) >>> 0)), x$8 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 16), new $Uint64(x$5.$high | x$8.$high, (x$5.$low | x$8.$low) >>> 0)), x$9 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 24), new $Uint64(x$4.$high | x$9.$high, (x$4.$low | x$9.$low) >>> 0)), x$10 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 32), new $Uint64(x$3.$high | x$10.$high, (x$3.$low | x$10.$low) >>> 0)), x$11 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 40), new $Uint64(x$2.$high | x$11.$high, (x$2.$low | x$11.$low) >>> 0)), x$12 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 48), new $Uint64(x$1.$high | x$12.$high, (x$1.$low | x$12.$low) >>> 0)), x$13 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 56), new $Uint64(x.$high | x$13.$high, (x.$low | x$13.$low) >>> 0));
  23047. };
  23048. bigEndian.prototype.Uint64 = function(b) { return this.$val.Uint64(b); };
  23049. bigEndian.ptr.prototype.PutUint64 = function(b, v) {
  23050. var b, v;
  23051. $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]));
  23052. (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = (($shiftRightUint64(v, 56).$low << 24 >>> 24)));
  23053. (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = (($shiftRightUint64(v, 48).$low << 24 >>> 24)));
  23054. (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2] = (($shiftRightUint64(v, 40).$low << 24 >>> 24)));
  23055. (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3] = (($shiftRightUint64(v, 32).$low << 24 >>> 24)));
  23056. (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4] = (($shiftRightUint64(v, 24).$low << 24 >>> 24)));
  23057. (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5] = (($shiftRightUint64(v, 16).$low << 24 >>> 24)));
  23058. (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6] = (($shiftRightUint64(v, 8).$low << 24 >>> 24)));
  23059. (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7] = ((v.$low << 24 >>> 24)));
  23060. };
  23061. bigEndian.prototype.PutUint64 = function(b, v) { return this.$val.PutUint64(b, v); };
  23062. bigEndian.ptr.prototype.String = function() {
  23063. return "BigEndian";
  23064. };
  23065. bigEndian.prototype.String = function() { return this.$val.String(); };
  23066. bigEndian.ptr.prototype.GoString = function() {
  23067. return "binary.BigEndian";
  23068. };
  23069. bigEndian.prototype.GoString = function() { return this.$val.GoString(); };
  23070. Read = function(r, order, data) {
  23071. var _1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _tuple, _tuple$1, bs, d, data, data$1, data$10, data$11, data$12, data$13, data$14, data$15, data$16, data$17, data$18, data$2, data$3, data$4, data$5, data$6, data$7, data$8, data$9, err, err$1, i, i$1, i$2, i$3, i$4, i$5, i$6, i$7, n, order, r, size, v, x, x$1, x$2, x$3, $s, $r;
  23072. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _i$3 = $f._i$3; _i$4 = $f._i$4; _i$5 = $f._i$5; _i$6 = $f._i$6; _i$7 = $f._i$7; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$16 = $f._r$16; _r$17 = $f._r$17; _r$18 = $f._r$18; _r$19 = $f._r$19; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; _ref$3 = $f._ref$3; _ref$4 = $f._ref$4; _ref$5 = $f._ref$5; _ref$6 = $f._ref$6; _ref$7 = $f._ref$7; _ref$8 = $f._ref$8; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; bs = $f.bs; d = $f.d; data = $f.data; data$1 = $f.data$1; data$10 = $f.data$10; data$11 = $f.data$11; data$12 = $f.data$12; data$13 = $f.data$13; data$14 = $f.data$14; data$15 = $f.data$15; data$16 = $f.data$16; data$17 = $f.data$17; data$18 = $f.data$18; data$2 = $f.data$2; data$3 = $f.data$3; data$4 = $f.data$4; data$5 = $f.data$5; data$6 = $f.data$6; data$7 = $f.data$7; data$8 = $f.data$8; data$9 = $f.data$9; err = $f.err; err$1 = $f.err$1; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; i$3 = $f.i$3; i$4 = $f.i$4; i$5 = $f.i$5; i$6 = $f.i$6; i$7 = $f.i$7; n = $f.n; order = $f.order; r = $f.r; size = $f.size; v = $f.v; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  23073. n = intDataSize(data);
  23074. /* */ if (!((n === 0))) { $s = 1; continue; }
  23075. /* */ $s = 2; continue;
  23076. /* if (!((n === 0))) { */ case 1:
  23077. bs = $makeSlice(sliceType, n);
  23078. _r = io.ReadFull(r, bs); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  23079. _tuple = _r;
  23080. err = _tuple[1];
  23081. if (!($interfaceIsEqual(err, $ifaceNil))) {
  23082. $s = -1; return err;
  23083. }
  23084. _ref = data;
  23085. /* */ if ($assertType(_ref, ptrType, true)[1]) { $s = 4; continue; }
  23086. /* */ if ($assertType(_ref, ptrType$1, true)[1]) { $s = 5; continue; }
  23087. /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 6; continue; }
  23088. /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 7; continue; }
  23089. /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 8; continue; }
  23090. /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 9; continue; }
  23091. /* */ if ($assertType(_ref, ptrType$6, true)[1]) { $s = 10; continue; }
  23092. /* */ if ($assertType(_ref, ptrType$7, true)[1]) { $s = 11; continue; }
  23093. /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 12; continue; }
  23094. /* */ if ($assertType(_ref, sliceType$1, true)[1]) { $s = 13; continue; }
  23095. /* */ if ($assertType(_ref, sliceType$2, true)[1]) { $s = 14; continue; }
  23096. /* */ if ($assertType(_ref, sliceType, true)[1]) { $s = 15; continue; }
  23097. /* */ if ($assertType(_ref, sliceType$3, true)[1]) { $s = 16; continue; }
  23098. /* */ if ($assertType(_ref, sliceType$4, true)[1]) { $s = 17; continue; }
  23099. /* */ if ($assertType(_ref, sliceType$5, true)[1]) { $s = 18; continue; }
  23100. /* */ if ($assertType(_ref, sliceType$6, true)[1]) { $s = 19; continue; }
  23101. /* */ if ($assertType(_ref, sliceType$7, true)[1]) { $s = 20; continue; }
  23102. /* */ if ($assertType(_ref, sliceType$8, true)[1]) { $s = 21; continue; }
  23103. /* */ $s = 22; continue;
  23104. /* if ($assertType(_ref, ptrType, true)[1]) { */ case 4:
  23105. data$1 = _ref.$val;
  23106. data$1.$set(!(((0 >= bs.$length ? ($throwRuntimeError("index out of range"), undefined) : bs.$array[bs.$offset + 0]) === 0)));
  23107. $s = 22; continue;
  23108. /* } else if ($assertType(_ref, ptrType$1, true)[1]) { */ case 5:
  23109. data$2 = _ref.$val;
  23110. data$2.$set((((0 >= bs.$length ? ($throwRuntimeError("index out of range"), undefined) : bs.$array[bs.$offset + 0]) << 24 >> 24)));
  23111. $s = 22; continue;
  23112. /* } else if ($assertType(_ref, ptrType$2, true)[1]) { */ case 6:
  23113. data$3 = _ref.$val;
  23114. data$3.$set((0 >= bs.$length ? ($throwRuntimeError("index out of range"), undefined) : bs.$array[bs.$offset + 0]));
  23115. $s = 22; continue;
  23116. /* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 7:
  23117. data$4 = _ref.$val;
  23118. _r$1 = order.Uint16(bs); /* */ $s = 23; case 23: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  23119. data$4.$set(((_r$1 << 16 >> 16)));
  23120. $s = 22; continue;
  23121. /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 8:
  23122. data$5 = _ref.$val;
  23123. _r$2 = order.Uint16(bs); /* */ $s = 24; case 24: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  23124. data$5.$set(_r$2);
  23125. $s = 22; continue;
  23126. /* } else if ($assertType(_ref, ptrType$5, true)[1]) { */ case 9:
  23127. data$6 = _ref.$val;
  23128. _r$3 = order.Uint32(bs); /* */ $s = 25; case 25: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  23129. data$6.$set(((_r$3 >> 0)));
  23130. $s = 22; continue;
  23131. /* } else if ($assertType(_ref, ptrType$6, true)[1]) { */ case 10:
  23132. data$7 = _ref.$val;
  23133. _r$4 = order.Uint32(bs); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  23134. data$7.$set(_r$4);
  23135. $s = 22; continue;
  23136. /* } else if ($assertType(_ref, ptrType$7, true)[1]) { */ case 11:
  23137. data$8 = _ref.$val;
  23138. _r$5 = order.Uint64(bs); /* */ $s = 27; case 27: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  23139. data$8.$set(((x = _r$5, new $Int64(x.$high, x.$low))));
  23140. $s = 22; continue;
  23141. /* } else if ($assertType(_ref, ptrType$8, true)[1]) { */ case 12:
  23142. data$9 = _ref.$val;
  23143. _r$6 = order.Uint64(bs); /* */ $s = 28; case 28: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  23144. data$9.$set(_r$6);
  23145. $s = 22; continue;
  23146. /* } else if ($assertType(_ref, sliceType$1, true)[1]) { */ case 13:
  23147. data$10 = _ref.$val;
  23148. _ref$1 = bs;
  23149. _i = 0;
  23150. while (true) {
  23151. if (!(_i < _ref$1.$length)) { break; }
  23152. i = _i;
  23153. x$1 = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]);
  23154. ((i < 0 || i >= data$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : data$10.$array[data$10.$offset + i] = !((x$1 === 0)));
  23155. _i++;
  23156. }
  23157. $s = 22; continue;
  23158. /* } else if ($assertType(_ref, sliceType$2, true)[1]) { */ case 14:
  23159. data$11 = _ref.$val;
  23160. _ref$2 = bs;
  23161. _i$1 = 0;
  23162. while (true) {
  23163. if (!(_i$1 < _ref$2.$length)) { break; }
  23164. i$1 = _i$1;
  23165. x$2 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]);
  23166. ((i$1 < 0 || i$1 >= data$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : data$11.$array[data$11.$offset + i$1] = ((x$2 << 24 >> 24)));
  23167. _i$1++;
  23168. }
  23169. $s = 22; continue;
  23170. /* } else if ($assertType(_ref, sliceType, true)[1]) { */ case 15:
  23171. data$12 = _ref.$val;
  23172. $copySlice(data$12, bs);
  23173. $s = 22; continue;
  23174. /* } else if ($assertType(_ref, sliceType$3, true)[1]) { */ case 16:
  23175. data$13 = _ref.$val;
  23176. _ref$3 = data$13;
  23177. _i$2 = 0;
  23178. /* while (true) { */ case 29:
  23179. /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 30; continue; }
  23180. i$2 = _i$2;
  23181. _r$7 = order.Uint16($subslice(bs, ($imul(2, i$2)))); /* */ $s = 31; case 31: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
  23182. ((i$2 < 0 || i$2 >= data$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : data$13.$array[data$13.$offset + i$2] = ((_r$7 << 16 >> 16)));
  23183. _i$2++;
  23184. /* } */ $s = 29; continue; case 30:
  23185. $s = 22; continue;
  23186. /* } else if ($assertType(_ref, sliceType$4, true)[1]) { */ case 17:
  23187. data$14 = _ref.$val;
  23188. _ref$4 = data$14;
  23189. _i$3 = 0;
  23190. /* while (true) { */ case 32:
  23191. /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 33; continue; }
  23192. i$3 = _i$3;
  23193. _r$8 = order.Uint16($subslice(bs, ($imul(2, i$3)))); /* */ $s = 34; case 34: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
  23194. ((i$3 < 0 || i$3 >= data$14.$length) ? ($throwRuntimeError("index out of range"), undefined) : data$14.$array[data$14.$offset + i$3] = _r$8);
  23195. _i$3++;
  23196. /* } */ $s = 32; continue; case 33:
  23197. $s = 22; continue;
  23198. /* } else if ($assertType(_ref, sliceType$5, true)[1]) { */ case 18:
  23199. data$15 = _ref.$val;
  23200. _ref$5 = data$15;
  23201. _i$4 = 0;
  23202. /* while (true) { */ case 35:
  23203. /* if (!(_i$4 < _ref$5.$length)) { break; } */ if(!(_i$4 < _ref$5.$length)) { $s = 36; continue; }
  23204. i$4 = _i$4;
  23205. _r$9 = order.Uint32($subslice(bs, ($imul(4, i$4)))); /* */ $s = 37; case 37: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  23206. ((i$4 < 0 || i$4 >= data$15.$length) ? ($throwRuntimeError("index out of range"), undefined) : data$15.$array[data$15.$offset + i$4] = ((_r$9 >> 0)));
  23207. _i$4++;
  23208. /* } */ $s = 35; continue; case 36:
  23209. $s = 22; continue;
  23210. /* } else if ($assertType(_ref, sliceType$6, true)[1]) { */ case 19:
  23211. data$16 = _ref.$val;
  23212. _ref$6 = data$16;
  23213. _i$5 = 0;
  23214. /* while (true) { */ case 38:
  23215. /* if (!(_i$5 < _ref$6.$length)) { break; } */ if(!(_i$5 < _ref$6.$length)) { $s = 39; continue; }
  23216. i$5 = _i$5;
  23217. _r$10 = order.Uint32($subslice(bs, ($imul(4, i$5)))); /* */ $s = 40; case 40: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
  23218. ((i$5 < 0 || i$5 >= data$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : data$16.$array[data$16.$offset + i$5] = _r$10);
  23219. _i$5++;
  23220. /* } */ $s = 38; continue; case 39:
  23221. $s = 22; continue;
  23222. /* } else if ($assertType(_ref, sliceType$7, true)[1]) { */ case 20:
  23223. data$17 = _ref.$val;
  23224. _ref$7 = data$17;
  23225. _i$6 = 0;
  23226. /* while (true) { */ case 41:
  23227. /* if (!(_i$6 < _ref$7.$length)) { break; } */ if(!(_i$6 < _ref$7.$length)) { $s = 42; continue; }
  23228. i$6 = _i$6;
  23229. _r$11 = order.Uint64($subslice(bs, ($imul(8, i$6)))); /* */ $s = 43; case 43: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
  23230. ((i$6 < 0 || i$6 >= data$17.$length) ? ($throwRuntimeError("index out of range"), undefined) : data$17.$array[data$17.$offset + i$6] = ((x$3 = _r$11, new $Int64(x$3.$high, x$3.$low))));
  23231. _i$6++;
  23232. /* } */ $s = 41; continue; case 42:
  23233. $s = 22; continue;
  23234. /* } else if ($assertType(_ref, sliceType$8, true)[1]) { */ case 21:
  23235. data$18 = _ref.$val;
  23236. _ref$8 = data$18;
  23237. _i$7 = 0;
  23238. /* while (true) { */ case 44:
  23239. /* if (!(_i$7 < _ref$8.$length)) { break; } */ if(!(_i$7 < _ref$8.$length)) { $s = 45; continue; }
  23240. i$7 = _i$7;
  23241. _r$12 = order.Uint64($subslice(bs, ($imul(8, i$7)))); /* */ $s = 46; case 46: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
  23242. ((i$7 < 0 || i$7 >= data$18.$length) ? ($throwRuntimeError("index out of range"), undefined) : data$18.$array[data$18.$offset + i$7] = _r$12);
  23243. _i$7++;
  23244. /* } */ $s = 44; continue; case 45:
  23245. /* } */ case 22:
  23246. $s = -1; return $ifaceNil;
  23247. /* } */ case 2:
  23248. _r$13 = reflect.ValueOf(data); /* */ $s = 47; case 47: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
  23249. v = _r$13;
  23250. size = -1;
  23251. _1 = $clone(v, reflect.Value).Kind();
  23252. /* */ if (_1 === (22)) { $s = 49; continue; }
  23253. /* */ if (_1 === (23)) { $s = 50; continue; }
  23254. /* */ $s = 51; continue;
  23255. /* if (_1 === (22)) { */ case 49:
  23256. _r$14 = $clone(v, reflect.Value).Elem(); /* */ $s = 52; case 52: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
  23257. v = _r$14;
  23258. _r$15 = dataSize($clone(v, reflect.Value)); /* */ $s = 53; case 53: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
  23259. size = _r$15;
  23260. $s = 51; continue;
  23261. /* } else if (_1 === (23)) { */ case 50:
  23262. _r$16 = dataSize($clone(v, reflect.Value)); /* */ $s = 54; case 54: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; }
  23263. size = _r$16;
  23264. /* } */ case 51:
  23265. case 48:
  23266. /* */ if (size < 0) { $s = 55; continue; }
  23267. /* */ $s = 56; continue;
  23268. /* if (size < 0) { */ case 55:
  23269. _r$17 = reflect.TypeOf(data).String(); /* */ $s = 57; case 57: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; }
  23270. _r$18 = errors.New("binary.Read: invalid type " + _r$17); /* */ $s = 58; case 58: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; }
  23271. $s = -1; return _r$18;
  23272. /* } */ case 56:
  23273. d = new decoder.ptr(order, $makeSlice(sliceType, size), 0);
  23274. _r$19 = io.ReadFull(r, d.buf); /* */ $s = 59; case 59: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; }
  23275. _tuple$1 = _r$19;
  23276. err$1 = _tuple$1[1];
  23277. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  23278. $s = -1; return err$1;
  23279. }
  23280. $r = d.value($clone(v, reflect.Value)); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23281. $s = -1; return $ifaceNil;
  23282. /* */ } return; } if ($f === undefined) { $f = { $blk: Read }; } $f._1 = _1; $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._i$3 = _i$3; $f._i$4 = _i$4; $f._i$5 = _i$5; $f._i$6 = _i$6; $f._i$7 = _i$7; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$16 = _r$16; $f._r$17 = _r$17; $f._r$18 = _r$18; $f._r$19 = _r$19; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f._ref$3 = _ref$3; $f._ref$4 = _ref$4; $f._ref$5 = _ref$5; $f._ref$6 = _ref$6; $f._ref$7 = _ref$7; $f._ref$8 = _ref$8; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.bs = bs; $f.d = d; $f.data = data; $f.data$1 = data$1; $f.data$10 = data$10; $f.data$11 = data$11; $f.data$12 = data$12; $f.data$13 = data$13; $f.data$14 = data$14; $f.data$15 = data$15; $f.data$16 = data$16; $f.data$17 = data$17; $f.data$18 = data$18; $f.data$2 = data$2; $f.data$3 = data$3; $f.data$4 = data$4; $f.data$5 = data$5; $f.data$6 = data$6; $f.data$7 = data$7; $f.data$8 = data$8; $f.data$9 = data$9; $f.err = err; $f.err$1 = err$1; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.i$3 = i$3; $f.i$4 = i$4; $f.i$5 = i$5; $f.i$6 = i$6; $f.i$7 = i$7; $f.n = n; $f.order = order; $f.r = r; $f.size = size; $f.v = v; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.$s = $s; $f.$r = $r; return $f;
  23283. };
  23284. $pkg.Read = Read;
  23285. Write = function(w, order, data) {
  23286. var _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _tuple, _tuple$1, bs, buf, data, e, err, err$1, i, i$1, i$2, i$3, i$4, i$5, i$6, i$7, n, order, size, v, v$1, v$10, v$11, v$12, v$13, v$14, v$15, v$16, v$17, v$18, v$19, v$2, v$20, v$21, v$22, v$23, v$24, v$25, v$26, v$27, v$3, v$4, v$5, v$6, v$7, v$8, v$9, w, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s, $r;
  23287. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _i$3 = $f._i$3; _i$4 = $f._i$4; _i$5 = $f._i$5; _i$6 = $f._i$6; _i$7 = $f._i$7; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; _ref$3 = $f._ref$3; _ref$4 = $f._ref$4; _ref$5 = $f._ref$5; _ref$6 = $f._ref$6; _ref$7 = $f._ref$7; _ref$8 = $f._ref$8; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; bs = $f.bs; buf = $f.buf; data = $f.data; e = $f.e; err = $f.err; err$1 = $f.err$1; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; i$3 = $f.i$3; i$4 = $f.i$4; i$5 = $f.i$5; i$6 = $f.i$6; i$7 = $f.i$7; n = $f.n; order = $f.order; size = $f.size; v = $f.v; v$1 = $f.v$1; v$10 = $f.v$10; v$11 = $f.v$11; v$12 = $f.v$12; v$13 = $f.v$13; v$14 = $f.v$14; v$15 = $f.v$15; v$16 = $f.v$16; v$17 = $f.v$17; v$18 = $f.v$18; v$19 = $f.v$19; v$2 = $f.v$2; v$20 = $f.v$20; v$21 = $f.v$21; v$22 = $f.v$22; v$23 = $f.v$23; v$24 = $f.v$24; v$25 = $f.v$25; v$26 = $f.v$26; v$27 = $f.v$27; v$3 = $f.v$3; v$4 = $f.v$4; v$5 = $f.v$5; v$6 = $f.v$6; v$7 = $f.v$7; v$8 = $f.v$8; v$9 = $f.v$9; w = $f.w; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  23288. n = intDataSize(data);
  23289. /* */ if (!((n === 0))) { $s = 1; continue; }
  23290. /* */ $s = 2; continue;
  23291. /* if (!((n === 0))) { */ case 1:
  23292. bs = $makeSlice(sliceType, n);
  23293. _ref = data;
  23294. /* */ if ($assertType(_ref, ptrType, true)[1]) { $s = 3; continue; }
  23295. /* */ if ($assertType(_ref, $Bool, true)[1]) { $s = 4; continue; }
  23296. /* */ if ($assertType(_ref, sliceType$1, true)[1]) { $s = 5; continue; }
  23297. /* */ if ($assertType(_ref, ptrType$1, true)[1]) { $s = 6; continue; }
  23298. /* */ if ($assertType(_ref, $Int8, true)[1]) { $s = 7; continue; }
  23299. /* */ if ($assertType(_ref, sliceType$2, true)[1]) { $s = 8; continue; }
  23300. /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 9; continue; }
  23301. /* */ if ($assertType(_ref, $Uint8, true)[1]) { $s = 10; continue; }
  23302. /* */ if ($assertType(_ref, sliceType, true)[1]) { $s = 11; continue; }
  23303. /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 12; continue; }
  23304. /* */ if ($assertType(_ref, $Int16, true)[1]) { $s = 13; continue; }
  23305. /* */ if ($assertType(_ref, sliceType$3, true)[1]) { $s = 14; continue; }
  23306. /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 15; continue; }
  23307. /* */ if ($assertType(_ref, $Uint16, true)[1]) { $s = 16; continue; }
  23308. /* */ if ($assertType(_ref, sliceType$4, true)[1]) { $s = 17; continue; }
  23309. /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 18; continue; }
  23310. /* */ if ($assertType(_ref, $Int32, true)[1]) { $s = 19; continue; }
  23311. /* */ if ($assertType(_ref, sliceType$5, true)[1]) { $s = 20; continue; }
  23312. /* */ if ($assertType(_ref, ptrType$6, true)[1]) { $s = 21; continue; }
  23313. /* */ if ($assertType(_ref, $Uint32, true)[1]) { $s = 22; continue; }
  23314. /* */ if ($assertType(_ref, sliceType$6, true)[1]) { $s = 23; continue; }
  23315. /* */ if ($assertType(_ref, ptrType$7, true)[1]) { $s = 24; continue; }
  23316. /* */ if ($assertType(_ref, $Int64, true)[1]) { $s = 25; continue; }
  23317. /* */ if ($assertType(_ref, sliceType$7, true)[1]) { $s = 26; continue; }
  23318. /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 27; continue; }
  23319. /* */ if ($assertType(_ref, $Uint64, true)[1]) { $s = 28; continue; }
  23320. /* */ if ($assertType(_ref, sliceType$8, true)[1]) { $s = 29; continue; }
  23321. /* */ $s = 30; continue;
  23322. /* if ($assertType(_ref, ptrType, true)[1]) { */ case 3:
  23323. v = _ref.$val;
  23324. if (v.$get()) {
  23325. (0 >= bs.$length ? ($throwRuntimeError("index out of range"), undefined) : bs.$array[bs.$offset + 0] = 1);
  23326. } else {
  23327. (0 >= bs.$length ? ($throwRuntimeError("index out of range"), undefined) : bs.$array[bs.$offset + 0] = 0);
  23328. }
  23329. $s = 30; continue;
  23330. /* } else if ($assertType(_ref, $Bool, true)[1]) { */ case 4:
  23331. v$1 = _ref.$val;
  23332. if (v$1) {
  23333. (0 >= bs.$length ? ($throwRuntimeError("index out of range"), undefined) : bs.$array[bs.$offset + 0] = 1);
  23334. } else {
  23335. (0 >= bs.$length ? ($throwRuntimeError("index out of range"), undefined) : bs.$array[bs.$offset + 0] = 0);
  23336. }
  23337. $s = 30; continue;
  23338. /* } else if ($assertType(_ref, sliceType$1, true)[1]) { */ case 5:
  23339. v$2 = _ref.$val;
  23340. _ref$1 = v$2;
  23341. _i = 0;
  23342. while (true) {
  23343. if (!(_i < _ref$1.$length)) { break; }
  23344. i = _i;
  23345. x = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]);
  23346. if (x) {
  23347. ((i < 0 || i >= bs.$length) ? ($throwRuntimeError("index out of range"), undefined) : bs.$array[bs.$offset + i] = 1);
  23348. } else {
  23349. ((i < 0 || i >= bs.$length) ? ($throwRuntimeError("index out of range"), undefined) : bs.$array[bs.$offset + i] = 0);
  23350. }
  23351. _i++;
  23352. }
  23353. $s = 30; continue;
  23354. /* } else if ($assertType(_ref, ptrType$1, true)[1]) { */ case 6:
  23355. v$3 = _ref.$val;
  23356. (0 >= bs.$length ? ($throwRuntimeError("index out of range"), undefined) : bs.$array[bs.$offset + 0] = ((v$3.$get() << 24 >>> 24)));
  23357. $s = 30; continue;
  23358. /* } else if ($assertType(_ref, $Int8, true)[1]) { */ case 7:
  23359. v$4 = _ref.$val;
  23360. (0 >= bs.$length ? ($throwRuntimeError("index out of range"), undefined) : bs.$array[bs.$offset + 0] = ((v$4 << 24 >>> 24)));
  23361. $s = 30; continue;
  23362. /* } else if ($assertType(_ref, sliceType$2, true)[1]) { */ case 8:
  23363. v$5 = _ref.$val;
  23364. _ref$2 = v$5;
  23365. _i$1 = 0;
  23366. while (true) {
  23367. if (!(_i$1 < _ref$2.$length)) { break; }
  23368. i$1 = _i$1;
  23369. x$1 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]);
  23370. ((i$1 < 0 || i$1 >= bs.$length) ? ($throwRuntimeError("index out of range"), undefined) : bs.$array[bs.$offset + i$1] = ((x$1 << 24 >>> 24)));
  23371. _i$1++;
  23372. }
  23373. $s = 30; continue;
  23374. /* } else if ($assertType(_ref, ptrType$2, true)[1]) { */ case 9:
  23375. v$6 = _ref.$val;
  23376. (0 >= bs.$length ? ($throwRuntimeError("index out of range"), undefined) : bs.$array[bs.$offset + 0] = v$6.$get());
  23377. $s = 30; continue;
  23378. /* } else if ($assertType(_ref, $Uint8, true)[1]) { */ case 10:
  23379. v$7 = _ref.$val;
  23380. (0 >= bs.$length ? ($throwRuntimeError("index out of range"), undefined) : bs.$array[bs.$offset + 0] = v$7);
  23381. $s = 30; continue;
  23382. /* } else if ($assertType(_ref, sliceType, true)[1]) { */ case 11:
  23383. v$8 = _ref.$val;
  23384. bs = v$8;
  23385. $s = 30; continue;
  23386. /* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 12:
  23387. v$9 = _ref.$val;
  23388. $r = order.PutUint16(bs, ((v$9.$get() << 16 >>> 16))); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23389. $s = 30; continue;
  23390. /* } else if ($assertType(_ref, $Int16, true)[1]) { */ case 13:
  23391. v$10 = _ref.$val;
  23392. $r = order.PutUint16(bs, ((v$10 << 16 >>> 16))); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23393. $s = 30; continue;
  23394. /* } else if ($assertType(_ref, sliceType$3, true)[1]) { */ case 14:
  23395. v$11 = _ref.$val;
  23396. _ref$3 = v$11;
  23397. _i$2 = 0;
  23398. /* while (true) { */ case 33:
  23399. /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 34; continue; }
  23400. i$2 = _i$2;
  23401. x$2 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]);
  23402. $r = order.PutUint16($subslice(bs, ($imul(2, i$2))), ((x$2 << 16 >>> 16))); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23403. _i$2++;
  23404. /* } */ $s = 33; continue; case 34:
  23405. $s = 30; continue;
  23406. /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 15:
  23407. v$12 = _ref.$val;
  23408. $r = order.PutUint16(bs, v$12.$get()); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23409. $s = 30; continue;
  23410. /* } else if ($assertType(_ref, $Uint16, true)[1]) { */ case 16:
  23411. v$13 = _ref.$val;
  23412. $r = order.PutUint16(bs, v$13); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23413. $s = 30; continue;
  23414. /* } else if ($assertType(_ref, sliceType$4, true)[1]) { */ case 17:
  23415. v$14 = _ref.$val;
  23416. _ref$4 = v$14;
  23417. _i$3 = 0;
  23418. /* while (true) { */ case 38:
  23419. /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 39; continue; }
  23420. i$3 = _i$3;
  23421. x$3 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]);
  23422. $r = order.PutUint16($subslice(bs, ($imul(2, i$3))), x$3); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23423. _i$3++;
  23424. /* } */ $s = 38; continue; case 39:
  23425. $s = 30; continue;
  23426. /* } else if ($assertType(_ref, ptrType$5, true)[1]) { */ case 18:
  23427. v$15 = _ref.$val;
  23428. $r = order.PutUint32(bs, ((v$15.$get() >>> 0))); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23429. $s = 30; continue;
  23430. /* } else if ($assertType(_ref, $Int32, true)[1]) { */ case 19:
  23431. v$16 = _ref.$val;
  23432. $r = order.PutUint32(bs, ((v$16 >>> 0))); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23433. $s = 30; continue;
  23434. /* } else if ($assertType(_ref, sliceType$5, true)[1]) { */ case 20:
  23435. v$17 = _ref.$val;
  23436. _ref$5 = v$17;
  23437. _i$4 = 0;
  23438. /* while (true) { */ case 43:
  23439. /* if (!(_i$4 < _ref$5.$length)) { break; } */ if(!(_i$4 < _ref$5.$length)) { $s = 44; continue; }
  23440. i$4 = _i$4;
  23441. x$4 = ((_i$4 < 0 || _i$4 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$4]);
  23442. $r = order.PutUint32($subslice(bs, ($imul(4, i$4))), ((x$4 >>> 0))); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23443. _i$4++;
  23444. /* } */ $s = 43; continue; case 44:
  23445. $s = 30; continue;
  23446. /* } else if ($assertType(_ref, ptrType$6, true)[1]) { */ case 21:
  23447. v$18 = _ref.$val;
  23448. $r = order.PutUint32(bs, v$18.$get()); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23449. $s = 30; continue;
  23450. /* } else if ($assertType(_ref, $Uint32, true)[1]) { */ case 22:
  23451. v$19 = _ref.$val;
  23452. $r = order.PutUint32(bs, v$19); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23453. $s = 30; continue;
  23454. /* } else if ($assertType(_ref, sliceType$6, true)[1]) { */ case 23:
  23455. v$20 = _ref.$val;
  23456. _ref$6 = v$20;
  23457. _i$5 = 0;
  23458. /* while (true) { */ case 48:
  23459. /* if (!(_i$5 < _ref$6.$length)) { break; } */ if(!(_i$5 < _ref$6.$length)) { $s = 49; continue; }
  23460. i$5 = _i$5;
  23461. x$5 = ((_i$5 < 0 || _i$5 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$5]);
  23462. $r = order.PutUint32($subslice(bs, ($imul(4, i$5))), x$5); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23463. _i$5++;
  23464. /* } */ $s = 48; continue; case 49:
  23465. $s = 30; continue;
  23466. /* } else if ($assertType(_ref, ptrType$7, true)[1]) { */ case 24:
  23467. v$21 = _ref.$val;
  23468. $r = order.PutUint64(bs, ((x$6 = v$21.$get(), new $Uint64(x$6.$high, x$6.$low)))); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23469. $s = 30; continue;
  23470. /* } else if ($assertType(_ref, $Int64, true)[1]) { */ case 25:
  23471. v$22 = _ref.$val;
  23472. $r = order.PutUint64(bs, (new $Uint64(v$22.$high, v$22.$low))); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23473. $s = 30; continue;
  23474. /* } else if ($assertType(_ref, sliceType$7, true)[1]) { */ case 26:
  23475. v$23 = _ref.$val;
  23476. _ref$7 = v$23;
  23477. _i$6 = 0;
  23478. /* while (true) { */ case 53:
  23479. /* if (!(_i$6 < _ref$7.$length)) { break; } */ if(!(_i$6 < _ref$7.$length)) { $s = 54; continue; }
  23480. i$6 = _i$6;
  23481. x$7 = ((_i$6 < 0 || _i$6 >= _ref$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$7.$array[_ref$7.$offset + _i$6]);
  23482. $r = order.PutUint64($subslice(bs, ($imul(8, i$6))), (new $Uint64(x$7.$high, x$7.$low))); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23483. _i$6++;
  23484. /* } */ $s = 53; continue; case 54:
  23485. $s = 30; continue;
  23486. /* } else if ($assertType(_ref, ptrType$8, true)[1]) { */ case 27:
  23487. v$24 = _ref.$val;
  23488. $r = order.PutUint64(bs, v$24.$get()); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23489. $s = 30; continue;
  23490. /* } else if ($assertType(_ref, $Uint64, true)[1]) { */ case 28:
  23491. v$25 = _ref.$val;
  23492. $r = order.PutUint64(bs, v$25); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23493. $s = 30; continue;
  23494. /* } else if ($assertType(_ref, sliceType$8, true)[1]) { */ case 29:
  23495. v$26 = _ref.$val;
  23496. _ref$8 = v$26;
  23497. _i$7 = 0;
  23498. /* while (true) { */ case 58:
  23499. /* if (!(_i$7 < _ref$8.$length)) { break; } */ if(!(_i$7 < _ref$8.$length)) { $s = 59; continue; }
  23500. i$7 = _i$7;
  23501. x$8 = ((_i$7 < 0 || _i$7 >= _ref$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$8.$array[_ref$8.$offset + _i$7]);
  23502. $r = order.PutUint64($subslice(bs, ($imul(8, i$7))), x$8); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23503. _i$7++;
  23504. /* } */ $s = 58; continue; case 59:
  23505. /* } */ case 30:
  23506. _r = w.Write(bs); /* */ $s = 61; case 61: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  23507. _tuple = _r;
  23508. err = _tuple[1];
  23509. $s = -1; return err;
  23510. /* } */ case 2:
  23511. _r$1 = reflect.ValueOf(data); /* */ $s = 62; case 62: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  23512. _r$2 = reflect.Indirect($clone(_r$1, reflect.Value)); /* */ $s = 63; case 63: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  23513. v$27 = _r$2;
  23514. _r$3 = dataSize($clone(v$27, reflect.Value)); /* */ $s = 64; case 64: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  23515. size = _r$3;
  23516. /* */ if (size < 0) { $s = 65; continue; }
  23517. /* */ $s = 66; continue;
  23518. /* if (size < 0) { */ case 65:
  23519. _r$4 = reflect.TypeOf(data).String(); /* */ $s = 67; case 67: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  23520. _r$5 = errors.New("binary.Write: invalid type " + _r$4); /* */ $s = 68; case 68: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  23521. $s = -1; return _r$5;
  23522. /* } */ case 66:
  23523. buf = $makeSlice(sliceType, size);
  23524. e = new encoder.ptr(order, buf, 0);
  23525. $r = e.value($clone(v$27, reflect.Value)); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23526. _r$6 = w.Write(buf); /* */ $s = 70; case 70: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  23527. _tuple$1 = _r$6;
  23528. err$1 = _tuple$1[1];
  23529. $s = -1; return err$1;
  23530. /* */ } return; } if ($f === undefined) { $f = { $blk: Write }; } $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._i$3 = _i$3; $f._i$4 = _i$4; $f._i$5 = _i$5; $f._i$6 = _i$6; $f._i$7 = _i$7; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f._ref$3 = _ref$3; $f._ref$4 = _ref$4; $f._ref$5 = _ref$5; $f._ref$6 = _ref$6; $f._ref$7 = _ref$7; $f._ref$8 = _ref$8; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.bs = bs; $f.buf = buf; $f.data = data; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.i$3 = i$3; $f.i$4 = i$4; $f.i$5 = i$5; $f.i$6 = i$6; $f.i$7 = i$7; $f.n = n; $f.order = order; $f.size = size; $f.v = v; $f.v$1 = v$1; $f.v$10 = v$10; $f.v$11 = v$11; $f.v$12 = v$12; $f.v$13 = v$13; $f.v$14 = v$14; $f.v$15 = v$15; $f.v$16 = v$16; $f.v$17 = v$17; $f.v$18 = v$18; $f.v$19 = v$19; $f.v$2 = v$2; $f.v$20 = v$20; $f.v$21 = v$21; $f.v$22 = v$22; $f.v$23 = v$23; $f.v$24 = v$24; $f.v$25 = v$25; $f.v$26 = v$26; $f.v$27 = v$27; $f.v$3 = v$3; $f.v$4 = v$4; $f.v$5 = v$5; $f.v$6 = v$6; $f.v$7 = v$7; $f.v$8 = v$8; $f.v$9 = v$9; $f.w = w; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.$s = $s; $f.$r = $r; return $f;
  23531. };
  23532. $pkg.Write = Write;
  23533. Size = function(v) {
  23534. var _r, _r$1, _r$2, v, $s, $r;
  23535. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  23536. _r = reflect.ValueOf(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  23537. _r$1 = reflect.Indirect($clone(_r, reflect.Value)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  23538. _r$2 = dataSize($clone(_r$1, reflect.Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  23539. $s = -1; return _r$2;
  23540. /* */ } return; } if ($f === undefined) { $f = { $blk: Size }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  23541. };
  23542. $pkg.Size = Size;
  23543. dataSize = function(v) {
  23544. var _r, _r$1, _r$2, s, v, $s, $r;
  23545. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; s = $f.s; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  23546. /* */ if ($clone(v, reflect.Value).Kind() === 23) { $s = 1; continue; }
  23547. /* */ $s = 2; continue;
  23548. /* if ($clone(v, reflect.Value).Kind() === 23) { */ case 1:
  23549. _r = $clone(v, reflect.Value).Type().Elem(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  23550. _r$1 = sizeof(_r); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  23551. s = _r$1;
  23552. if (s >= 0) {
  23553. $s = -1; return $imul(s, $clone(v, reflect.Value).Len());
  23554. }
  23555. $s = -1; return -1;
  23556. /* } */ case 2:
  23557. _r$2 = sizeof($clone(v, reflect.Value).Type()); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  23558. $s = -1; return _r$2;
  23559. /* */ } return; } if ($f === undefined) { $f = { $blk: dataSize }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.s = s; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  23560. };
  23561. sizeof = function(t) {
  23562. var _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tmp, _tmp$1, i, n, s, s$1, sum, t, $s, $r;
  23563. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; i = $f.i; n = $f.n; s = $f.s; s$1 = $f.s$1; sum = $f.sum; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  23564. _r = t.Kind(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  23565. _1 = _r;
  23566. /* */ if (_1 === (17)) { $s = 3; continue; }
  23567. /* */ if (_1 === (25)) { $s = 4; continue; }
  23568. /* */ if ((_1 === (1)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6)) || (_1 === (13)) || (_1 === (14)) || (_1 === (15)) || (_1 === (16))) { $s = 5; continue; }
  23569. /* */ $s = 6; continue;
  23570. /* if (_1 === (17)) { */ case 3:
  23571. _r$1 = t.Elem(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  23572. _r$2 = sizeof(_r$1); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  23573. s = _r$2;
  23574. /* */ if (s >= 0) { $s = 9; continue; }
  23575. /* */ $s = 10; continue;
  23576. /* if (s >= 0) { */ case 9:
  23577. _r$3 = t.Len(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  23578. $s = -1; return $imul(s, _r$3);
  23579. /* } */ case 10:
  23580. $s = 6; continue;
  23581. /* } else if (_1 === (25)) { */ case 4:
  23582. sum = 0;
  23583. _tmp = 0;
  23584. _r$4 = t.NumField(); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  23585. _tmp$1 = _r$4;
  23586. i = _tmp;
  23587. n = _tmp$1;
  23588. /* while (true) { */ case 13:
  23589. /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 14; continue; }
  23590. _r$5 = t.Field(i); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  23591. _r$6 = sizeof(_r$5.Type); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  23592. s$1 = _r$6;
  23593. if (s$1 < 0) {
  23594. $s = -1; return -1;
  23595. }
  23596. sum = sum + (s$1) >> 0;
  23597. i = i + (1) >> 0;
  23598. /* } */ $s = 13; continue; case 14:
  23599. $s = -1; return sum;
  23600. /* } else if ((_1 === (1)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6)) || (_1 === (13)) || (_1 === (14)) || (_1 === (15)) || (_1 === (16))) { */ case 5:
  23601. _r$7 = t.Size(); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
  23602. $s = -1; return ((_r$7 >> 0));
  23603. /* } */ case 6:
  23604. case 1:
  23605. $s = -1; return -1;
  23606. /* */ } return; } if ($f === undefined) { $f = { $blk: sizeof }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f.i = i; $f.n = n; $f.s = s; $f.s$1 = s$1; $f.sum = sum; $f.t = t; $f.$s = $s; $f.$r = $r; return $f;
  23607. };
  23608. decoder.ptr.prototype.bool = function() {
  23609. var d, x, x$1, x$2;
  23610. d = this;
  23611. x$2 = (x = d.buf, x$1 = d.offset, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]));
  23612. d.offset = d.offset + (1) >> 0;
  23613. return !((x$2 === 0));
  23614. };
  23615. decoder.prototype.bool = function() { return this.$val.bool(); };
  23616. encoder.ptr.prototype.bool = function(x) {
  23617. var e, x, x$1, x$2, x$3, x$4;
  23618. e = this;
  23619. if (x) {
  23620. (x$1 = e.buf, x$2 = e.offset, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2] = 1));
  23621. } else {
  23622. (x$3 = e.buf, x$4 = e.offset, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4] = 0));
  23623. }
  23624. e.offset = e.offset + (1) >> 0;
  23625. };
  23626. encoder.prototype.bool = function(x) { return this.$val.bool(x); };
  23627. decoder.ptr.prototype.uint8 = function() {
  23628. var d, x, x$1, x$2;
  23629. d = this;
  23630. x$2 = (x = d.buf, x$1 = d.offset, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]));
  23631. d.offset = d.offset + (1) >> 0;
  23632. return x$2;
  23633. };
  23634. decoder.prototype.uint8 = function() { return this.$val.uint8(); };
  23635. encoder.ptr.prototype.uint8 = function(x) {
  23636. var e, x, x$1, x$2;
  23637. e = this;
  23638. (x$1 = e.buf, x$2 = e.offset, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2] = x));
  23639. e.offset = e.offset + (1) >> 0;
  23640. };
  23641. encoder.prototype.uint8 = function(x) { return this.$val.uint8(x); };
  23642. decoder.ptr.prototype.uint16 = function() {
  23643. var _r, d, x, $s, $r;
  23644. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; d = $f.d; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  23645. d = this;
  23646. _r = d.order.Uint16($subslice(d.buf, d.offset, (d.offset + 2 >> 0))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  23647. x = _r;
  23648. d.offset = d.offset + (2) >> 0;
  23649. $s = -1; return x;
  23650. /* */ } return; } if ($f === undefined) { $f = { $blk: decoder.ptr.prototype.uint16 }; } $f._r = _r; $f.d = d; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  23651. };
  23652. decoder.prototype.uint16 = function() { return this.$val.uint16(); };
  23653. encoder.ptr.prototype.uint16 = function(x) {
  23654. var e, x, $s, $r;
  23655. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; e = $f.e; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  23656. e = this;
  23657. $r = e.order.PutUint16($subslice(e.buf, e.offset, (e.offset + 2 >> 0)), x); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23658. e.offset = e.offset + (2) >> 0;
  23659. $s = -1; return;
  23660. /* */ } return; } if ($f === undefined) { $f = { $blk: encoder.ptr.prototype.uint16 }; } $f.e = e; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  23661. };
  23662. encoder.prototype.uint16 = function(x) { return this.$val.uint16(x); };
  23663. decoder.ptr.prototype.uint32 = function() {
  23664. var _r, d, x, $s, $r;
  23665. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; d = $f.d; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  23666. d = this;
  23667. _r = d.order.Uint32($subslice(d.buf, d.offset, (d.offset + 4 >> 0))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  23668. x = _r;
  23669. d.offset = d.offset + (4) >> 0;
  23670. $s = -1; return x;
  23671. /* */ } return; } if ($f === undefined) { $f = { $blk: decoder.ptr.prototype.uint32 }; } $f._r = _r; $f.d = d; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  23672. };
  23673. decoder.prototype.uint32 = function() { return this.$val.uint32(); };
  23674. encoder.ptr.prototype.uint32 = function(x) {
  23675. var e, x, $s, $r;
  23676. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; e = $f.e; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  23677. e = this;
  23678. $r = e.order.PutUint32($subslice(e.buf, e.offset, (e.offset + 4 >> 0)), x); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23679. e.offset = e.offset + (4) >> 0;
  23680. $s = -1; return;
  23681. /* */ } return; } if ($f === undefined) { $f = { $blk: encoder.ptr.prototype.uint32 }; } $f.e = e; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  23682. };
  23683. encoder.prototype.uint32 = function(x) { return this.$val.uint32(x); };
  23684. decoder.ptr.prototype.uint64 = function() {
  23685. var _r, d, x, $s, $r;
  23686. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; d = $f.d; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  23687. d = this;
  23688. _r = d.order.Uint64($subslice(d.buf, d.offset, (d.offset + 8 >> 0))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  23689. x = _r;
  23690. d.offset = d.offset + (8) >> 0;
  23691. $s = -1; return x;
  23692. /* */ } return; } if ($f === undefined) { $f = { $blk: decoder.ptr.prototype.uint64 }; } $f._r = _r; $f.d = d; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  23693. };
  23694. decoder.prototype.uint64 = function() { return this.$val.uint64(); };
  23695. encoder.ptr.prototype.uint64 = function(x) {
  23696. var e, x, $s, $r;
  23697. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; e = $f.e; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  23698. e = this;
  23699. $r = e.order.PutUint64($subslice(e.buf, e.offset, (e.offset + 8 >> 0)), x); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23700. e.offset = e.offset + (8) >> 0;
  23701. $s = -1; return;
  23702. /* */ } return; } if ($f === undefined) { $f = { $blk: encoder.ptr.prototype.uint64 }; } $f.e = e; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  23703. };
  23704. encoder.prototype.uint64 = function(x) { return this.$val.uint64(x); };
  23705. decoder.ptr.prototype.int8 = function() {
  23706. var d;
  23707. d = this;
  23708. return ((d.uint8() << 24 >> 24));
  23709. };
  23710. decoder.prototype.int8 = function() { return this.$val.int8(); };
  23711. encoder.ptr.prototype.int8 = function(x) {
  23712. var e, x;
  23713. e = this;
  23714. e.uint8(((x << 24 >>> 24)));
  23715. };
  23716. encoder.prototype.int8 = function(x) { return this.$val.int8(x); };
  23717. decoder.ptr.prototype.int16 = function() {
  23718. var _r, d, $s, $r;
  23719. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; d = $f.d; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  23720. d = this;
  23721. _r = d.uint16(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  23722. $s = -1; return ((_r << 16 >> 16));
  23723. /* */ } return; } if ($f === undefined) { $f = { $blk: decoder.ptr.prototype.int16 }; } $f._r = _r; $f.d = d; $f.$s = $s; $f.$r = $r; return $f;
  23724. };
  23725. decoder.prototype.int16 = function() { return this.$val.int16(); };
  23726. encoder.ptr.prototype.int16 = function(x) {
  23727. var e, x, $s, $r;
  23728. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; e = $f.e; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  23729. e = this;
  23730. $r = e.uint16(((x << 16 >>> 16))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23731. $s = -1; return;
  23732. /* */ } return; } if ($f === undefined) { $f = { $blk: encoder.ptr.prototype.int16 }; } $f.e = e; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  23733. };
  23734. encoder.prototype.int16 = function(x) { return this.$val.int16(x); };
  23735. decoder.ptr.prototype.int32 = function() {
  23736. var _r, d, $s, $r;
  23737. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; d = $f.d; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  23738. d = this;
  23739. _r = d.uint32(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  23740. $s = -1; return ((_r >> 0));
  23741. /* */ } return; } if ($f === undefined) { $f = { $blk: decoder.ptr.prototype.int32 }; } $f._r = _r; $f.d = d; $f.$s = $s; $f.$r = $r; return $f;
  23742. };
  23743. decoder.prototype.int32 = function() { return this.$val.int32(); };
  23744. encoder.ptr.prototype.int32 = function(x) {
  23745. var e, x, $s, $r;
  23746. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; e = $f.e; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  23747. e = this;
  23748. $r = e.uint32(((x >>> 0))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23749. $s = -1; return;
  23750. /* */ } return; } if ($f === undefined) { $f = { $blk: encoder.ptr.prototype.int32 }; } $f.e = e; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  23751. };
  23752. encoder.prototype.int32 = function(x) { return this.$val.int32(x); };
  23753. decoder.ptr.prototype.int64 = function() {
  23754. var _r, d, x, $s, $r;
  23755. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; d = $f.d; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  23756. d = this;
  23757. _r = d.uint64(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  23758. $s = -1; return ((x = _r, new $Int64(x.$high, x.$low)));
  23759. /* */ } return; } if ($f === undefined) { $f = { $blk: decoder.ptr.prototype.int64 }; } $f._r = _r; $f.d = d; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  23760. };
  23761. decoder.prototype.int64 = function() { return this.$val.int64(); };
  23762. encoder.ptr.prototype.int64 = function(x) {
  23763. var e, x, $s, $r;
  23764. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; e = $f.e; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  23765. e = this;
  23766. $r = e.uint64((new $Uint64(x.$high, x.$low))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23767. $s = -1; return;
  23768. /* */ } return; } if ($f === undefined) { $f = { $blk: encoder.ptr.prototype.int64 }; } $f.e = e; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  23769. };
  23770. encoder.prototype.int64 = function(x) { return this.$val.int64(x); };
  23771. decoder.ptr.prototype.value = function(v) {
  23772. var _1, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, d, i, i$1, i$2, l, l$1, l$2, t, v, v$1, $s, $r;
  23773. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$16 = $f._r$16; _r$17 = $f._r$17; _r$18 = $f._r$18; _r$19 = $f._r$19; _r$2 = $f._r$2; _r$20 = $f._r$20; _r$21 = $f._r$21; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _v = $f._v; d = $f.d; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; l = $f.l; l$1 = $f.l$1; l$2 = $f.l$2; t = $f.t; v = $f.v; v$1 = $f.v$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  23774. d = this;
  23775. _1 = $clone(v, reflect.Value).Kind();
  23776. /* */ if (_1 === (17)) { $s = 2; continue; }
  23777. /* */ if (_1 === (25)) { $s = 3; continue; }
  23778. /* */ if (_1 === (23)) { $s = 4; continue; }
  23779. /* */ if (_1 === (1)) { $s = 5; continue; }
  23780. /* */ if (_1 === (3)) { $s = 6; continue; }
  23781. /* */ if (_1 === (4)) { $s = 7; continue; }
  23782. /* */ if (_1 === (5)) { $s = 8; continue; }
  23783. /* */ if (_1 === (6)) { $s = 9; continue; }
  23784. /* */ if (_1 === (8)) { $s = 10; continue; }
  23785. /* */ if (_1 === (9)) { $s = 11; continue; }
  23786. /* */ if (_1 === (10)) { $s = 12; continue; }
  23787. /* */ if (_1 === (11)) { $s = 13; continue; }
  23788. /* */ if (_1 === (13)) { $s = 14; continue; }
  23789. /* */ if (_1 === (14)) { $s = 15; continue; }
  23790. /* */ if (_1 === (15)) { $s = 16; continue; }
  23791. /* */ if (_1 === (16)) { $s = 17; continue; }
  23792. /* */ $s = 18; continue;
  23793. /* if (_1 === (17)) { */ case 2:
  23794. l = $clone(v, reflect.Value).Len();
  23795. i = 0;
  23796. /* while (true) { */ case 19:
  23797. /* if (!(i < l)) { break; } */ if(!(i < l)) { $s = 20; continue; }
  23798. _r = $clone(v, reflect.Value).Index(i); /* */ $s = 21; case 21: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  23799. $r = d.value($clone(_r, reflect.Value)); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23800. i = i + (1) >> 0;
  23801. /* } */ $s = 19; continue; case 20:
  23802. $s = 18; continue;
  23803. /* } else if (_1 === (25)) { */ case 3:
  23804. t = $clone(v, reflect.Value).Type();
  23805. l$1 = $clone(v, reflect.Value).NumField();
  23806. i$1 = 0;
  23807. /* while (true) { */ case 23:
  23808. /* if (!(i$1 < l$1)) { break; } */ if(!(i$1 < l$1)) { $s = 24; continue; }
  23809. _r$1 = $clone(v, reflect.Value).Field(i$1); /* */ $s = 25; case 25: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  23810. v$1 = _r$1;
  23811. if ($clone(v$1, reflect.Value).CanSet()) { _v = true; $s = 29; continue s; }
  23812. _r$2 = t.Field(i$1); /* */ $s = 30; case 30: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  23813. _v = !(_r$2.Name === "_"); case 29:
  23814. /* */ if (_v) { $s = 26; continue; }
  23815. /* */ $s = 27; continue;
  23816. /* if (_v) { */ case 26:
  23817. $r = d.value($clone(v$1, reflect.Value)); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23818. $s = 28; continue;
  23819. /* } else { */ case 27:
  23820. $r = d.skip($clone(v$1, reflect.Value)); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23821. /* } */ case 28:
  23822. i$1 = i$1 + (1) >> 0;
  23823. /* } */ $s = 23; continue; case 24:
  23824. $s = 18; continue;
  23825. /* } else if (_1 === (23)) { */ case 4:
  23826. l$2 = $clone(v, reflect.Value).Len();
  23827. i$2 = 0;
  23828. /* while (true) { */ case 33:
  23829. /* if (!(i$2 < l$2)) { break; } */ if(!(i$2 < l$2)) { $s = 34; continue; }
  23830. _r$3 = $clone(v, reflect.Value).Index(i$2); /* */ $s = 35; case 35: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  23831. $r = d.value($clone(_r$3, reflect.Value)); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23832. i$2 = i$2 + (1) >> 0;
  23833. /* } */ $s = 33; continue; case 34:
  23834. $s = 18; continue;
  23835. /* } else if (_1 === (1)) { */ case 5:
  23836. $clone(v, reflect.Value).SetBool(d.bool());
  23837. $s = 18; continue;
  23838. /* } else if (_1 === (3)) { */ case 6:
  23839. $clone(v, reflect.Value).SetInt((new $Int64(0, d.int8())));
  23840. $s = 18; continue;
  23841. /* } else if (_1 === (4)) { */ case 7:
  23842. _r$4 = d.int16(); /* */ $s = 37; case 37: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  23843. $r = $clone(v, reflect.Value).SetInt((new $Int64(0, _r$4))); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23844. $s = 18; continue;
  23845. /* } else if (_1 === (5)) { */ case 8:
  23846. _r$5 = d.int32(); /* */ $s = 39; case 39: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  23847. $r = $clone(v, reflect.Value).SetInt((new $Int64(0, _r$5))); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23848. $s = 18; continue;
  23849. /* } else if (_1 === (6)) { */ case 9:
  23850. _r$6 = d.int64(); /* */ $s = 41; case 41: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  23851. $r = $clone(v, reflect.Value).SetInt(_r$6); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23852. $s = 18; continue;
  23853. /* } else if (_1 === (8)) { */ case 10:
  23854. $clone(v, reflect.Value).SetUint((new $Uint64(0, d.uint8())));
  23855. $s = 18; continue;
  23856. /* } else if (_1 === (9)) { */ case 11:
  23857. _r$7 = d.uint16(); /* */ $s = 43; case 43: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
  23858. $r = $clone(v, reflect.Value).SetUint((new $Uint64(0, _r$7))); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23859. $s = 18; continue;
  23860. /* } else if (_1 === (10)) { */ case 12:
  23861. _r$8 = d.uint32(); /* */ $s = 45; case 45: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
  23862. $r = $clone(v, reflect.Value).SetUint((new $Uint64(0, _r$8))); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23863. $s = 18; continue;
  23864. /* } else if (_1 === (11)) { */ case 13:
  23865. _r$9 = d.uint64(); /* */ $s = 47; case 47: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  23866. $r = $clone(v, reflect.Value).SetUint(_r$9); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23867. $s = 18; continue;
  23868. /* } else if (_1 === (13)) { */ case 14:
  23869. _r$10 = d.uint32(); /* */ $s = 49; case 49: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
  23870. _r$11 = math.Float32frombits(_r$10); /* */ $s = 50; case 50: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
  23871. $r = $clone(v, reflect.Value).SetFloat((_r$11)); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23872. $s = 18; continue;
  23873. /* } else if (_1 === (14)) { */ case 15:
  23874. _r$12 = d.uint64(); /* */ $s = 52; case 52: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
  23875. _r$13 = math.Float64frombits(_r$12); /* */ $s = 53; case 53: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
  23876. $r = $clone(v, reflect.Value).SetFloat(_r$13); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23877. $s = 18; continue;
  23878. /* } else if (_1 === (15)) { */ case 16:
  23879. _r$14 = d.uint32(); /* */ $s = 55; case 55: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
  23880. _r$15 = math.Float32frombits(_r$14); /* */ $s = 56; case 56: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
  23881. _arg = (_r$15);
  23882. _r$16 = d.uint32(); /* */ $s = 57; case 57: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; }
  23883. _r$17 = math.Float32frombits(_r$16); /* */ $s = 58; case 58: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; }
  23884. _arg$1 = (_r$17);
  23885. $r = $clone(v, reflect.Value).SetComplex(new $Complex128(_arg, _arg$1)); /* */ $s = 59; case 59: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23886. $s = 18; continue;
  23887. /* } else if (_1 === (16)) { */ case 17:
  23888. _r$18 = d.uint64(); /* */ $s = 60; case 60: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; }
  23889. _r$19 = math.Float64frombits(_r$18); /* */ $s = 61; case 61: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; }
  23890. _arg$2 = _r$19;
  23891. _r$20 = d.uint64(); /* */ $s = 62; case 62: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; }
  23892. _r$21 = math.Float64frombits(_r$20); /* */ $s = 63; case 63: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; }
  23893. _arg$3 = _r$21;
  23894. $r = $clone(v, reflect.Value).SetComplex(new $Complex128(_arg$2, _arg$3)); /* */ $s = 64; case 64: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23895. /* } */ case 18:
  23896. case 1:
  23897. $s = -1; return;
  23898. /* */ } return; } if ($f === undefined) { $f = { $blk: decoder.ptr.prototype.value }; } $f._1 = _1; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$16 = _r$16; $f._r$17 = _r$17; $f._r$18 = _r$18; $f._r$19 = _r$19; $f._r$2 = _r$2; $f._r$20 = _r$20; $f._r$21 = _r$21; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._v = _v; $f.d = d; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.l = l; $f.l$1 = l$1; $f.l$2 = l$2; $f.t = t; $f.v = v; $f.v$1 = v$1; $f.$s = $s; $f.$r = $r; return $f;
  23899. };
  23900. decoder.prototype.value = function(v) { return this.$val.value(v); };
  23901. encoder.ptr.prototype.value = function(v) {
  23902. var _1, _2, _3, _4, _5, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _v, e, i, i$1, i$2, l, l$1, l$2, t, v, v$1, x, x$1, x$2, x$3, x$4, $s, $r;
  23903. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _4 = $f._4; _5 = $f._5; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _v = $f._v; e = $f.e; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; l = $f.l; l$1 = $f.l$1; l$2 = $f.l$2; t = $f.t; v = $f.v; v$1 = $f.v$1; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  23904. e = this;
  23905. _1 = $clone(v, reflect.Value).Kind();
  23906. /* */ if (_1 === (17)) { $s = 2; continue; }
  23907. /* */ if (_1 === (25)) { $s = 3; continue; }
  23908. /* */ if (_1 === (23)) { $s = 4; continue; }
  23909. /* */ if (_1 === (1)) { $s = 5; continue; }
  23910. /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 6; continue; }
  23911. /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 7; continue; }
  23912. /* */ if ((_1 === (13)) || (_1 === (14))) { $s = 8; continue; }
  23913. /* */ if ((_1 === (15)) || (_1 === (16))) { $s = 9; continue; }
  23914. /* */ $s = 10; continue;
  23915. /* if (_1 === (17)) { */ case 2:
  23916. l = $clone(v, reflect.Value).Len();
  23917. i = 0;
  23918. /* while (true) { */ case 11:
  23919. /* if (!(i < l)) { break; } */ if(!(i < l)) { $s = 12; continue; }
  23920. _r = $clone(v, reflect.Value).Index(i); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  23921. $r = e.value($clone(_r, reflect.Value)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23922. i = i + (1) >> 0;
  23923. /* } */ $s = 11; continue; case 12:
  23924. $s = 10; continue;
  23925. /* } else if (_1 === (25)) { */ case 3:
  23926. t = $clone(v, reflect.Value).Type();
  23927. l$1 = $clone(v, reflect.Value).NumField();
  23928. i$1 = 0;
  23929. /* while (true) { */ case 15:
  23930. /* if (!(i$1 < l$1)) { break; } */ if(!(i$1 < l$1)) { $s = 16; continue; }
  23931. _r$1 = $clone(v, reflect.Value).Field(i$1); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  23932. v$1 = _r$1;
  23933. if ($clone(v$1, reflect.Value).CanSet()) { _v = true; $s = 21; continue s; }
  23934. _r$2 = t.Field(i$1); /* */ $s = 22; case 22: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  23935. _v = !(_r$2.Name === "_"); case 21:
  23936. /* */ if (_v) { $s = 18; continue; }
  23937. /* */ $s = 19; continue;
  23938. /* if (_v) { */ case 18:
  23939. $r = e.value($clone(v$1, reflect.Value)); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23940. $s = 20; continue;
  23941. /* } else { */ case 19:
  23942. $r = e.skip($clone(v$1, reflect.Value)); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23943. /* } */ case 20:
  23944. i$1 = i$1 + (1) >> 0;
  23945. /* } */ $s = 15; continue; case 16:
  23946. $s = 10; continue;
  23947. /* } else if (_1 === (23)) { */ case 4:
  23948. l$2 = $clone(v, reflect.Value).Len();
  23949. i$2 = 0;
  23950. /* while (true) { */ case 25:
  23951. /* if (!(i$2 < l$2)) { break; } */ if(!(i$2 < l$2)) { $s = 26; continue; }
  23952. _r$3 = $clone(v, reflect.Value).Index(i$2); /* */ $s = 27; case 27: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  23953. $r = e.value($clone(_r$3, reflect.Value)); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23954. i$2 = i$2 + (1) >> 0;
  23955. /* } */ $s = 25; continue; case 26:
  23956. $s = 10; continue;
  23957. /* } else if (_1 === (1)) { */ case 5:
  23958. e.bool($clone(v, reflect.Value).Bool());
  23959. $s = 10; continue;
  23960. /* } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 6:
  23961. _r$4 = $clone(v, reflect.Value).Type().Kind(); /* */ $s = 30; case 30: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  23962. _2 = _r$4;
  23963. /* */ if (_2 === (3)) { $s = 31; continue; }
  23964. /* */ if (_2 === (4)) { $s = 32; continue; }
  23965. /* */ if (_2 === (5)) { $s = 33; continue; }
  23966. /* */ if (_2 === (6)) { $s = 34; continue; }
  23967. /* */ $s = 35; continue;
  23968. /* if (_2 === (3)) { */ case 31:
  23969. e.int8((((x = $clone(v, reflect.Value).Int(), x.$low + ((x.$high >> 31) * 4294967296)) << 24 >> 24)));
  23970. $s = 35; continue;
  23971. /* } else if (_2 === (4)) { */ case 32:
  23972. $r = e.int16((((x$1 = $clone(v, reflect.Value).Int(), x$1.$low + ((x$1.$high >> 31) * 4294967296)) << 16 >> 16))); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23973. $s = 35; continue;
  23974. /* } else if (_2 === (5)) { */ case 33:
  23975. $r = e.int32((((x$2 = $clone(v, reflect.Value).Int(), x$2.$low + ((x$2.$high >> 31) * 4294967296)) >> 0))); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23976. $s = 35; continue;
  23977. /* } else if (_2 === (6)) { */ case 34:
  23978. $r = e.int64($clone(v, reflect.Value).Int()); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23979. /* } */ case 35:
  23980. case 29:
  23981. $s = 10; continue;
  23982. /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 7:
  23983. _r$5 = $clone(v, reflect.Value).Type().Kind(); /* */ $s = 40; case 40: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  23984. _3 = _r$5;
  23985. /* */ if (_3 === (8)) { $s = 41; continue; }
  23986. /* */ if (_3 === (9)) { $s = 42; continue; }
  23987. /* */ if (_3 === (10)) { $s = 43; continue; }
  23988. /* */ if (_3 === (11)) { $s = 44; continue; }
  23989. /* */ $s = 45; continue;
  23990. /* if (_3 === (8)) { */ case 41:
  23991. e.uint8((($clone(v, reflect.Value).Uint().$low << 24 >>> 24)));
  23992. $s = 45; continue;
  23993. /* } else if (_3 === (9)) { */ case 42:
  23994. $r = e.uint16((($clone(v, reflect.Value).Uint().$low << 16 >>> 16))); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23995. $s = 45; continue;
  23996. /* } else if (_3 === (10)) { */ case 43:
  23997. $r = e.uint32((($clone(v, reflect.Value).Uint().$low >>> 0))); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  23998. $s = 45; continue;
  23999. /* } else if (_3 === (11)) { */ case 44:
  24000. $r = e.uint64($clone(v, reflect.Value).Uint()); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  24001. /* } */ case 45:
  24002. case 39:
  24003. $s = 10; continue;
  24004. /* } else if ((_1 === (13)) || (_1 === (14))) { */ case 8:
  24005. _r$6 = $clone(v, reflect.Value).Type().Kind(); /* */ $s = 50; case 50: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  24006. _4 = _r$6;
  24007. /* */ if (_4 === (13)) { $s = 51; continue; }
  24008. /* */ if (_4 === (14)) { $s = 52; continue; }
  24009. /* */ $s = 53; continue;
  24010. /* if (_4 === (13)) { */ case 51:
  24011. $r = e.uint32(math.Float32bits(($fround($clone(v, reflect.Value).Float())))); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  24012. $s = 53; continue;
  24013. /* } else if (_4 === (14)) { */ case 52:
  24014. $r = e.uint64(math.Float64bits($clone(v, reflect.Value).Float())); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  24015. /* } */ case 53:
  24016. case 49:
  24017. $s = 10; continue;
  24018. /* } else if ((_1 === (15)) || (_1 === (16))) { */ case 9:
  24019. _r$7 = $clone(v, reflect.Value).Type().Kind(); /* */ $s = 57; case 57: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
  24020. _5 = _r$7;
  24021. /* */ if (_5 === (15)) { $s = 58; continue; }
  24022. /* */ if (_5 === (16)) { $s = 59; continue; }
  24023. /* */ $s = 60; continue;
  24024. /* if (_5 === (15)) { */ case 58:
  24025. x$3 = $clone(v, reflect.Value).Complex();
  24026. $r = e.uint32(math.Float32bits(($fround(x$3.$real)))); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  24027. $r = e.uint32(math.Float32bits(($fround(x$3.$imag)))); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  24028. $s = 60; continue;
  24029. /* } else if (_5 === (16)) { */ case 59:
  24030. x$4 = $clone(v, reflect.Value).Complex();
  24031. $r = e.uint64(math.Float64bits(x$4.$real)); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  24032. $r = e.uint64(math.Float64bits(x$4.$imag)); /* */ $s = 64; case 64: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  24033. /* } */ case 60:
  24034. case 56:
  24035. /* } */ case 10:
  24036. case 1:
  24037. $s = -1; return;
  24038. /* */ } return; } if ($f === undefined) { $f = { $blk: encoder.ptr.prototype.value }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._4 = _4; $f._5 = _5; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._v = _v; $f.e = e; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.l = l; $f.l$1 = l$1; $f.l$2 = l$2; $f.t = t; $f.v = v; $f.v$1 = v$1; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.$s = $s; $f.$r = $r; return $f;
  24039. };
  24040. encoder.prototype.value = function(v) { return this.$val.value(v); };
  24041. decoder.ptr.prototype.skip = function(v) {
  24042. var _r, d, v, $s, $r;
  24043. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; d = $f.d; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  24044. d = this;
  24045. _r = dataSize($clone(v, reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  24046. d.offset = d.offset + (_r) >> 0;
  24047. $s = -1; return;
  24048. /* */ } return; } if ($f === undefined) { $f = { $blk: decoder.ptr.prototype.skip }; } $f._r = _r; $f.d = d; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  24049. };
  24050. decoder.prototype.skip = function(v) { return this.$val.skip(v); };
  24051. encoder.ptr.prototype.skip = function(v) {
  24052. var _i, _r, _ref, e, i, n, v, zero, $s, $r;
  24053. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; e = $f.e; i = $f.i; n = $f.n; v = $f.v; zero = $f.zero; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  24054. e = this;
  24055. _r = dataSize($clone(v, reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  24056. n = _r;
  24057. zero = $subslice(e.buf, e.offset, (e.offset + n >> 0));
  24058. _ref = zero;
  24059. _i = 0;
  24060. while (true) {
  24061. if (!(_i < _ref.$length)) { break; }
  24062. i = _i;
  24063. ((i < 0 || i >= zero.$length) ? ($throwRuntimeError("index out of range"), undefined) : zero.$array[zero.$offset + i] = 0);
  24064. _i++;
  24065. }
  24066. e.offset = e.offset + (n) >> 0;
  24067. $s = -1; return;
  24068. /* */ } return; } if ($f === undefined) { $f = { $blk: encoder.ptr.prototype.skip }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.e = e; $f.i = i; $f.n = n; $f.v = v; $f.zero = zero; $f.$s = $s; $f.$r = $r; return $f;
  24069. };
  24070. encoder.prototype.skip = function(v) { return this.$val.skip(v); };
  24071. intDataSize = function(data) {
  24072. var _ref, data, data$1, data$10, data$11, data$12, data$13, data$2, data$3, data$4, data$5, data$6, data$7, data$8, data$9;
  24073. _ref = data;
  24074. if ($assertType(_ref, $Bool, true)[1] || $assertType(_ref, $Int8, true)[1] || $assertType(_ref, $Uint8, true)[1] || $assertType(_ref, ptrType, true)[1] || $assertType(_ref, ptrType$1, true)[1] || $assertType(_ref, ptrType$2, true)[1]) {
  24075. data$1 = _ref;
  24076. return 1;
  24077. } else if ($assertType(_ref, sliceType$1, true)[1]) {
  24078. data$2 = _ref.$val;
  24079. return data$2.$length;
  24080. } else if ($assertType(_ref, sliceType$2, true)[1]) {
  24081. data$3 = _ref.$val;
  24082. return data$3.$length;
  24083. } else if ($assertType(_ref, sliceType, true)[1]) {
  24084. data$4 = _ref.$val;
  24085. return data$4.$length;
  24086. } else if ($assertType(_ref, $Int16, true)[1] || $assertType(_ref, $Uint16, true)[1] || $assertType(_ref, ptrType$3, true)[1] || $assertType(_ref, ptrType$4, true)[1]) {
  24087. data$5 = _ref;
  24088. return 2;
  24089. } else if ($assertType(_ref, sliceType$3, true)[1]) {
  24090. data$6 = _ref.$val;
  24091. return $imul(2, data$6.$length);
  24092. } else if ($assertType(_ref, sliceType$4, true)[1]) {
  24093. data$7 = _ref.$val;
  24094. return $imul(2, data$7.$length);
  24095. } else if ($assertType(_ref, $Int32, true)[1] || $assertType(_ref, $Uint32, true)[1] || $assertType(_ref, ptrType$5, true)[1] || $assertType(_ref, ptrType$6, true)[1]) {
  24096. data$8 = _ref;
  24097. return 4;
  24098. } else if ($assertType(_ref, sliceType$5, true)[1]) {
  24099. data$9 = _ref.$val;
  24100. return $imul(4, data$9.$length);
  24101. } else if ($assertType(_ref, sliceType$6, true)[1]) {
  24102. data$10 = _ref.$val;
  24103. return $imul(4, data$10.$length);
  24104. } else if ($assertType(_ref, $Int64, true)[1] || $assertType(_ref, $Uint64, true)[1] || $assertType(_ref, ptrType$7, true)[1] || $assertType(_ref, ptrType$8, true)[1]) {
  24105. data$11 = _ref;
  24106. return 8;
  24107. } else if ($assertType(_ref, sliceType$7, true)[1]) {
  24108. data$12 = _ref.$val;
  24109. return $imul(8, data$12.$length);
  24110. } else if ($assertType(_ref, sliceType$8, true)[1]) {
  24111. data$13 = _ref.$val;
  24112. return $imul(8, data$13.$length);
  24113. }
  24114. return 0;
  24115. };
  24116. littleEndian.methods = [{prop: "Uint16", name: "Uint16", pkg: "", typ: $funcType([sliceType], [$Uint16], false)}, {prop: "PutUint16", name: "PutUint16", pkg: "", typ: $funcType([sliceType, $Uint16], [], false)}, {prop: "Uint32", name: "Uint32", pkg: "", typ: $funcType([sliceType], [$Uint32], false)}, {prop: "PutUint32", name: "PutUint32", pkg: "", typ: $funcType([sliceType, $Uint32], [], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([sliceType], [$Uint64], false)}, {prop: "PutUint64", name: "PutUint64", pkg: "", typ: $funcType([sliceType, $Uint64], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}];
  24117. bigEndian.methods = [{prop: "Uint16", name: "Uint16", pkg: "", typ: $funcType([sliceType], [$Uint16], false)}, {prop: "PutUint16", name: "PutUint16", pkg: "", typ: $funcType([sliceType, $Uint16], [], false)}, {prop: "Uint32", name: "Uint32", pkg: "", typ: $funcType([sliceType], [$Uint32], false)}, {prop: "PutUint32", name: "PutUint32", pkg: "", typ: $funcType([sliceType, $Uint32], [], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([sliceType], [$Uint64], false)}, {prop: "PutUint64", name: "PutUint64", pkg: "", typ: $funcType([sliceType, $Uint64], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}];
  24118. ptrType$9.methods = [{prop: "bool", name: "bool", pkg: "encoding/binary", typ: $funcType([], [$Bool], false)}, {prop: "uint8", name: "uint8", pkg: "encoding/binary", typ: $funcType([], [$Uint8], false)}, {prop: "uint16", name: "uint16", pkg: "encoding/binary", typ: $funcType([], [$Uint16], false)}, {prop: "uint32", name: "uint32", pkg: "encoding/binary", typ: $funcType([], [$Uint32], false)}, {prop: "uint64", name: "uint64", pkg: "encoding/binary", typ: $funcType([], [$Uint64], false)}, {prop: "int8", name: "int8", pkg: "encoding/binary", typ: $funcType([], [$Int8], false)}, {prop: "int16", name: "int16", pkg: "encoding/binary", typ: $funcType([], [$Int16], false)}, {prop: "int32", name: "int32", pkg: "encoding/binary", typ: $funcType([], [$Int32], false)}, {prop: "int64", name: "int64", pkg: "encoding/binary", typ: $funcType([], [$Int64], false)}, {prop: "value", name: "value", pkg: "encoding/binary", typ: $funcType([reflect.Value], [], false)}, {prop: "skip", name: "skip", pkg: "encoding/binary", typ: $funcType([reflect.Value], [], false)}];
  24119. ptrType$10.methods = [{prop: "bool", name: "bool", pkg: "encoding/binary", typ: $funcType([$Bool], [], false)}, {prop: "uint8", name: "uint8", pkg: "encoding/binary", typ: $funcType([$Uint8], [], false)}, {prop: "uint16", name: "uint16", pkg: "encoding/binary", typ: $funcType([$Uint16], [], false)}, {prop: "uint32", name: "uint32", pkg: "encoding/binary", typ: $funcType([$Uint32], [], false)}, {prop: "uint64", name: "uint64", pkg: "encoding/binary", typ: $funcType([$Uint64], [], false)}, {prop: "int8", name: "int8", pkg: "encoding/binary", typ: $funcType([$Int8], [], false)}, {prop: "int16", name: "int16", pkg: "encoding/binary", typ: $funcType([$Int16], [], false)}, {prop: "int32", name: "int32", pkg: "encoding/binary", typ: $funcType([$Int32], [], false)}, {prop: "int64", name: "int64", pkg: "encoding/binary", typ: $funcType([$Int64], [], false)}, {prop: "value", name: "value", pkg: "encoding/binary", typ: $funcType([reflect.Value], [], false)}, {prop: "skip", name: "skip", pkg: "encoding/binary", typ: $funcType([reflect.Value], [], false)}];
  24120. ByteOrder.init([{prop: "PutUint16", name: "PutUint16", pkg: "", typ: $funcType([sliceType, $Uint16], [], false)}, {prop: "PutUint32", name: "PutUint32", pkg: "", typ: $funcType([sliceType, $Uint32], [], false)}, {prop: "PutUint64", name: "PutUint64", pkg: "", typ: $funcType([sliceType, $Uint64], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Uint16", name: "Uint16", pkg: "", typ: $funcType([sliceType], [$Uint16], false)}, {prop: "Uint32", name: "Uint32", pkg: "", typ: $funcType([sliceType], [$Uint32], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([sliceType], [$Uint64], false)}]);
  24121. littleEndian.init("", []);
  24122. bigEndian.init("", []);
  24123. decoder.init("encoding/binary", [{prop: "order", name: "order", embedded: false, exported: false, typ: ByteOrder, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Int, tag: ""}]);
  24124. encoder.init("encoding/binary", [{prop: "order", name: "order", embedded: false, exported: false, typ: ByteOrder, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Int, tag: ""}]);
  24125. $init = function() {
  24126. $pkg.$init = function() {};
  24127. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  24128. $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  24129. $r = io.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  24130. $r = math.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  24131. $r = reflect.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  24132. $pkg.LittleEndian = new littleEndian.ptr();
  24133. $pkg.BigEndian = new bigEndian.ptr();
  24134. overflow = errors.New("binary: varint overflows a 64-bit integer");
  24135. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  24136. };
  24137. $pkg.$init = $init;
  24138. return $pkg;
  24139. })();
  24140. $packages["strings"] = (function() {
  24141. var $pkg = {}, $init, errors, js, bytealg, io, sync, unicode, utf8, Builder, asciiSet, ptrType, sliceType, sliceType$1, ptrType$5, arrayType$3, IndexByte, Index, LastIndex, Count, explode, Contains, ContainsRune, IndexRune, IndexAny, LastIndexByte, genSplit, SplitN, Split, Join, HasPrefix, HasSuffix, Map, ToLower, makeASCIISet, TrimPrefix;
  24142. errors = $packages["errors"];
  24143. js = $packages["github.com/gopherjs/gopherjs/js"];
  24144. bytealg = $packages["internal/bytealg"];
  24145. io = $packages["io"];
  24146. sync = $packages["sync"];
  24147. unicode = $packages["unicode"];
  24148. utf8 = $packages["unicode/utf8"];
  24149. Builder = $pkg.Builder = $newType(0, $kindStruct, "strings.Builder", true, "strings", true, function(addr_, buf_) {
  24150. this.$val = this;
  24151. if (arguments.length === 0) {
  24152. this.addr = ptrType.nil;
  24153. this.buf = sliceType.nil;
  24154. return;
  24155. }
  24156. this.addr = addr_;
  24157. this.buf = buf_;
  24158. });
  24159. asciiSet = $pkg.asciiSet = $newType(32, $kindArray, "strings.asciiSet", true, "strings", false, null);
  24160. ptrType = $ptrType(Builder);
  24161. sliceType = $sliceType($Uint8);
  24162. sliceType$1 = $sliceType($String);
  24163. ptrType$5 = $ptrType(asciiSet);
  24164. arrayType$3 = $arrayType($Uint32, 8);
  24165. IndexByte = function(s, c) {
  24166. var c, s;
  24167. return $parseInt(s.indexOf($global.String.fromCharCode(c))) >> 0;
  24168. };
  24169. $pkg.IndexByte = IndexByte;
  24170. Index = function(s, sep) {
  24171. var s, sep;
  24172. return $parseInt(s.indexOf(sep)) >> 0;
  24173. };
  24174. $pkg.Index = Index;
  24175. LastIndex = function(s, sep) {
  24176. var s, sep;
  24177. return $parseInt(s.lastIndexOf(sep)) >> 0;
  24178. };
  24179. $pkg.LastIndex = LastIndex;
  24180. Count = function(s, sep) {
  24181. var n, pos, s, sep;
  24182. n = 0;
  24183. if ((sep.length === 0)) {
  24184. return utf8.RuneCountInString(s) + 1 >> 0;
  24185. } else if (sep.length > s.length) {
  24186. return 0;
  24187. } else if ((sep.length === s.length)) {
  24188. if (sep === s) {
  24189. return 1;
  24190. }
  24191. return 0;
  24192. }
  24193. while (true) {
  24194. pos = Index(s, sep);
  24195. if (pos === -1) {
  24196. break;
  24197. }
  24198. n = n + (1) >> 0;
  24199. s = $substring(s, (pos + sep.length >> 0));
  24200. }
  24201. return n;
  24202. };
  24203. $pkg.Count = Count;
  24204. Builder.ptr.prototype.String = function() {
  24205. var b;
  24206. b = this;
  24207. return ($bytesToString(b.buf));
  24208. };
  24209. Builder.prototype.String = function() { return this.$val.String(); };
  24210. Builder.ptr.prototype.copyCheck = function() {
  24211. var b;
  24212. b = this;
  24213. if (b.addr === ptrType.nil) {
  24214. b.addr = b;
  24215. } else if (!(b.addr === b)) {
  24216. $panic(new $String("strings: illegal use of non-zero Builder copied by value"));
  24217. }
  24218. };
  24219. Builder.prototype.copyCheck = function() { return this.$val.copyCheck(); };
  24220. Builder.ptr.prototype.Len = function() {
  24221. var b;
  24222. b = this;
  24223. return b.buf.$length;
  24224. };
  24225. Builder.prototype.Len = function() { return this.$val.Len(); };
  24226. Builder.ptr.prototype.Cap = function() {
  24227. var b;
  24228. b = this;
  24229. return b.buf.$capacity;
  24230. };
  24231. Builder.prototype.Cap = function() { return this.$val.Cap(); };
  24232. Builder.ptr.prototype.Reset = function() {
  24233. var b;
  24234. b = this;
  24235. b.addr = ptrType.nil;
  24236. b.buf = sliceType.nil;
  24237. };
  24238. Builder.prototype.Reset = function() { return this.$val.Reset(); };
  24239. Builder.ptr.prototype.grow = function(n) {
  24240. var b, buf, n;
  24241. b = this;
  24242. buf = $makeSlice(sliceType, b.buf.$length, (($imul(2, b.buf.$capacity)) + n >> 0));
  24243. $copySlice(buf, b.buf);
  24244. b.buf = buf;
  24245. };
  24246. Builder.prototype.grow = function(n) { return this.$val.grow(n); };
  24247. Builder.ptr.prototype.Grow = function(n) {
  24248. var b, n;
  24249. b = this;
  24250. b.copyCheck();
  24251. if (n < 0) {
  24252. $panic(new $String("strings.Builder.Grow: negative count"));
  24253. }
  24254. if ((b.buf.$capacity - b.buf.$length >> 0) < n) {
  24255. b.grow(n);
  24256. }
  24257. };
  24258. Builder.prototype.Grow = function(n) { return this.$val.Grow(n); };
  24259. Builder.ptr.prototype.Write = function(p) {
  24260. var b, p;
  24261. b = this;
  24262. b.copyCheck();
  24263. b.buf = $appendSlice(b.buf, p);
  24264. return [p.$length, $ifaceNil];
  24265. };
  24266. Builder.prototype.Write = function(p) { return this.$val.Write(p); };
  24267. Builder.ptr.prototype.WriteByte = function(c) {
  24268. var b, c;
  24269. b = this;
  24270. b.copyCheck();
  24271. b.buf = $append(b.buf, c);
  24272. return $ifaceNil;
  24273. };
  24274. Builder.prototype.WriteByte = function(c) { return this.$val.WriteByte(c); };
  24275. Builder.ptr.prototype.WriteRune = function(r) {
  24276. var b, l, n, r;
  24277. b = this;
  24278. b.copyCheck();
  24279. if (r < 128) {
  24280. b.buf = $append(b.buf, ((r << 24 >>> 24)));
  24281. return [1, $ifaceNil];
  24282. }
  24283. l = b.buf.$length;
  24284. if ((b.buf.$capacity - l >> 0) < 4) {
  24285. b.grow(4);
  24286. }
  24287. n = utf8.EncodeRune($subslice(b.buf, l, (l + 4 >> 0)), r);
  24288. b.buf = $subslice(b.buf, 0, (l + n >> 0));
  24289. return [n, $ifaceNil];
  24290. };
  24291. Builder.prototype.WriteRune = function(r) { return this.$val.WriteRune(r); };
  24292. Builder.ptr.prototype.WriteString = function(s) {
  24293. var b, s;
  24294. b = this;
  24295. b.copyCheck();
  24296. b.buf = $appendSlice(b.buf, s);
  24297. return [s.length, $ifaceNil];
  24298. };
  24299. Builder.prototype.WriteString = function(s) { return this.$val.WriteString(s); };
  24300. explode = function(s, n) {
  24301. var _tuple, a, ch, i, l, n, s, size, x;
  24302. l = utf8.RuneCountInString(s);
  24303. if (n < 0 || n > l) {
  24304. n = l;
  24305. }
  24306. a = $makeSlice(sliceType$1, n);
  24307. i = 0;
  24308. while (true) {
  24309. if (!(i < (n - 1 >> 0))) { break; }
  24310. _tuple = utf8.DecodeRuneInString(s);
  24311. ch = _tuple[0];
  24312. size = _tuple[1];
  24313. ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = $substring(s, 0, size));
  24314. s = $substring(s, size);
  24315. if (ch === 65533) {
  24316. ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = "\xEF\xBF\xBD");
  24317. }
  24318. i = i + (1) >> 0;
  24319. }
  24320. if (n > 0) {
  24321. (x = n - 1 >> 0, ((x < 0 || x >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x] = s));
  24322. }
  24323. return a;
  24324. };
  24325. Contains = function(s, substr) {
  24326. var s, substr;
  24327. return Index(s, substr) >= 0;
  24328. };
  24329. $pkg.Contains = Contains;
  24330. ContainsRune = function(s, r) {
  24331. var r, s;
  24332. return IndexRune(s, r) >= 0;
  24333. };
  24334. $pkg.ContainsRune = ContainsRune;
  24335. IndexRune = function(s, r) {
  24336. var _i, _ref, _rune, i, r, r$1, s;
  24337. if (0 <= r && r < 128) {
  24338. return IndexByte(s, ((r << 24 >>> 24)));
  24339. } else if ((r === 65533)) {
  24340. _ref = s;
  24341. _i = 0;
  24342. while (true) {
  24343. if (!(_i < _ref.length)) { break; }
  24344. _rune = $decodeRune(_ref, _i);
  24345. i = _i;
  24346. r$1 = _rune[0];
  24347. if (r$1 === 65533) {
  24348. return i;
  24349. }
  24350. _i += _rune[1];
  24351. }
  24352. return -1;
  24353. } else if (!utf8.ValidRune(r)) {
  24354. return -1;
  24355. } else {
  24356. return Index(s, ($encodeRune(r)));
  24357. }
  24358. };
  24359. $pkg.IndexRune = IndexRune;
  24360. IndexAny = function(s, chars) {
  24361. var _i, _i$1, _ref, _ref$1, _rune, _rune$1, _tuple, as, c, chars, i, i$1, isASCII, m, s;
  24362. if (chars === "") {
  24363. return -1;
  24364. }
  24365. if (s.length > 8) {
  24366. _tuple = makeASCIISet(chars);
  24367. as = $clone(_tuple[0], asciiSet);
  24368. isASCII = _tuple[1];
  24369. if (isASCII) {
  24370. i = 0;
  24371. while (true) {
  24372. if (!(i < s.length)) { break; }
  24373. if (new ptrType$5(as).contains(s.charCodeAt(i))) {
  24374. return i;
  24375. }
  24376. i = i + (1) >> 0;
  24377. }
  24378. return -1;
  24379. }
  24380. }
  24381. _ref = s;
  24382. _i = 0;
  24383. while (true) {
  24384. if (!(_i < _ref.length)) { break; }
  24385. _rune = $decodeRune(_ref, _i);
  24386. i$1 = _i;
  24387. c = _rune[0];
  24388. _ref$1 = chars;
  24389. _i$1 = 0;
  24390. while (true) {
  24391. if (!(_i$1 < _ref$1.length)) { break; }
  24392. _rune$1 = $decodeRune(_ref$1, _i$1);
  24393. m = _rune$1[0];
  24394. if (c === m) {
  24395. return i$1;
  24396. }
  24397. _i$1 += _rune$1[1];
  24398. }
  24399. _i += _rune[1];
  24400. }
  24401. return -1;
  24402. };
  24403. $pkg.IndexAny = IndexAny;
  24404. LastIndexByte = function(s, c) {
  24405. var c, i, s;
  24406. i = s.length - 1 >> 0;
  24407. while (true) {
  24408. if (!(i >= 0)) { break; }
  24409. if (s.charCodeAt(i) === c) {
  24410. return i;
  24411. }
  24412. i = i - (1) >> 0;
  24413. }
  24414. return -1;
  24415. };
  24416. $pkg.LastIndexByte = LastIndexByte;
  24417. genSplit = function(s, sep, sepSave, n) {
  24418. var a, i, m, n, s, sep, sepSave;
  24419. if (n === 0) {
  24420. return sliceType$1.nil;
  24421. }
  24422. if (sep === "") {
  24423. return explode(s, n);
  24424. }
  24425. if (n < 0) {
  24426. n = Count(s, sep) + 1 >> 0;
  24427. }
  24428. a = $makeSlice(sliceType$1, n);
  24429. n = n - (1) >> 0;
  24430. i = 0;
  24431. while (true) {
  24432. if (!(i < n)) { break; }
  24433. m = Index(s, sep);
  24434. if (m < 0) {
  24435. break;
  24436. }
  24437. ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = $substring(s, 0, (m + sepSave >> 0)));
  24438. s = $substring(s, (m + sep.length >> 0));
  24439. i = i + (1) >> 0;
  24440. }
  24441. ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = s);
  24442. return $subslice(a, 0, (i + 1 >> 0));
  24443. };
  24444. SplitN = function(s, sep, n) {
  24445. var n, s, sep;
  24446. return genSplit(s, sep, 0, n);
  24447. };
  24448. $pkg.SplitN = SplitN;
  24449. Split = function(s, sep) {
  24450. var s, sep;
  24451. return genSplit(s, sep, 0, -1);
  24452. };
  24453. $pkg.Split = Split;
  24454. Join = function(a, sep) {
  24455. var _1, _i, _ref, a, b, i, n, s, sep;
  24456. _1 = a.$length;
  24457. if (_1 === (0)) {
  24458. return "";
  24459. } else if (_1 === (1)) {
  24460. return (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]);
  24461. }
  24462. n = $imul(sep.length, ((a.$length - 1 >> 0)));
  24463. i = 0;
  24464. while (true) {
  24465. if (!(i < a.$length)) { break; }
  24466. n = n + (((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]).length) >> 0;
  24467. i = i + (1) >> 0;
  24468. }
  24469. b = new Builder.ptr(ptrType.nil, sliceType.nil);
  24470. b.Grow(n);
  24471. b.WriteString((0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]));
  24472. _ref = $subslice(a, 1);
  24473. _i = 0;
  24474. while (true) {
  24475. if (!(_i < _ref.$length)) { break; }
  24476. s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  24477. b.WriteString(sep);
  24478. b.WriteString(s);
  24479. _i++;
  24480. }
  24481. return b.String();
  24482. };
  24483. $pkg.Join = Join;
  24484. HasPrefix = function(s, prefix) {
  24485. var prefix, s;
  24486. return s.length >= prefix.length && $substring(s, 0, prefix.length) === prefix;
  24487. };
  24488. $pkg.HasPrefix = HasPrefix;
  24489. HasSuffix = function(s, suffix) {
  24490. var s, suffix;
  24491. return s.length >= suffix.length && $substring(s, (s.length - suffix.length >> 0)) === suffix;
  24492. };
  24493. $pkg.HasSuffix = HasSuffix;
  24494. Map = function(mapping, s) {
  24495. var _i, _i$1, _r, _r$1, _ref, _ref$1, _rune, _rune$1, _tuple, b, c, c$1, i, mapping, r, r$1, s, width, $s, $r;
  24496. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _ref$1 = $f._ref$1; _rune = $f._rune; _rune$1 = $f._rune$1; _tuple = $f._tuple; b = $f.b; c = $f.c; c$1 = $f.c$1; i = $f.i; mapping = $f.mapping; r = $f.r; r$1 = $f.r$1; s = $f.s; width = $f.width; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  24497. b = new Builder.ptr(ptrType.nil, sliceType.nil);
  24498. _ref = s;
  24499. _i = 0;
  24500. /* while (true) { */ case 1:
  24501. /* if (!(_i < _ref.length)) { break; } */ if(!(_i < _ref.length)) { $s = 2; continue; }
  24502. _rune = $decodeRune(_ref, _i);
  24503. i = _i;
  24504. c = _rune[0];
  24505. _r = mapping(c); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  24506. r = _r;
  24507. if ((r === c) && !((c === 65533))) {
  24508. _i += _rune[1];
  24509. /* continue; */ $s = 1; continue;
  24510. }
  24511. width = 0;
  24512. if (c === 65533) {
  24513. _tuple = utf8.DecodeRuneInString($substring(s, i));
  24514. c = _tuple[0];
  24515. width = _tuple[1];
  24516. if (!((width === 1)) && (r === c)) {
  24517. _i += _rune[1];
  24518. /* continue; */ $s = 1; continue;
  24519. }
  24520. } else {
  24521. width = utf8.RuneLen(c);
  24522. }
  24523. b.Grow(s.length + 4 >> 0);
  24524. b.WriteString($substring(s, 0, i));
  24525. if (r >= 0) {
  24526. b.WriteRune(r);
  24527. }
  24528. s = $substring(s, (i + width >> 0));
  24529. /* break; */ $s = 2; continue;
  24530. /* } */ $s = 1; continue; case 2:
  24531. if (b.Cap() === 0) {
  24532. $s = -1; return s;
  24533. }
  24534. _ref$1 = s;
  24535. _i$1 = 0;
  24536. /* while (true) { */ case 4:
  24537. /* if (!(_i$1 < _ref$1.length)) { break; } */ if(!(_i$1 < _ref$1.length)) { $s = 5; continue; }
  24538. _rune$1 = $decodeRune(_ref$1, _i$1);
  24539. c$1 = _rune$1[0];
  24540. _r$1 = mapping(c$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  24541. r$1 = _r$1;
  24542. if (r$1 >= 0) {
  24543. if (r$1 < 128) {
  24544. b.WriteByte(((r$1 << 24 >>> 24)));
  24545. } else {
  24546. b.WriteRune(r$1);
  24547. }
  24548. }
  24549. _i$1 += _rune$1[1];
  24550. /* } */ $s = 4; continue; case 5:
  24551. $s = -1; return b.String();
  24552. /* */ } return; } if ($f === undefined) { $f = { $blk: Map }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._ref$1 = _ref$1; $f._rune = _rune; $f._rune$1 = _rune$1; $f._tuple = _tuple; $f.b = b; $f.c = c; $f.c$1 = c$1; $f.i = i; $f.mapping = mapping; $f.r = r; $f.r$1 = r$1; $f.s = s; $f.width = width; $f.$s = $s; $f.$r = $r; return $f;
  24553. };
  24554. $pkg.Map = Map;
  24555. ToLower = function(s) {
  24556. var _r, _tmp, _tmp$1, b, c, c$1, hasUpper, i, i$1, isASCII, s, $s, $r;
  24557. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; b = $f.b; c = $f.c; c$1 = $f.c$1; hasUpper = $f.hasUpper; i = $f.i; i$1 = $f.i$1; isASCII = $f.isASCII; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  24558. _tmp = true;
  24559. _tmp$1 = false;
  24560. isASCII = _tmp;
  24561. hasUpper = _tmp$1;
  24562. i = 0;
  24563. while (true) {
  24564. if (!(i < s.length)) { break; }
  24565. c = s.charCodeAt(i);
  24566. if (c >= 128) {
  24567. isASCII = false;
  24568. break;
  24569. }
  24570. hasUpper = hasUpper || (c >= 65 && c <= 90);
  24571. i = i + (1) >> 0;
  24572. }
  24573. if (isASCII) {
  24574. if (!hasUpper) {
  24575. $s = -1; return s;
  24576. }
  24577. b = new Builder.ptr(ptrType.nil, sliceType.nil);
  24578. b.Grow(s.length);
  24579. i$1 = 0;
  24580. while (true) {
  24581. if (!(i$1 < s.length)) { break; }
  24582. c$1 = s.charCodeAt(i$1);
  24583. if (c$1 >= 65 && c$1 <= 90) {
  24584. c$1 = c$1 + (32) << 24 >>> 24;
  24585. }
  24586. b.WriteByte(c$1);
  24587. i$1 = i$1 + (1) >> 0;
  24588. }
  24589. $s = -1; return b.String();
  24590. }
  24591. _r = Map(unicode.ToLower, s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  24592. $s = -1; return _r;
  24593. /* */ } return; } if ($f === undefined) { $f = { $blk: ToLower }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f.b = b; $f.c = c; $f.c$1 = c$1; $f.hasUpper = hasUpper; $f.i = i; $f.i$1 = i$1; $f.isASCII = isASCII; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  24594. };
  24595. $pkg.ToLower = ToLower;
  24596. makeASCIISet = function(chars) {
  24597. var _index, _tmp, _tmp$1, _tmp$2, _tmp$3, as, c, chars, i, ok, y;
  24598. as = arrayType$3.zero();
  24599. ok = false;
  24600. i = 0;
  24601. while (true) {
  24602. if (!(i < chars.length)) { break; }
  24603. c = chars.charCodeAt(i);
  24604. if (c >= 128) {
  24605. _tmp = $clone(as, asciiSet);
  24606. _tmp$1 = false;
  24607. asciiSet.copy(as, _tmp);
  24608. ok = _tmp$1;
  24609. return [as, ok];
  24610. }
  24611. _index = c >>> 5 << 24 >>> 24;
  24612. ((_index < 0 || _index >= as.length) ? ($throwRuntimeError("index out of range"), undefined) : as[_index] = ((((_index < 0 || _index >= as.length) ? ($throwRuntimeError("index out of range"), undefined) : as[_index]) | (((y = ((((c & 31) >>> 0) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0));
  24613. i = i + (1) >> 0;
  24614. }
  24615. _tmp$2 = $clone(as, asciiSet);
  24616. _tmp$3 = true;
  24617. asciiSet.copy(as, _tmp$2);
  24618. ok = _tmp$3;
  24619. return [as, ok];
  24620. };
  24621. asciiSet.prototype.contains = function(c) {
  24622. var as, c, x, y;
  24623. as = this.$val;
  24624. return !((((((x = c >>> 5 << 24 >>> 24, (as.nilCheck, ((x < 0 || x >= as.length) ? ($throwRuntimeError("index out of range"), undefined) : as[x]))) & (((y = ((((c & 31) >>> 0) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0)) === 0));
  24625. };
  24626. $ptrType(asciiSet).prototype.contains = function(c) { return (new asciiSet(this.$get())).contains(c); };
  24627. TrimPrefix = function(s, prefix) {
  24628. var prefix, s;
  24629. if (HasPrefix(s, prefix)) {
  24630. return $substring(s, prefix.length);
  24631. }
  24632. return s;
  24633. };
  24634. $pkg.TrimPrefix = TrimPrefix;
  24635. ptrType.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "copyCheck", name: "copyCheck", pkg: "strings", typ: $funcType([], [], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "grow", name: "grow", pkg: "strings", typ: $funcType([$Int], [], false)}, {prop: "Grow", name: "Grow", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "WriteByte", name: "WriteByte", pkg: "", typ: $funcType([$Uint8], [$error], false)}, {prop: "WriteRune", name: "WriteRune", pkg: "", typ: $funcType([$Int32], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}];
  24636. ptrType$5.methods = [{prop: "contains", name: "contains", pkg: "strings", typ: $funcType([$Uint8], [$Bool], false)}];
  24637. Builder.init("strings", [{prop: "addr", name: "addr", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType, tag: ""}]);
  24638. asciiSet.init($Uint32, 8);
  24639. $init = function() {
  24640. $pkg.$init = function() {};
  24641. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  24642. $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  24643. $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  24644. $r = bytealg.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  24645. $r = io.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  24646. $r = sync.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  24647. $r = unicode.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  24648. $r = utf8.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  24649. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  24650. };
  24651. $pkg.$init = $init;
  24652. return $pkg;
  24653. })();
  24654. $packages["regexp/syntax"] = (function() {
  24655. var $pkg = {}, $init, sort, strconv, strings, unicode, utf8, patchList, frag, compiler, Error, ErrorCode, Flags, parser, charGroup, ranges, Prog, InstOp, EmptyOp, Inst, Regexp, Op, sliceType, sliceType$1, sliceType$2, sliceType$3, ptrType, sliceType$4, ptrType$1, sliceType$5, arrayType, arrayType$1, ptrType$2, ptrType$3, ptrType$4, sliceType$6, ptrType$5, ptrType$6, ptrType$7, ptrType$8, anyRuneNotNL, anyRune, _Op_index_0, anyTable, code1, code2, code3, perlGroup, code4, code5, code6, code7, code8, code9, code10, code11, code12, code13, code14, code15, code16, code17, posixGroup, instOpNames, Compile, minFoldRune, repeatIsValid, cleanAlt, literalRegexp, Parse, isValidCaptureName, isCharClass, matchRune, mergeCharClass, unicodeTable, cleanClass, appendLiteral, appendRange, appendFoldedRange, appendClass, appendFoldedClass, appendNegatedClass, appendTable, appendNegatedTable, negateClass, checkUTF8, nextRune, isalnum, unhex, IsWordChar, bw, dumpProg, u32, dumpInst, writeRegexp, escape, simplify1;
  24656. sort = $packages["sort"];
  24657. strconv = $packages["strconv"];
  24658. strings = $packages["strings"];
  24659. unicode = $packages["unicode"];
  24660. utf8 = $packages["unicode/utf8"];
  24661. patchList = $pkg.patchList = $newType(4, $kindUint32, "syntax.patchList", true, "regexp/syntax", false, null);
  24662. frag = $pkg.frag = $newType(0, $kindStruct, "syntax.frag", true, "regexp/syntax", false, function(i_, out_) {
  24663. this.$val = this;
  24664. if (arguments.length === 0) {
  24665. this.i = 0;
  24666. this.out = 0;
  24667. return;
  24668. }
  24669. this.i = i_;
  24670. this.out = out_;
  24671. });
  24672. compiler = $pkg.compiler = $newType(0, $kindStruct, "syntax.compiler", true, "regexp/syntax", false, function(p_) {
  24673. this.$val = this;
  24674. if (arguments.length === 0) {
  24675. this.p = ptrType.nil;
  24676. return;
  24677. }
  24678. this.p = p_;
  24679. });
  24680. Error = $pkg.Error = $newType(0, $kindStruct, "syntax.Error", true, "regexp/syntax", true, function(Code_, Expr_) {
  24681. this.$val = this;
  24682. if (arguments.length === 0) {
  24683. this.Code = "";
  24684. this.Expr = "";
  24685. return;
  24686. }
  24687. this.Code = Code_;
  24688. this.Expr = Expr_;
  24689. });
  24690. ErrorCode = $pkg.ErrorCode = $newType(8, $kindString, "syntax.ErrorCode", true, "regexp/syntax", true, null);
  24691. Flags = $pkg.Flags = $newType(2, $kindUint16, "syntax.Flags", true, "regexp/syntax", true, null);
  24692. parser = $pkg.parser = $newType(0, $kindStruct, "syntax.parser", true, "regexp/syntax", false, function(flags_, stack_, free_, numCap_, wholeRegexp_, tmpClass_) {
  24693. this.$val = this;
  24694. if (arguments.length === 0) {
  24695. this.flags = 0;
  24696. this.stack = sliceType$5.nil;
  24697. this.free = ptrType$1.nil;
  24698. this.numCap = 0;
  24699. this.wholeRegexp = "";
  24700. this.tmpClass = sliceType.nil;
  24701. return;
  24702. }
  24703. this.flags = flags_;
  24704. this.stack = stack_;
  24705. this.free = free_;
  24706. this.numCap = numCap_;
  24707. this.wholeRegexp = wholeRegexp_;
  24708. this.tmpClass = tmpClass_;
  24709. });
  24710. charGroup = $pkg.charGroup = $newType(0, $kindStruct, "syntax.charGroup", true, "regexp/syntax", false, function(sign_, class$1_) {
  24711. this.$val = this;
  24712. if (arguments.length === 0) {
  24713. this.sign = 0;
  24714. this.class$1 = sliceType.nil;
  24715. return;
  24716. }
  24717. this.sign = sign_;
  24718. this.class$1 = class$1_;
  24719. });
  24720. ranges = $pkg.ranges = $newType(0, $kindStruct, "syntax.ranges", true, "regexp/syntax", false, function(p_) {
  24721. this.$val = this;
  24722. if (arguments.length === 0) {
  24723. this.p = ptrType$2.nil;
  24724. return;
  24725. }
  24726. this.p = p_;
  24727. });
  24728. Prog = $pkg.Prog = $newType(0, $kindStruct, "syntax.Prog", true, "regexp/syntax", true, function(Inst_, Start_, NumCap_) {
  24729. this.$val = this;
  24730. if (arguments.length === 0) {
  24731. this.Inst = sliceType$4.nil;
  24732. this.Start = 0;
  24733. this.NumCap = 0;
  24734. return;
  24735. }
  24736. this.Inst = Inst_;
  24737. this.Start = Start_;
  24738. this.NumCap = NumCap_;
  24739. });
  24740. InstOp = $pkg.InstOp = $newType(1, $kindUint8, "syntax.InstOp", true, "regexp/syntax", true, null);
  24741. EmptyOp = $pkg.EmptyOp = $newType(1, $kindUint8, "syntax.EmptyOp", true, "regexp/syntax", true, null);
  24742. Inst = $pkg.Inst = $newType(0, $kindStruct, "syntax.Inst", true, "regexp/syntax", true, function(Op_, Out_, Arg_, Rune_) {
  24743. this.$val = this;
  24744. if (arguments.length === 0) {
  24745. this.Op = 0;
  24746. this.Out = 0;
  24747. this.Arg = 0;
  24748. this.Rune = sliceType.nil;
  24749. return;
  24750. }
  24751. this.Op = Op_;
  24752. this.Out = Out_;
  24753. this.Arg = Arg_;
  24754. this.Rune = Rune_;
  24755. });
  24756. Regexp = $pkg.Regexp = $newType(0, $kindStruct, "syntax.Regexp", true, "regexp/syntax", true, function(Op_, Flags_, Sub_, Sub0_, Rune_, Rune0_, Min_, Max_, Cap_, Name_) {
  24757. this.$val = this;
  24758. if (arguments.length === 0) {
  24759. this.Op = 0;
  24760. this.Flags = 0;
  24761. this.Sub = sliceType$5.nil;
  24762. this.Sub0 = arrayType.zero();
  24763. this.Rune = sliceType.nil;
  24764. this.Rune0 = arrayType$1.zero();
  24765. this.Min = 0;
  24766. this.Max = 0;
  24767. this.Cap = 0;
  24768. this.Name = "";
  24769. return;
  24770. }
  24771. this.Op = Op_;
  24772. this.Flags = Flags_;
  24773. this.Sub = Sub_;
  24774. this.Sub0 = Sub0_;
  24775. this.Rune = Rune_;
  24776. this.Rune0 = Rune0_;
  24777. this.Min = Min_;
  24778. this.Max = Max_;
  24779. this.Cap = Cap_;
  24780. this.Name = Name_;
  24781. });
  24782. Op = $pkg.Op = $newType(1, $kindUint8, "syntax.Op", true, "regexp/syntax", true, null);
  24783. sliceType = $sliceType($Int32);
  24784. sliceType$1 = $sliceType(unicode.Range16);
  24785. sliceType$2 = $sliceType(unicode.Range32);
  24786. sliceType$3 = $sliceType($String);
  24787. ptrType = $ptrType(Prog);
  24788. sliceType$4 = $sliceType(Inst);
  24789. ptrType$1 = $ptrType(Regexp);
  24790. sliceType$5 = $sliceType(ptrType$1);
  24791. arrayType = $arrayType(ptrType$1, 1);
  24792. arrayType$1 = $arrayType($Int32, 2);
  24793. ptrType$2 = $ptrType(sliceType);
  24794. ptrType$3 = $ptrType(unicode.RangeTable);
  24795. ptrType$4 = $ptrType(strings.Builder);
  24796. sliceType$6 = $sliceType($Uint8);
  24797. ptrType$5 = $ptrType(compiler);
  24798. ptrType$6 = $ptrType(Error);
  24799. ptrType$7 = $ptrType(parser);
  24800. ptrType$8 = $ptrType(Inst);
  24801. patchList.prototype.next = function(p) {
  24802. var i, l, p, x, x$1;
  24803. l = this.$val;
  24804. i = (x = p.Inst, x$1 = l >>> 1 >>> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]));
  24805. if (((l & 1) >>> 0) === 0) {
  24806. return ((i.Out >>> 0));
  24807. }
  24808. return ((i.Arg >>> 0));
  24809. };
  24810. $ptrType(patchList).prototype.next = function(p) { return new patchList(this.$get()).next(p); };
  24811. patchList.prototype.patch = function(p, val) {
  24812. var i, l, p, val, x, x$1;
  24813. l = this.$val;
  24814. while (true) {
  24815. if (!(!((l === 0)))) { break; }
  24816. i = (x = p.Inst, x$1 = l >>> 1 >>> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]));
  24817. if (((l & 1) >>> 0) === 0) {
  24818. l = ((i.Out >>> 0));
  24819. i.Out = val;
  24820. } else {
  24821. l = ((i.Arg >>> 0));
  24822. i.Arg = val;
  24823. }
  24824. }
  24825. };
  24826. $ptrType(patchList).prototype.patch = function(p, val) { return new patchList(this.$get()).patch(p, val); };
  24827. patchList.prototype.append = function(p, l2) {
  24828. var i, l1, l2, last, next, p, x, x$1;
  24829. l1 = this.$val;
  24830. if (l1 === 0) {
  24831. return l2;
  24832. }
  24833. if (l2 === 0) {
  24834. return l1;
  24835. }
  24836. last = l1;
  24837. while (true) {
  24838. next = new patchList(last).next(p);
  24839. if (next === 0) {
  24840. break;
  24841. }
  24842. last = next;
  24843. }
  24844. i = (x = p.Inst, x$1 = last >>> 1 >>> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]));
  24845. if (((last & 1) >>> 0) === 0) {
  24846. i.Out = ((l2 >>> 0));
  24847. } else {
  24848. i.Arg = ((l2 >>> 0));
  24849. }
  24850. return l1;
  24851. };
  24852. $ptrType(patchList).prototype.append = function(p, l2) { return new patchList(this.$get()).append(p, l2); };
  24853. Compile = function(re) {
  24854. var c, f, re;
  24855. c = new compiler.ptr(ptrType.nil);
  24856. c.init();
  24857. f = $clone(c.compile(re), frag);
  24858. new patchList(f.out).patch(c.p, c.inst(4).i);
  24859. c.p.Start = ((f.i >> 0));
  24860. return [c.p, $ifaceNil];
  24861. };
  24862. $pkg.Compile = Compile;
  24863. compiler.ptr.prototype.init = function() {
  24864. var c;
  24865. c = this;
  24866. c.p = new Prog.ptr(sliceType$4.nil, 0, 0);
  24867. c.p.NumCap = 2;
  24868. c.inst(5);
  24869. };
  24870. compiler.prototype.init = function() { return this.$val.init(); };
  24871. compiler.ptr.prototype.compile = function(re) {
  24872. var _1, _i, _i$1, _i$2, _ref, _ref$1, _ref$2, bra, c, f, f$1, f$2, f1, i, j, ket, re, sub, sub$1, sub$2, x, x$1, x$2, x$3;
  24873. c = this;
  24874. _1 = re.Op;
  24875. if (_1 === (1)) {
  24876. return c.fail();
  24877. } else if (_1 === (2)) {
  24878. return c.nop();
  24879. } else if (_1 === (3)) {
  24880. if (re.Rune.$length === 0) {
  24881. return c.nop();
  24882. }
  24883. f = new frag.ptr(0, 0);
  24884. _ref = re.Rune;
  24885. _i = 0;
  24886. while (true) {
  24887. if (!(_i < _ref.$length)) { break; }
  24888. j = _i;
  24889. f1 = $clone(c.rune($subslice(re.Rune, j, (j + 1 >> 0)), re.Flags), frag);
  24890. if (j === 0) {
  24891. frag.copy(f, f1);
  24892. } else {
  24893. frag.copy(f, c.cat($clone(f, frag), $clone(f1, frag)));
  24894. }
  24895. _i++;
  24896. }
  24897. return f;
  24898. } else if (_1 === (4)) {
  24899. return c.rune(re.Rune, re.Flags);
  24900. } else if (_1 === (5)) {
  24901. return c.rune(anyRuneNotNL, 0);
  24902. } else if (_1 === (6)) {
  24903. return c.rune(anyRune, 0);
  24904. } else if (_1 === (7)) {
  24905. return c.empty(1);
  24906. } else if (_1 === (8)) {
  24907. return c.empty(2);
  24908. } else if (_1 === (9)) {
  24909. return c.empty(4);
  24910. } else if (_1 === (10)) {
  24911. return c.empty(8);
  24912. } else if (_1 === (11)) {
  24913. return c.empty(16);
  24914. } else if (_1 === (12)) {
  24915. return c.empty(32);
  24916. } else if (_1 === (13)) {
  24917. bra = $clone(c.cap((((re.Cap << 1 >> 0) >>> 0))), frag);
  24918. sub = $clone(c.compile((x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))), frag);
  24919. ket = $clone(c.cap(((((re.Cap << 1 >> 0) | 1) >>> 0))), frag);
  24920. return c.cat($clone(c.cat($clone(bra, frag), $clone(sub, frag)), frag), $clone(ket, frag));
  24921. } else if (_1 === (14)) {
  24922. return c.star($clone(c.compile((x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]))), frag), !((((re.Flags & 32) >>> 0) === 0)));
  24923. } else if (_1 === (15)) {
  24924. return c.plus($clone(c.compile((x$2 = re.Sub, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))), frag), !((((re.Flags & 32) >>> 0) === 0)));
  24925. } else if (_1 === (16)) {
  24926. return c.quest($clone(c.compile((x$3 = re.Sub, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0]))), frag), !((((re.Flags & 32) >>> 0) === 0)));
  24927. } else if (_1 === (18)) {
  24928. if (re.Sub.$length === 0) {
  24929. return c.nop();
  24930. }
  24931. f$1 = new frag.ptr(0, 0);
  24932. _ref$1 = re.Sub;
  24933. _i$1 = 0;
  24934. while (true) {
  24935. if (!(_i$1 < _ref$1.$length)) { break; }
  24936. i = _i$1;
  24937. sub$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]);
  24938. if (i === 0) {
  24939. frag.copy(f$1, c.compile(sub$1));
  24940. } else {
  24941. frag.copy(f$1, c.cat($clone(f$1, frag), $clone(c.compile(sub$1), frag)));
  24942. }
  24943. _i$1++;
  24944. }
  24945. return f$1;
  24946. } else if (_1 === (19)) {
  24947. f$2 = new frag.ptr(0, 0);
  24948. _ref$2 = re.Sub;
  24949. _i$2 = 0;
  24950. while (true) {
  24951. if (!(_i$2 < _ref$2.$length)) { break; }
  24952. sub$2 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]);
  24953. frag.copy(f$2, c.alt($clone(f$2, frag), $clone(c.compile(sub$2), frag)));
  24954. _i$2++;
  24955. }
  24956. return f$2;
  24957. }
  24958. $panic(new $String("regexp: unhandled case in compile"));
  24959. };
  24960. compiler.prototype.compile = function(re) { return this.$val.compile(re); };
  24961. compiler.ptr.prototype.inst = function(op) {
  24962. var c, f, op;
  24963. c = this;
  24964. f = new frag.ptr(((c.p.Inst.$length >>> 0)), 0);
  24965. c.p.Inst = $append(c.p.Inst, new Inst.ptr(op, 0, 0, sliceType.nil));
  24966. return f;
  24967. };
  24968. compiler.prototype.inst = function(op) { return this.$val.inst(op); };
  24969. compiler.ptr.prototype.nop = function() {
  24970. var c, f;
  24971. c = this;
  24972. f = $clone(c.inst(6), frag);
  24973. f.out = (((f.i << 1 >>> 0) >>> 0));
  24974. return f;
  24975. };
  24976. compiler.prototype.nop = function() { return this.$val.nop(); };
  24977. compiler.ptr.prototype.fail = function() {
  24978. var c;
  24979. c = this;
  24980. return new frag.ptr(0, 0);
  24981. };
  24982. compiler.prototype.fail = function() { return this.$val.fail(); };
  24983. compiler.ptr.prototype.cap = function(arg) {
  24984. var arg, c, f, x, x$1;
  24985. c = this;
  24986. f = $clone(c.inst(2), frag);
  24987. f.out = (((f.i << 1 >>> 0) >>> 0));
  24988. (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Arg = arg;
  24989. if (c.p.NumCap < (((arg >> 0)) + 1 >> 0)) {
  24990. c.p.NumCap = ((arg >> 0)) + 1 >> 0;
  24991. }
  24992. return f;
  24993. };
  24994. compiler.prototype.cap = function(arg) { return this.$val.cap(arg); };
  24995. compiler.ptr.prototype.cat = function(f1, f2) {
  24996. var c, f1, f2;
  24997. c = this;
  24998. if ((f1.i === 0) || (f2.i === 0)) {
  24999. return new frag.ptr(0, 0);
  25000. }
  25001. new patchList(f1.out).patch(c.p, f2.i);
  25002. return new frag.ptr(f1.i, f2.out);
  25003. };
  25004. compiler.prototype.cat = function(f1, f2) { return this.$val.cat(f1, f2); };
  25005. compiler.ptr.prototype.alt = function(f1, f2) {
  25006. var c, f, f1, f2, i, x, x$1;
  25007. c = this;
  25008. if (f1.i === 0) {
  25009. return f2;
  25010. }
  25011. if (f2.i === 0) {
  25012. return f1;
  25013. }
  25014. f = $clone(c.inst(0), frag);
  25015. i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]));
  25016. i.Out = f1.i;
  25017. i.Arg = f2.i;
  25018. f.out = new patchList(f1.out).append(c.p, f2.out);
  25019. return f;
  25020. };
  25021. compiler.prototype.alt = function(f1, f2) { return this.$val.alt(f1, f2); };
  25022. compiler.ptr.prototype.quest = function(f1, nongreedy) {
  25023. var c, f, f1, i, nongreedy, x, x$1;
  25024. c = this;
  25025. f = $clone(c.inst(0), frag);
  25026. i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]));
  25027. if (nongreedy) {
  25028. i.Arg = f1.i;
  25029. f.out = (((f.i << 1 >>> 0) >>> 0));
  25030. } else {
  25031. i.Out = f1.i;
  25032. f.out = (((((f.i << 1 >>> 0) | 1) >>> 0) >>> 0));
  25033. }
  25034. f.out = new patchList(f.out).append(c.p, f1.out);
  25035. return f;
  25036. };
  25037. compiler.prototype.quest = function(f1, nongreedy) { return this.$val.quest(f1, nongreedy); };
  25038. compiler.ptr.prototype.star = function(f1, nongreedy) {
  25039. var c, f, f1, i, nongreedy, x, x$1;
  25040. c = this;
  25041. f = $clone(c.inst(0), frag);
  25042. i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]));
  25043. if (nongreedy) {
  25044. i.Arg = f1.i;
  25045. f.out = (((f.i << 1 >>> 0) >>> 0));
  25046. } else {
  25047. i.Out = f1.i;
  25048. f.out = (((((f.i << 1 >>> 0) | 1) >>> 0) >>> 0));
  25049. }
  25050. new patchList(f1.out).patch(c.p, f.i);
  25051. return f;
  25052. };
  25053. compiler.prototype.star = function(f1, nongreedy) { return this.$val.star(f1, nongreedy); };
  25054. compiler.ptr.prototype.plus = function(f1, nongreedy) {
  25055. var c, f1, nongreedy;
  25056. c = this;
  25057. return new frag.ptr(f1.i, c.star($clone(f1, frag), nongreedy).out);
  25058. };
  25059. compiler.prototype.plus = function(f1, nongreedy) { return this.$val.plus(f1, nongreedy); };
  25060. compiler.ptr.prototype.empty = function(op) {
  25061. var c, f, op, x, x$1;
  25062. c = this;
  25063. f = $clone(c.inst(3), frag);
  25064. (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Arg = ((op >>> 0));
  25065. f.out = (((f.i << 1 >>> 0) >>> 0));
  25066. return f;
  25067. };
  25068. compiler.prototype.empty = function(op) { return this.$val.empty(op); };
  25069. compiler.ptr.prototype.rune = function(r, flags) {
  25070. var c, f, flags, i, r, x, x$1;
  25071. c = this;
  25072. f = $clone(c.inst(7), frag);
  25073. i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]));
  25074. i.Rune = r;
  25075. flags = (flags & (1)) >>> 0;
  25076. if (!((r.$length === 1)) || (unicode.SimpleFold((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0])) === (0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]))) {
  25077. flags = (flags & ~(1)) << 16 >>> 16;
  25078. }
  25079. i.Arg = ((flags >>> 0));
  25080. f.out = (((f.i << 1 >>> 0) >>> 0));
  25081. if ((((flags & 1) >>> 0) === 0) && ((r.$length === 1) || (r.$length === 2) && ((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]) === (1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1])))) {
  25082. i.Op = 8;
  25083. } else if ((r.$length === 2) && ((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]) === 0) && ((1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1]) === 1114111)) {
  25084. i.Op = 9;
  25085. } else if ((r.$length === 4) && ((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]) === 0) && ((1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1]) === 9) && ((2 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 2]) === 11) && ((3 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 3]) === 1114111)) {
  25086. i.Op = 10;
  25087. }
  25088. return f;
  25089. };
  25090. compiler.prototype.rune = function(r, flags) { return this.$val.rune(r, flags); };
  25091. Op.prototype.String = function() {
  25092. var i, x;
  25093. i = this.$val;
  25094. if (1 <= i && i <= 19) {
  25095. i = i - (1) << 24 >>> 24;
  25096. return $substring("NoMatchEmptyMatchLiteralCharClassAnyCharNotNLAnyCharBeginLineEndLineBeginTextEndTextWordBoundaryNoWordBoundaryCaptureStarPlusQuestRepeatConcatAlternate", ((i < 0 || i >= _Op_index_0.length) ? ($throwRuntimeError("index out of range"), undefined) : _Op_index_0[i]), (x = i + 1 << 24 >>> 24, ((x < 0 || x >= _Op_index_0.length) ? ($throwRuntimeError("index out of range"), undefined) : _Op_index_0[x])));
  25097. } else if ((i === 128)) {
  25098. return "opPseudo";
  25099. } else {
  25100. return "Op(" + strconv.FormatInt((new $Int64(0, i)), 10) + ")";
  25101. }
  25102. };
  25103. $ptrType(Op).prototype.String = function() { return new Op(this.$get()).String(); };
  25104. Error.ptr.prototype.Error = function() {
  25105. var e;
  25106. e = this;
  25107. return "error parsing regexp: " + new ErrorCode(e.Code).String() + ": `" + e.Expr + "`";
  25108. };
  25109. Error.prototype.Error = function() { return this.$val.Error(); };
  25110. ErrorCode.prototype.String = function() {
  25111. var e;
  25112. e = this.$val;
  25113. return (e);
  25114. };
  25115. $ptrType(ErrorCode).prototype.String = function() { return new ErrorCode(this.$get()).String(); };
  25116. parser.ptr.prototype.newRegexp = function(op) {
  25117. var op, p, re;
  25118. p = this;
  25119. re = p.free;
  25120. if (!(re === ptrType$1.nil)) {
  25121. p.free = re.Sub0[0];
  25122. Regexp.copy(re, new Regexp.ptr(0, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, ""));
  25123. } else {
  25124. re = new Regexp.ptr(0, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, "");
  25125. }
  25126. re.Op = op;
  25127. return re;
  25128. };
  25129. parser.prototype.newRegexp = function(op) { return this.$val.newRegexp(op); };
  25130. parser.ptr.prototype.reuse = function(re) {
  25131. var p, re;
  25132. p = this;
  25133. re.Sub0[0] = p.free;
  25134. p.free = re;
  25135. };
  25136. parser.prototype.reuse = function(re) { return this.$val.reuse(re); };
  25137. parser.ptr.prototype.push = function(re) {
  25138. var p, re, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
  25139. p = this;
  25140. if ((re.Op === 4) && (re.Rune.$length === 2) && ((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === (x$1 = re.Rune, (1 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 1])))) {
  25141. if (p.maybeConcat((x$16 = re.Rune, (0 >= x$16.$length ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + 0])), (p.flags & ~1) << 16 >>> 16)) {
  25142. return ptrType$1.nil;
  25143. }
  25144. re.Op = 3;
  25145. re.Rune = $subslice(re.Rune, 0, 1);
  25146. re.Flags = (p.flags & ~1) << 16 >>> 16;
  25147. } else if ((re.Op === 4) && (re.Rune.$length === 4) && ((x$2 = re.Rune, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])) === (x$3 = re.Rune, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1]))) && ((x$4 = re.Rune, (2 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 2])) === (x$5 = re.Rune, (3 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 3]))) && (unicode.SimpleFold((x$6 = re.Rune, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0]))) === (x$7 = re.Rune, (2 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 2]))) && (unicode.SimpleFold((x$8 = re.Rune, (2 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 2]))) === (x$9 = re.Rune, (0 >= x$9.$length ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + 0]))) || (re.Op === 4) && (re.Rune.$length === 2) && (((x$10 = re.Rune, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0])) + 1 >> 0) === (x$11 = re.Rune, (1 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 1]))) && (unicode.SimpleFold((x$12 = re.Rune, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0]))) === (x$13 = re.Rune, (1 >= x$13.$length ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + 1]))) && (unicode.SimpleFold((x$14 = re.Rune, (1 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 1]))) === (x$15 = re.Rune, (0 >= x$15.$length ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + 0])))) {
  25148. if (p.maybeConcat((x$17 = re.Rune, (0 >= x$17.$length ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + 0])), (p.flags | 1) >>> 0)) {
  25149. return ptrType$1.nil;
  25150. }
  25151. re.Op = 3;
  25152. re.Rune = $subslice(re.Rune, 0, 1);
  25153. re.Flags = (p.flags | 1) >>> 0;
  25154. } else {
  25155. p.maybeConcat(-1, 0);
  25156. }
  25157. p.stack = $append(p.stack, re);
  25158. return re;
  25159. };
  25160. parser.prototype.push = function(re) { return this.$val.push(re); };
  25161. parser.ptr.prototype.maybeConcat = function(r, flags) {
  25162. var flags, n, p, r, re1, re2, x, x$1, x$2, x$3, x$4;
  25163. p = this;
  25164. n = p.stack.$length;
  25165. if (n < 2) {
  25166. return false;
  25167. }
  25168. re1 = (x = p.stack, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]));
  25169. re2 = (x$2 = p.stack, x$3 = n - 2 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3]));
  25170. if (!((re1.Op === 3)) || !((re2.Op === 3)) || !((((re1.Flags & 1) >>> 0) === ((re2.Flags & 1) >>> 0)))) {
  25171. return false;
  25172. }
  25173. re2.Rune = $appendSlice(re2.Rune, re1.Rune);
  25174. if (r >= 0) {
  25175. re1.Rune = $subslice(new sliceType(re1.Rune0), 0, 1);
  25176. (x$4 = re1.Rune, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0] = r));
  25177. re1.Flags = flags;
  25178. return true;
  25179. }
  25180. p.stack = $subslice(p.stack, 0, (n - 1 >> 0));
  25181. p.reuse(re1);
  25182. return false;
  25183. };
  25184. parser.prototype.maybeConcat = function(r, flags) { return this.$val.maybeConcat(r, flags); };
  25185. parser.ptr.prototype.newLiteral = function(r, flags) {
  25186. var flags, p, r, re;
  25187. p = this;
  25188. re = p.newRegexp(3);
  25189. re.Flags = flags;
  25190. if (!((((flags & 1) >>> 0) === 0))) {
  25191. r = minFoldRune(r);
  25192. }
  25193. re.Rune0[0] = r;
  25194. re.Rune = $subslice(new sliceType(re.Rune0), 0, 1);
  25195. return re;
  25196. };
  25197. parser.prototype.newLiteral = function(r, flags) { return this.$val.newLiteral(r, flags); };
  25198. minFoldRune = function(r) {
  25199. var min, r, r0;
  25200. if (r < 65 || r > 125251) {
  25201. return r;
  25202. }
  25203. min = r;
  25204. r0 = r;
  25205. r = unicode.SimpleFold(r);
  25206. while (true) {
  25207. if (!(!((r === r0)))) { break; }
  25208. if (min > r) {
  25209. min = r;
  25210. }
  25211. r = unicode.SimpleFold(r);
  25212. }
  25213. return min;
  25214. };
  25215. parser.ptr.prototype.literal = function(r) {
  25216. var p, r;
  25217. p = this;
  25218. p.push(p.newLiteral(r, p.flags));
  25219. };
  25220. parser.prototype.literal = function(r) { return this.$val.literal(r); };
  25221. parser.ptr.prototype.op = function(op) {
  25222. var op, p, re;
  25223. p = this;
  25224. re = p.newRegexp(op);
  25225. re.Flags = p.flags;
  25226. return p.push(re);
  25227. };
  25228. parser.prototype.op = function(op) { return this.$val.op(op); };
  25229. parser.ptr.prototype.repeat = function(op, min, max, before, after, lastRepeat) {
  25230. var after, before, flags, lastRepeat, max, min, n, op, p, re, sub, x, x$1, x$2, x$3, x$4;
  25231. p = this;
  25232. flags = p.flags;
  25233. if (!((((p.flags & 64) >>> 0) === 0))) {
  25234. if (after.length > 0 && (after.charCodeAt(0) === 63)) {
  25235. after = $substring(after, 1);
  25236. flags = (flags ^ (32)) << 16 >>> 16;
  25237. }
  25238. if (!(lastRepeat === "")) {
  25239. return ["", new Error.ptr("invalid nested repetition operator", $substring(lastRepeat, 0, (lastRepeat.length - after.length >> 0)))];
  25240. }
  25241. }
  25242. n = p.stack.$length;
  25243. if (n === 0) {
  25244. return ["", new Error.ptr("missing argument to repetition operator", $substring(before, 0, (before.length - after.length >> 0)))];
  25245. }
  25246. sub = (x = p.stack, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]));
  25247. if (sub.Op >= 128) {
  25248. return ["", new Error.ptr("missing argument to repetition operator", $substring(before, 0, (before.length - after.length >> 0)))];
  25249. }
  25250. re = p.newRegexp(op);
  25251. re.Min = min;
  25252. re.Max = max;
  25253. re.Flags = flags;
  25254. re.Sub = $subslice(new sliceType$5(re.Sub0), 0, 1);
  25255. (x$2 = re.Sub, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0] = sub));
  25256. (x$3 = p.stack, x$4 = n - 1 >> 0, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4] = re));
  25257. if ((op === 17) && (min >= 2 || max >= 2) && !repeatIsValid(re, 1000)) {
  25258. return ["", new Error.ptr("invalid repeat count", $substring(before, 0, (before.length - after.length >> 0)))];
  25259. }
  25260. return [after, $ifaceNil];
  25261. };
  25262. parser.prototype.repeat = function(op, min, max, before, after, lastRepeat) { return this.$val.repeat(op, min, max, before, after, lastRepeat); };
  25263. repeatIsValid = function(re, n) {
  25264. var _i, _q, _ref, m, n, re, sub;
  25265. if (re.Op === 17) {
  25266. m = re.Max;
  25267. if (m === 0) {
  25268. return true;
  25269. }
  25270. if (m < 0) {
  25271. m = re.Min;
  25272. }
  25273. if (m > n) {
  25274. return false;
  25275. }
  25276. if (m > 0) {
  25277. n = (_q = n / (m), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
  25278. }
  25279. }
  25280. _ref = re.Sub;
  25281. _i = 0;
  25282. while (true) {
  25283. if (!(_i < _ref.$length)) { break; }
  25284. sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  25285. if (!repeatIsValid(sub, n)) {
  25286. return false;
  25287. }
  25288. _i++;
  25289. }
  25290. return true;
  25291. };
  25292. parser.ptr.prototype.concat = function() {
  25293. var _r, _r$1, i, p, subs, x, x$1, $s, $r;
  25294. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; i = $f.i; p = $f.p; subs = $f.subs; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  25295. p = this;
  25296. p.maybeConcat(-1, 0);
  25297. i = p.stack.$length;
  25298. while (true) {
  25299. if (!(i > 0 && (x = p.stack, x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op < 128)) { break; }
  25300. i = i - (1) >> 0;
  25301. }
  25302. subs = $subslice(p.stack, i);
  25303. p.stack = $subslice(p.stack, 0, i);
  25304. if (subs.$length === 0) {
  25305. $s = -1; return p.push(p.newRegexp(2));
  25306. }
  25307. _r = p.collapse(subs, 18); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  25308. _r$1 = p.push(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  25309. $s = -1; return _r$1;
  25310. /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.concat }; } $f._r = _r; $f._r$1 = _r$1; $f.i = i; $f.p = p; $f.subs = subs; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f;
  25311. };
  25312. parser.prototype.concat = function() { return this.$val.concat(); };
  25313. parser.ptr.prototype.alternate = function() {
  25314. var _r, _r$1, i, p, subs, x, x$1, x$2, $s, $r;
  25315. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; i = $f.i; p = $f.p; subs = $f.subs; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  25316. p = this;
  25317. i = p.stack.$length;
  25318. while (true) {
  25319. if (!(i > 0 && (x = p.stack, x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op < 128)) { break; }
  25320. i = i - (1) >> 0;
  25321. }
  25322. subs = $subslice(p.stack, i);
  25323. p.stack = $subslice(p.stack, 0, i);
  25324. /* */ if (subs.$length > 0) { $s = 1; continue; }
  25325. /* */ $s = 2; continue;
  25326. /* if (subs.$length > 0) { */ case 1:
  25327. $r = cleanAlt((x$2 = subs.$length - 1 >> 0, ((x$2 < 0 || x$2 >= subs.$length) ? ($throwRuntimeError("index out of range"), undefined) : subs.$array[subs.$offset + x$2]))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  25328. /* } */ case 2:
  25329. if (subs.$length === 0) {
  25330. $s = -1; return p.push(p.newRegexp(1));
  25331. }
  25332. _r = p.collapse(subs, 19); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  25333. _r$1 = p.push(_r); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  25334. $s = -1; return _r$1;
  25335. /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.alternate }; } $f._r = _r; $f._r$1 = _r$1; $f.i = i; $f.p = p; $f.subs = subs; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f;
  25336. };
  25337. parser.prototype.alternate = function() { return this.$val.alternate(); };
  25338. cleanAlt = function(re) {
  25339. var _1, _r, re, x, x$1, x$2, x$3, x$4, x$5, $s, $r;
  25340. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; re = $f.re; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  25341. _1 = re.Op;
  25342. /* */ if (_1 === (4)) { $s = 2; continue; }
  25343. /* */ $s = 3; continue;
  25344. /* if (_1 === (4)) { */ case 2:
  25345. _r = cleanClass((re.$ptr_Rune || (re.$ptr_Rune = new ptrType$2(function() { return this.$target.Rune; }, function($v) { this.$target.Rune = $v; }, re)))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  25346. re.Rune = _r;
  25347. if ((re.Rune.$length === 2) && ((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 0) && ((x$1 = re.Rune, (1 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 1])) === 1114111)) {
  25348. re.Rune = sliceType.nil;
  25349. re.Op = 6;
  25350. $s = -1; return;
  25351. }
  25352. if ((re.Rune.$length === 4) && ((x$2 = re.Rune, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])) === 0) && ((x$3 = re.Rune, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1])) === 9) && ((x$4 = re.Rune, (2 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 2])) === 11) && ((x$5 = re.Rune, (3 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 3])) === 1114111)) {
  25353. re.Rune = sliceType.nil;
  25354. re.Op = 5;
  25355. $s = -1; return;
  25356. }
  25357. if ((re.Rune.$capacity - re.Rune.$length >> 0) > 100) {
  25358. re.Rune = $appendSlice($subslice(new sliceType(re.Rune0), 0, 0), re.Rune);
  25359. }
  25360. /* } */ case 3:
  25361. case 1:
  25362. $s = -1; return;
  25363. /* */ } return; } if ($f === undefined) { $f = { $blk: cleanAlt }; } $f._1 = _1; $f._r = _r; $f.re = re; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.$s = $s; $f.$r = $r; return $f;
  25364. };
  25365. parser.ptr.prototype.collapse = function(subs, op) {
  25366. var _i, _r, _ref, old, op, p, re, sub, subs, x, $s, $r;
  25367. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; old = $f.old; op = $f.op; p = $f.p; re = $f.re; sub = $f.sub; subs = $f.subs; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  25368. p = this;
  25369. if (subs.$length === 1) {
  25370. $s = -1; return (0 >= subs.$length ? ($throwRuntimeError("index out of range"), undefined) : subs.$array[subs.$offset + 0]);
  25371. }
  25372. re = p.newRegexp(op);
  25373. re.Sub = $subslice(new sliceType$5(re.Sub0), 0, 0);
  25374. _ref = subs;
  25375. _i = 0;
  25376. while (true) {
  25377. if (!(_i < _ref.$length)) { break; }
  25378. sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  25379. if (sub.Op === op) {
  25380. re.Sub = $appendSlice(re.Sub, sub.Sub);
  25381. p.reuse(sub);
  25382. } else {
  25383. re.Sub = $append(re.Sub, sub);
  25384. }
  25385. _i++;
  25386. }
  25387. /* */ if (op === 19) { $s = 1; continue; }
  25388. /* */ $s = 2; continue;
  25389. /* if (op === 19) { */ case 1:
  25390. _r = p.factor(re.Sub); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  25391. re.Sub = _r;
  25392. if (re.Sub.$length === 1) {
  25393. old = re;
  25394. re = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]));
  25395. p.reuse(old);
  25396. }
  25397. /* } */ case 2:
  25398. $s = -1; return re;
  25399. /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.collapse }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.old = old; $f.op = op; $f.p = p; $f.re = re; $f.sub = sub; $f.subs = subs; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  25400. };
  25401. parser.prototype.collapse = function(subs, op) { return this.$val.collapse(subs, op); };
  25402. parser.ptr.prototype.factor = function(sub) {
  25403. var _i, _r, _r$1, _ref, _tmp, _tmp$1, _tuple, first, i, i$1, i$2, i$3, ifirst, iflags, istr, j, j$1, j$2, j$3, max, out, p, prefix, prefix$1, re, re$1, reuse, same, start, str, strflags, sub, suffix, suffix$1, x, x$1, $s, $r;
  25404. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; first = $f.first; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; i$3 = $f.i$3; ifirst = $f.ifirst; iflags = $f.iflags; istr = $f.istr; j = $f.j; j$1 = $f.j$1; j$2 = $f.j$2; j$3 = $f.j$3; max = $f.max; out = $f.out; p = $f.p; prefix = $f.prefix; prefix$1 = $f.prefix$1; re = $f.re; re$1 = $f.re$1; reuse = $f.reuse; same = $f.same; start = $f.start; str = $f.str; strflags = $f.strflags; sub = $f.sub; suffix = $f.suffix; suffix$1 = $f.suffix$1; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  25405. p = this;
  25406. if (sub.$length < 2) {
  25407. $s = -1; return sub;
  25408. }
  25409. str = sliceType.nil;
  25410. strflags = 0;
  25411. start = 0;
  25412. out = $subslice(sub, 0, 0);
  25413. i = 0;
  25414. /* while (true) { */ case 1:
  25415. /* if (!(i <= sub.$length)) { break; } */ if(!(i <= sub.$length)) { $s = 2; continue; }
  25416. istr = sliceType.nil;
  25417. iflags = 0;
  25418. /* */ if (i < sub.$length) { $s = 3; continue; }
  25419. /* */ $s = 4; continue;
  25420. /* if (i < sub.$length) { */ case 3:
  25421. _tuple = p.leadingString(((i < 0 || i >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i]));
  25422. istr = _tuple[0];
  25423. iflags = _tuple[1];
  25424. if (iflags === strflags) {
  25425. same = 0;
  25426. while (true) {
  25427. if (!(same < str.$length && same < istr.$length && (((same < 0 || same >= str.$length) ? ($throwRuntimeError("index out of range"), undefined) : str.$array[str.$offset + same]) === ((same < 0 || same >= istr.$length) ? ($throwRuntimeError("index out of range"), undefined) : istr.$array[istr.$offset + same])))) { break; }
  25428. same = same + (1) >> 0;
  25429. }
  25430. if (same > 0) {
  25431. str = $subslice(str, 0, same);
  25432. i = i + (1) >> 0;
  25433. /* continue; */ $s = 1; continue;
  25434. }
  25435. }
  25436. /* } */ case 4:
  25437. /* */ if (i === start) { $s = 5; continue; }
  25438. /* */ if (i === (start + 1 >> 0)) { $s = 6; continue; }
  25439. /* */ $s = 7; continue;
  25440. /* if (i === start) { */ case 5:
  25441. $s = 8; continue;
  25442. /* } else if (i === (start + 1 >> 0)) { */ case 6:
  25443. out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start]));
  25444. $s = 8; continue;
  25445. /* } else { */ case 7:
  25446. prefix = p.newRegexp(3);
  25447. prefix.Flags = strflags;
  25448. prefix.Rune = $appendSlice($subslice(prefix.Rune, 0, 0), str);
  25449. j = start;
  25450. while (true) {
  25451. if (!(j < i)) { break; }
  25452. ((j < 0 || j >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j] = p.removeLeadingString(((j < 0 || j >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j]), str.$length));
  25453. j = j + (1) >> 0;
  25454. }
  25455. _r = p.collapse($subslice(sub, start, i), 19); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  25456. suffix = _r;
  25457. re = p.newRegexp(18);
  25458. re.Sub = $append($subslice(re.Sub, 0, 0), prefix, suffix);
  25459. out = $append(out, re);
  25460. /* } */ case 8:
  25461. start = i;
  25462. str = istr;
  25463. strflags = iflags;
  25464. i = i + (1) >> 0;
  25465. /* } */ $s = 1; continue; case 2:
  25466. sub = out;
  25467. start = 0;
  25468. out = $subslice(sub, 0, 0);
  25469. first = ptrType$1.nil;
  25470. i$1 = 0;
  25471. /* while (true) { */ case 10:
  25472. /* if (!(i$1 <= sub.$length)) { break; } */ if(!(i$1 <= sub.$length)) { $s = 11; continue; }
  25473. ifirst = ptrType$1.nil;
  25474. /* */ if (i$1 < sub.$length) { $s = 12; continue; }
  25475. /* */ $s = 13; continue;
  25476. /* if (i$1 < sub.$length) { */ case 12:
  25477. ifirst = p.leadingRegexp(((i$1 < 0 || i$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$1]));
  25478. if (!(first === ptrType$1.nil) && first.Equal(ifirst) && (isCharClass(first) || ((first.Op === 17) && (first.Min === first.Max) && isCharClass((x = first.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])))))) {
  25479. i$1 = i$1 + (1) >> 0;
  25480. /* continue; */ $s = 10; continue;
  25481. }
  25482. /* } */ case 13:
  25483. /* */ if (i$1 === start) { $s = 14; continue; }
  25484. /* */ if (i$1 === (start + 1 >> 0)) { $s = 15; continue; }
  25485. /* */ $s = 16; continue;
  25486. /* if (i$1 === start) { */ case 14:
  25487. $s = 17; continue;
  25488. /* } else if (i$1 === (start + 1 >> 0)) { */ case 15:
  25489. out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start]));
  25490. $s = 17; continue;
  25491. /* } else { */ case 16:
  25492. prefix$1 = first;
  25493. j$1 = start;
  25494. while (true) {
  25495. if (!(j$1 < i$1)) { break; }
  25496. reuse = !((j$1 === start));
  25497. ((j$1 < 0 || j$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$1] = p.removeLeadingRegexp(((j$1 < 0 || j$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$1]), reuse));
  25498. j$1 = j$1 + (1) >> 0;
  25499. }
  25500. _r$1 = p.collapse($subslice(sub, start, i$1), 19); /* */ $s = 18; case 18: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  25501. suffix$1 = _r$1;
  25502. re$1 = p.newRegexp(18);
  25503. re$1.Sub = $append($subslice(re$1.Sub, 0, 0), prefix$1, suffix$1);
  25504. out = $append(out, re$1);
  25505. /* } */ case 17:
  25506. start = i$1;
  25507. first = ifirst;
  25508. i$1 = i$1 + (1) >> 0;
  25509. /* } */ $s = 10; continue; case 11:
  25510. sub = out;
  25511. start = 0;
  25512. out = $subslice(sub, 0, 0);
  25513. i$2 = 0;
  25514. /* while (true) { */ case 19:
  25515. /* if (!(i$2 <= sub.$length)) { break; } */ if(!(i$2 <= sub.$length)) { $s = 20; continue; }
  25516. /* */ if (i$2 < sub.$length && isCharClass(((i$2 < 0 || i$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$2]))) { $s = 21; continue; }
  25517. /* */ $s = 22; continue;
  25518. /* if (i$2 < sub.$length && isCharClass(((i$2 < 0 || i$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$2]))) { */ case 21:
  25519. i$2 = i$2 + (1) >> 0;
  25520. /* continue; */ $s = 19; continue;
  25521. /* } */ case 22:
  25522. /* */ if (i$2 === start) { $s = 23; continue; }
  25523. /* */ if (i$2 === (start + 1 >> 0)) { $s = 24; continue; }
  25524. /* */ $s = 25; continue;
  25525. /* if (i$2 === start) { */ case 23:
  25526. $s = 26; continue;
  25527. /* } else if (i$2 === (start + 1 >> 0)) { */ case 24:
  25528. out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start]));
  25529. $s = 26; continue;
  25530. /* } else { */ case 25:
  25531. max = start;
  25532. j$2 = start + 1 >> 0;
  25533. while (true) {
  25534. if (!(j$2 < i$2)) { break; }
  25535. if (((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]).Op < ((j$2 < 0 || j$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$2]).Op || (((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]).Op === ((j$2 < 0 || j$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$2]).Op) && ((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]).Rune.$length < ((j$2 < 0 || j$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$2]).Rune.$length) {
  25536. max = j$2;
  25537. }
  25538. j$2 = j$2 + (1) >> 0;
  25539. }
  25540. _tmp = ((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]);
  25541. _tmp$1 = ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start]);
  25542. ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start] = _tmp);
  25543. ((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max] = _tmp$1);
  25544. j$3 = start + 1 >> 0;
  25545. while (true) {
  25546. if (!(j$3 < i$2)) { break; }
  25547. mergeCharClass(((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start]), ((j$3 < 0 || j$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$3]));
  25548. p.reuse(((j$3 < 0 || j$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$3]));
  25549. j$3 = j$3 + (1) >> 0;
  25550. }
  25551. $r = cleanAlt(((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  25552. out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start]));
  25553. /* } */ case 26:
  25554. if (i$2 < sub.$length) {
  25555. out = $append(out, ((i$2 < 0 || i$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$2]));
  25556. }
  25557. start = i$2 + 1 >> 0;
  25558. i$2 = i$2 + (1) >> 0;
  25559. /* } */ $s = 19; continue; case 20:
  25560. sub = out;
  25561. start = 0;
  25562. out = $subslice(sub, 0, 0);
  25563. _ref = sub;
  25564. _i = 0;
  25565. while (true) {
  25566. if (!(_i < _ref.$length)) { break; }
  25567. i$3 = _i;
  25568. if ((i$3 + 1 >> 0) < sub.$length && (((i$3 < 0 || i$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$3]).Op === 2) && ((x$1 = i$3 + 1 >> 0, ((x$1 < 0 || x$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + x$1])).Op === 2)) {
  25569. _i++;
  25570. continue;
  25571. }
  25572. out = $append(out, ((i$3 < 0 || i$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$3]));
  25573. _i++;
  25574. }
  25575. sub = out;
  25576. $s = -1; return sub;
  25577. /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.factor }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.first = first; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.i$3 = i$3; $f.ifirst = ifirst; $f.iflags = iflags; $f.istr = istr; $f.j = j; $f.j$1 = j$1; $f.j$2 = j$2; $f.j$3 = j$3; $f.max = max; $f.out = out; $f.p = p; $f.prefix = prefix; $f.prefix$1 = prefix$1; $f.re = re; $f.re$1 = re$1; $f.reuse = reuse; $f.same = same; $f.start = start; $f.str = str; $f.strflags = strflags; $f.sub = sub; $f.suffix = suffix; $f.suffix$1 = suffix$1; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f;
  25578. };
  25579. parser.prototype.factor = function(sub) { return this.$val.factor(sub); };
  25580. parser.ptr.prototype.leadingString = function(re) {
  25581. var p, re, x;
  25582. p = this;
  25583. if ((re.Op === 18) && re.Sub.$length > 0) {
  25584. re = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]));
  25585. }
  25586. if (!((re.Op === 3))) {
  25587. return [sliceType.nil, 0];
  25588. }
  25589. return [re.Rune, (re.Flags & 1) >>> 0];
  25590. };
  25591. parser.prototype.leadingString = function(re) { return this.$val.leadingString(re); };
  25592. parser.ptr.prototype.removeLeadingString = function(re, n) {
  25593. var _1, n, old, p, re, sub, x, x$1, x$2;
  25594. p = this;
  25595. if ((re.Op === 18) && re.Sub.$length > 0) {
  25596. sub = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]));
  25597. sub = p.removeLeadingString(sub, n);
  25598. (x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = sub));
  25599. if (sub.Op === 2) {
  25600. p.reuse(sub);
  25601. _1 = re.Sub.$length;
  25602. if ((_1 === (0)) || (_1 === (1))) {
  25603. re.Op = 2;
  25604. re.Sub = sliceType$5.nil;
  25605. } else if (_1 === (2)) {
  25606. old = re;
  25607. re = (x$2 = re.Sub, (1 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 1]));
  25608. p.reuse(old);
  25609. } else {
  25610. $copySlice(re.Sub, $subslice(re.Sub, 1));
  25611. re.Sub = $subslice(re.Sub, 0, (re.Sub.$length - 1 >> 0));
  25612. }
  25613. }
  25614. return re;
  25615. }
  25616. if (re.Op === 3) {
  25617. re.Rune = $subslice(re.Rune, 0, $copySlice(re.Rune, $subslice(re.Rune, n)));
  25618. if (re.Rune.$length === 0) {
  25619. re.Op = 2;
  25620. }
  25621. }
  25622. return re;
  25623. };
  25624. parser.prototype.removeLeadingString = function(re, n) { return this.$val.removeLeadingString(re, n); };
  25625. parser.ptr.prototype.leadingRegexp = function(re) {
  25626. var p, re, sub, x;
  25627. p = this;
  25628. if (re.Op === 2) {
  25629. return ptrType$1.nil;
  25630. }
  25631. if ((re.Op === 18) && re.Sub.$length > 0) {
  25632. sub = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]));
  25633. if (sub.Op === 2) {
  25634. return ptrType$1.nil;
  25635. }
  25636. return sub;
  25637. }
  25638. return re;
  25639. };
  25640. parser.prototype.leadingRegexp = function(re) { return this.$val.leadingRegexp(re); };
  25641. parser.ptr.prototype.removeLeadingRegexp = function(re, reuse) {
  25642. var _1, old, p, re, reuse, x, x$1;
  25643. p = this;
  25644. if ((re.Op === 18) && re.Sub.$length > 0) {
  25645. if (reuse) {
  25646. p.reuse((x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])));
  25647. }
  25648. re.Sub = $subslice(re.Sub, 0, $copySlice(re.Sub, $subslice(re.Sub, 1)));
  25649. _1 = re.Sub.$length;
  25650. if (_1 === (0)) {
  25651. re.Op = 2;
  25652. re.Sub = sliceType$5.nil;
  25653. } else if (_1 === (1)) {
  25654. old = re;
  25655. re = (x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]));
  25656. p.reuse(old);
  25657. }
  25658. return re;
  25659. }
  25660. if (reuse) {
  25661. p.reuse(re);
  25662. }
  25663. return p.newRegexp(2);
  25664. };
  25665. parser.prototype.removeLeadingRegexp = function(re, reuse) { return this.$val.removeLeadingRegexp(re, reuse); };
  25666. literalRegexp = function(s, flags) {
  25667. var _i, _ref, _rune, c, flags, re, s;
  25668. re = new Regexp.ptr(3, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, "");
  25669. re.Flags = flags;
  25670. re.Rune = $subslice(new sliceType(re.Rune0), 0, 0);
  25671. _ref = s;
  25672. _i = 0;
  25673. while (true) {
  25674. if (!(_i < _ref.length)) { break; }
  25675. _rune = $decodeRune(_ref, _i);
  25676. c = _rune[0];
  25677. if (re.Rune.$length >= re.Rune.$capacity) {
  25678. re.Rune = (new sliceType($stringToRunes(s)));
  25679. break;
  25680. }
  25681. re.Rune = $append(re.Rune, c);
  25682. _i += _rune[1];
  25683. }
  25684. return re;
  25685. };
  25686. Parse = function(s, flags) {
  25687. var _1, _2, _3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _struct, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, after, after$1, before, before$1, c, c$1, err, err$1, err$2, err$3, flags, i, lastRepeat, lit, max, min, n, ok, op, p, r, r$1, re, repeat, rest, rest$1, rest$2, s, t, x, $s, $r;
  25688. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _struct = $f._struct; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; _tuple$8 = $f._tuple$8; _tuple$9 = $f._tuple$9; after = $f.after; after$1 = $f.after$1; before = $f.before; before$1 = $f.before$1; c = $f.c; c$1 = $f.c$1; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; err$3 = $f.err$3; flags = $f.flags; i = $f.i; lastRepeat = $f.lastRepeat; lit = $f.lit; max = $f.max; min = $f.min; n = $f.n; ok = $f.ok; op = $f.op; p = $f.p; r = $f.r; r$1 = $f.r$1; re = $f.re; repeat = $f.repeat; rest = $f.rest; rest$1 = $f.rest$1; rest$2 = $f.rest$2; s = $f.s; t = $f.t; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  25689. if (!((((flags & 2) >>> 0) === 0))) {
  25690. err = checkUTF8(s);
  25691. if (!($interfaceIsEqual(err, $ifaceNil))) {
  25692. $s = -1; return [ptrType$1.nil, err];
  25693. }
  25694. $s = -1; return [literalRegexp(s, flags), $ifaceNil];
  25695. }
  25696. p = new parser.ptr(0, sliceType$5.nil, ptrType$1.nil, 0, "", sliceType.nil);
  25697. err$1 = $ifaceNil;
  25698. c = 0;
  25699. op = 0;
  25700. lastRepeat = "";
  25701. p.flags = flags;
  25702. p.wholeRegexp = s;
  25703. t = s;
  25704. /* while (true) { */ case 1:
  25705. /* if (!(!(t === ""))) { break; } */ if(!(!(t === ""))) { $s = 2; continue; }
  25706. repeat = "";
  25707. _1 = t.charCodeAt(0);
  25708. /* */ if (_1 === (40)) { $s = 4; continue; }
  25709. /* */ if (_1 === (124)) { $s = 5; continue; }
  25710. /* */ if (_1 === (41)) { $s = 6; continue; }
  25711. /* */ if (_1 === (94)) { $s = 7; continue; }
  25712. /* */ if (_1 === (36)) { $s = 8; continue; }
  25713. /* */ if (_1 === (46)) { $s = 9; continue; }
  25714. /* */ if (_1 === (91)) { $s = 10; continue; }
  25715. /* */ if ((_1 === (42)) || (_1 === (43)) || (_1 === (63))) { $s = 11; continue; }
  25716. /* */ if (_1 === (123)) { $s = 12; continue; }
  25717. /* */ if (_1 === (92)) { $s = 13; continue; }
  25718. /* */ $s = 14; continue;
  25719. /* if (_1 === (40)) { */ case 4:
  25720. if (!((((p.flags & 64) >>> 0) === 0)) && t.length >= 2 && (t.charCodeAt(1) === 63)) {
  25721. _tuple = p.parsePerlFlags(t);
  25722. t = _tuple[0];
  25723. err$1 = _tuple[1];
  25724. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  25725. $s = -1; return [ptrType$1.nil, err$1];
  25726. }
  25727. /* break; */ $s = 3; continue;
  25728. }
  25729. p.numCap = p.numCap + (1) >> 0;
  25730. p.op(128).Cap = p.numCap;
  25731. t = $substring(t, 1);
  25732. $s = 15; continue;
  25733. /* } else if (_1 === (124)) { */ case 5:
  25734. _r = p.parseVerticalBar(); /* */ $s = 16; case 16: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  25735. err$1 = _r;
  25736. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  25737. $s = -1; return [ptrType$1.nil, err$1];
  25738. }
  25739. t = $substring(t, 1);
  25740. $s = 15; continue;
  25741. /* } else if (_1 === (41)) { */ case 6:
  25742. _r$1 = p.parseRightParen(); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  25743. err$1 = _r$1;
  25744. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  25745. $s = -1; return [ptrType$1.nil, err$1];
  25746. }
  25747. t = $substring(t, 1);
  25748. $s = 15; continue;
  25749. /* } else if (_1 === (94)) { */ case 7:
  25750. if (!((((p.flags & 16) >>> 0) === 0))) {
  25751. p.op(9);
  25752. } else {
  25753. p.op(7);
  25754. }
  25755. t = $substring(t, 1);
  25756. $s = 15; continue;
  25757. /* } else if (_1 === (36)) { */ case 8:
  25758. if (!((((p.flags & 16) >>> 0) === 0))) {
  25759. _struct = p.op(10);
  25760. _struct.Flags = (_struct.Flags | (256)) >>> 0;
  25761. } else {
  25762. p.op(8);
  25763. }
  25764. t = $substring(t, 1);
  25765. $s = 15; continue;
  25766. /* } else if (_1 === (46)) { */ case 9:
  25767. if (!((((p.flags & 8) >>> 0) === 0))) {
  25768. p.op(6);
  25769. } else {
  25770. p.op(5);
  25771. }
  25772. t = $substring(t, 1);
  25773. $s = 15; continue;
  25774. /* } else if (_1 === (91)) { */ case 10:
  25775. _r$2 = p.parseClass(t); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  25776. _tuple$1 = _r$2;
  25777. t = _tuple$1[0];
  25778. err$1 = _tuple$1[1];
  25779. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  25780. $s = -1; return [ptrType$1.nil, err$1];
  25781. }
  25782. $s = 15; continue;
  25783. /* } else if ((_1 === (42)) || (_1 === (43)) || (_1 === (63))) { */ case 11:
  25784. before = t;
  25785. _2 = t.charCodeAt(0);
  25786. if (_2 === (42)) {
  25787. op = 14;
  25788. } else if (_2 === (43)) {
  25789. op = 15;
  25790. } else if (_2 === (63)) {
  25791. op = 16;
  25792. }
  25793. after = $substring(t, 1);
  25794. _tuple$2 = p.repeat(op, 0, 0, before, after, lastRepeat);
  25795. after = _tuple$2[0];
  25796. err$1 = _tuple$2[1];
  25797. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  25798. $s = -1; return [ptrType$1.nil, err$1];
  25799. }
  25800. repeat = before;
  25801. t = after;
  25802. $s = 15; continue;
  25803. /* } else if (_1 === (123)) { */ case 12:
  25804. op = 17;
  25805. before$1 = t;
  25806. _tuple$3 = p.parseRepeat(t);
  25807. min = _tuple$3[0];
  25808. max = _tuple$3[1];
  25809. after$1 = _tuple$3[2];
  25810. ok = _tuple$3[3];
  25811. if (!ok) {
  25812. p.literal(123);
  25813. t = $substring(t, 1);
  25814. /* break; */ $s = 3; continue;
  25815. }
  25816. if (min < 0 || min > 1000 || max > 1000 || max >= 0 && min > max) {
  25817. $s = -1; return [ptrType$1.nil, new Error.ptr("invalid repeat count", $substring(before$1, 0, (before$1.length - after$1.length >> 0)))];
  25818. }
  25819. _tuple$4 = p.repeat(op, min, max, before$1, after$1, lastRepeat);
  25820. after$1 = _tuple$4[0];
  25821. err$1 = _tuple$4[1];
  25822. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  25823. $s = -1; return [ptrType$1.nil, err$1];
  25824. }
  25825. repeat = before$1;
  25826. t = after$1;
  25827. $s = 15; continue;
  25828. /* } else if (_1 === (92)) { */ case 13:
  25829. if (!((((p.flags & 64) >>> 0) === 0)) && t.length >= 2) {
  25830. _3 = t.charCodeAt(1);
  25831. if (_3 === (65)) {
  25832. p.op(9);
  25833. t = $substring(t, 2);
  25834. /* break BigSwitch; */ $s = 3; continue s;
  25835. } else if (_3 === (98)) {
  25836. p.op(11);
  25837. t = $substring(t, 2);
  25838. /* break BigSwitch; */ $s = 3; continue s;
  25839. } else if (_3 === (66)) {
  25840. p.op(12);
  25841. t = $substring(t, 2);
  25842. /* break BigSwitch; */ $s = 3; continue s;
  25843. } else if (_3 === (67)) {
  25844. $s = -1; return [ptrType$1.nil, new Error.ptr("invalid escape sequence", $substring(t, 0, 2))];
  25845. } else if (_3 === (81)) {
  25846. lit = "";
  25847. i = strings.Index(t, "\\E");
  25848. if (i < 0) {
  25849. lit = $substring(t, 2);
  25850. t = "";
  25851. } else {
  25852. lit = $substring(t, 2, i);
  25853. t = $substring(t, (i + 2 >> 0));
  25854. }
  25855. while (true) {
  25856. if (!(!(lit === ""))) { break; }
  25857. _tuple$5 = nextRune(lit);
  25858. c$1 = _tuple$5[0];
  25859. rest = _tuple$5[1];
  25860. err$2 = _tuple$5[2];
  25861. if (!($interfaceIsEqual(err$2, $ifaceNil))) {
  25862. $s = -1; return [ptrType$1.nil, err$2];
  25863. }
  25864. p.literal(c$1);
  25865. lit = rest;
  25866. }
  25867. /* break BigSwitch; */ $s = 3; continue s;
  25868. } else if (_3 === (122)) {
  25869. p.op(10);
  25870. t = $substring(t, 2);
  25871. /* break BigSwitch; */ $s = 3; continue s;
  25872. }
  25873. }
  25874. re = p.newRegexp(4);
  25875. re.Flags = p.flags;
  25876. /* */ if (t.length >= 2 && ((t.charCodeAt(1) === 112) || (t.charCodeAt(1) === 80))) { $s = 19; continue; }
  25877. /* */ $s = 20; continue;
  25878. /* if (t.length >= 2 && ((t.charCodeAt(1) === 112) || (t.charCodeAt(1) === 80))) { */ case 19:
  25879. _r$3 = p.parseUnicodeClass(t, $subslice(new sliceType(re.Rune0), 0, 0)); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  25880. _tuple$6 = _r$3;
  25881. r = _tuple$6[0];
  25882. rest$1 = _tuple$6[1];
  25883. err$3 = _tuple$6[2];
  25884. if (!($interfaceIsEqual(err$3, $ifaceNil))) {
  25885. $s = -1; return [ptrType$1.nil, err$3];
  25886. }
  25887. if (!(r === sliceType.nil)) {
  25888. re.Rune = r;
  25889. t = rest$1;
  25890. p.push(re);
  25891. /* break BigSwitch; */ $s = 3; continue s;
  25892. }
  25893. /* } */ case 20:
  25894. _r$4 = p.parsePerlClassEscape(t, $subslice(new sliceType(re.Rune0), 0, 0)); /* */ $s = 22; case 22: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  25895. _tuple$7 = _r$4;
  25896. r$1 = _tuple$7[0];
  25897. rest$2 = _tuple$7[1];
  25898. if (!(r$1 === sliceType.nil)) {
  25899. re.Rune = r$1;
  25900. t = rest$2;
  25901. p.push(re);
  25902. /* break BigSwitch; */ $s = 3; continue s;
  25903. }
  25904. p.reuse(re);
  25905. _tuple$8 = p.parseEscape(t);
  25906. c = _tuple$8[0];
  25907. t = _tuple$8[1];
  25908. err$1 = _tuple$8[2];
  25909. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  25910. $s = -1; return [ptrType$1.nil, err$1];
  25911. }
  25912. p.literal(c);
  25913. $s = 15; continue;
  25914. /* } else { */ case 14:
  25915. _tuple$9 = nextRune(t);
  25916. c = _tuple$9[0];
  25917. t = _tuple$9[1];
  25918. err$1 = _tuple$9[2];
  25919. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  25920. $s = -1; return [ptrType$1.nil, err$1];
  25921. }
  25922. p.literal(c);
  25923. /* } */ case 15:
  25924. case 3:
  25925. lastRepeat = repeat;
  25926. /* } */ $s = 1; continue; case 2:
  25927. _r$5 = p.concat(); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  25928. _r$5;
  25929. _r$6 = p.swapVerticalBar(); /* */ $s = 26; case 26: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  25930. /* */ if (_r$6) { $s = 24; continue; }
  25931. /* */ $s = 25; continue;
  25932. /* if (_r$6) { */ case 24:
  25933. p.stack = $subslice(p.stack, 0, (p.stack.$length - 1 >> 0));
  25934. /* } */ case 25:
  25935. _r$7 = p.alternate(); /* */ $s = 27; case 27: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
  25936. _r$7;
  25937. n = p.stack.$length;
  25938. if (!((n === 1))) {
  25939. $s = -1; return [ptrType$1.nil, new Error.ptr("missing closing )", s)];
  25940. }
  25941. $s = -1; return [(x = p.stack, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), $ifaceNil];
  25942. /* */ } return; } if ($f === undefined) { $f = { $blk: Parse }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._struct = _struct; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f._tuple$8 = _tuple$8; $f._tuple$9 = _tuple$9; $f.after = after; $f.after$1 = after$1; $f.before = before; $f.before$1 = before$1; $f.c = c; $f.c$1 = c$1; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.err$3 = err$3; $f.flags = flags; $f.i = i; $f.lastRepeat = lastRepeat; $f.lit = lit; $f.max = max; $f.min = min; $f.n = n; $f.ok = ok; $f.op = op; $f.p = p; $f.r = r; $f.r$1 = r$1; $f.re = re; $f.repeat = repeat; $f.rest = rest; $f.rest$1 = rest$1; $f.rest$2 = rest$2; $f.s = s; $f.t = t; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  25943. };
  25944. $pkg.Parse = Parse;
  25945. parser.ptr.prototype.parseRepeat = function(s) {
  25946. var _tuple, _tuple$1, max, min, ok, ok1, p, rest, s;
  25947. min = 0;
  25948. max = 0;
  25949. rest = "";
  25950. ok = false;
  25951. p = this;
  25952. if (s === "" || !((s.charCodeAt(0) === 123))) {
  25953. return [min, max, rest, ok];
  25954. }
  25955. s = $substring(s, 1);
  25956. ok1 = false;
  25957. _tuple = p.parseInt(s);
  25958. min = _tuple[0];
  25959. s = _tuple[1];
  25960. ok1 = _tuple[2];
  25961. if (!ok1) {
  25962. return [min, max, rest, ok];
  25963. }
  25964. if (s === "") {
  25965. return [min, max, rest, ok];
  25966. }
  25967. if (!((s.charCodeAt(0) === 44))) {
  25968. max = min;
  25969. } else {
  25970. s = $substring(s, 1);
  25971. if (s === "") {
  25972. return [min, max, rest, ok];
  25973. }
  25974. if (s.charCodeAt(0) === 125) {
  25975. max = -1;
  25976. } else {
  25977. _tuple$1 = p.parseInt(s);
  25978. max = _tuple$1[0];
  25979. s = _tuple$1[1];
  25980. ok1 = _tuple$1[2];
  25981. if (!ok1) {
  25982. return [min, max, rest, ok];
  25983. } else if (max < 0) {
  25984. min = -1;
  25985. }
  25986. }
  25987. }
  25988. if (s === "" || !((s.charCodeAt(0) === 125))) {
  25989. return [min, max, rest, ok];
  25990. }
  25991. rest = $substring(s, 1);
  25992. ok = true;
  25993. return [min, max, rest, ok];
  25994. };
  25995. parser.prototype.parseRepeat = function(s) { return this.$val.parseRepeat(s); };
  25996. parser.ptr.prototype.parsePerlFlags = function(s) {
  25997. var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, c, capture, end, err, flags, name, p, re, rest, s, sawFlag, sign, t;
  25998. rest = "";
  25999. err = $ifaceNil;
  26000. p = this;
  26001. t = s;
  26002. if (t.length > 4 && (t.charCodeAt(2) === 80) && (t.charCodeAt(3) === 60)) {
  26003. end = strings.IndexRune(t, 62);
  26004. if (end < 0) {
  26005. err = checkUTF8(t);
  26006. if (!($interfaceIsEqual(err, $ifaceNil))) {
  26007. _tmp = "";
  26008. _tmp$1 = err;
  26009. rest = _tmp;
  26010. err = _tmp$1;
  26011. return [rest, err];
  26012. }
  26013. _tmp$2 = "";
  26014. _tmp$3 = new Error.ptr("invalid named capture", s);
  26015. rest = _tmp$2;
  26016. err = _tmp$3;
  26017. return [rest, err];
  26018. }
  26019. capture = $substring(t, 0, (end + 1 >> 0));
  26020. name = $substring(t, 4, end);
  26021. err = checkUTF8(name);
  26022. if (!($interfaceIsEqual(err, $ifaceNil))) {
  26023. _tmp$4 = "";
  26024. _tmp$5 = err;
  26025. rest = _tmp$4;
  26026. err = _tmp$5;
  26027. return [rest, err];
  26028. }
  26029. if (!isValidCaptureName(name)) {
  26030. _tmp$6 = "";
  26031. _tmp$7 = new Error.ptr("invalid named capture", capture);
  26032. rest = _tmp$6;
  26033. err = _tmp$7;
  26034. return [rest, err];
  26035. }
  26036. p.numCap = p.numCap + (1) >> 0;
  26037. re = p.op(128);
  26038. re.Cap = p.numCap;
  26039. re.Name = name;
  26040. _tmp$8 = $substring(t, (end + 1 >> 0));
  26041. _tmp$9 = $ifaceNil;
  26042. rest = _tmp$8;
  26043. err = _tmp$9;
  26044. return [rest, err];
  26045. }
  26046. c = 0;
  26047. t = $substring(t, 2);
  26048. flags = p.flags;
  26049. sign = 1;
  26050. sawFlag = false;
  26051. Loop:
  26052. while (true) {
  26053. if (!(!(t === ""))) { break; }
  26054. _tuple = nextRune(t);
  26055. c = _tuple[0];
  26056. t = _tuple[1];
  26057. err = _tuple[2];
  26058. if (!($interfaceIsEqual(err, $ifaceNil))) {
  26059. _tmp$10 = "";
  26060. _tmp$11 = err;
  26061. rest = _tmp$10;
  26062. err = _tmp$11;
  26063. return [rest, err];
  26064. }
  26065. _1 = c;
  26066. if (_1 === (105)) {
  26067. flags = (flags | (1)) >>> 0;
  26068. sawFlag = true;
  26069. } else if (_1 === (109)) {
  26070. flags = (flags & ~(16)) << 16 >>> 16;
  26071. sawFlag = true;
  26072. } else if (_1 === (115)) {
  26073. flags = (flags | (8)) >>> 0;
  26074. sawFlag = true;
  26075. } else if (_1 === (85)) {
  26076. flags = (flags | (32)) >>> 0;
  26077. sawFlag = true;
  26078. } else if (_1 === (45)) {
  26079. if (sign < 0) {
  26080. break Loop;
  26081. }
  26082. sign = -1;
  26083. flags = ~flags << 16 >>> 16;
  26084. sawFlag = false;
  26085. } else if ((_1 === (58)) || (_1 === (41))) {
  26086. if (sign < 0) {
  26087. if (!sawFlag) {
  26088. break Loop;
  26089. }
  26090. flags = ~flags << 16 >>> 16;
  26091. }
  26092. if (c === 58) {
  26093. p.op(128);
  26094. }
  26095. p.flags = flags;
  26096. _tmp$12 = t;
  26097. _tmp$13 = $ifaceNil;
  26098. rest = _tmp$12;
  26099. err = _tmp$13;
  26100. return [rest, err];
  26101. } else {
  26102. break Loop;
  26103. }
  26104. }
  26105. _tmp$14 = "";
  26106. _tmp$15 = new Error.ptr("invalid or unsupported Perl syntax", $substring(s, 0, (s.length - t.length >> 0)));
  26107. rest = _tmp$14;
  26108. err = _tmp$15;
  26109. return [rest, err];
  26110. };
  26111. parser.prototype.parsePerlFlags = function(s) { return this.$val.parsePerlFlags(s); };
  26112. isValidCaptureName = function(name) {
  26113. var _i, _ref, _rune, c, name;
  26114. if (name === "") {
  26115. return false;
  26116. }
  26117. _ref = name;
  26118. _i = 0;
  26119. while (true) {
  26120. if (!(_i < _ref.length)) { break; }
  26121. _rune = $decodeRune(_ref, _i);
  26122. c = _rune[0];
  26123. if (!((c === 95)) && !isalnum(c)) {
  26124. return false;
  26125. }
  26126. _i += _rune[1];
  26127. }
  26128. return true;
  26129. };
  26130. parser.ptr.prototype.parseInt = function(s) {
  26131. var i, n, ok, p, rest, s, t;
  26132. n = 0;
  26133. rest = "";
  26134. ok = false;
  26135. p = this;
  26136. if (s === "" || s.charCodeAt(0) < 48 || 57 < s.charCodeAt(0)) {
  26137. return [n, rest, ok];
  26138. }
  26139. if (s.length >= 2 && (s.charCodeAt(0) === 48) && 48 <= s.charCodeAt(1) && s.charCodeAt(1) <= 57) {
  26140. return [n, rest, ok];
  26141. }
  26142. t = s;
  26143. while (true) {
  26144. if (!(!(s === "") && 48 <= s.charCodeAt(0) && s.charCodeAt(0) <= 57)) { break; }
  26145. s = $substring(s, 1);
  26146. }
  26147. rest = s;
  26148. ok = true;
  26149. t = $substring(t, 0, (t.length - s.length >> 0));
  26150. i = 0;
  26151. while (true) {
  26152. if (!(i < t.length)) { break; }
  26153. if (n >= 100000000) {
  26154. n = -1;
  26155. break;
  26156. }
  26157. n = (($imul(n, 10)) + ((t.charCodeAt(i) >> 0)) >> 0) - 48 >> 0;
  26158. i = i + (1) >> 0;
  26159. }
  26160. return [n, rest, ok];
  26161. };
  26162. parser.prototype.parseInt = function(s) { return this.$val.parseInt(s); };
  26163. isCharClass = function(re) {
  26164. var re;
  26165. return (re.Op === 3) && (re.Rune.$length === 1) || (re.Op === 4) || (re.Op === 5) || (re.Op === 6);
  26166. };
  26167. matchRune = function(re, r) {
  26168. var _1, i, r, re, x, x$1, x$2, x$3;
  26169. _1 = re.Op;
  26170. if (_1 === (3)) {
  26171. return (re.Rune.$length === 1) && ((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === r);
  26172. } else if (_1 === (4)) {
  26173. i = 0;
  26174. while (true) {
  26175. if (!(i < re.Rune.$length)) { break; }
  26176. if ((x$1 = re.Rune, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])) <= r && r <= (x$2 = re.Rune, x$3 = i + 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3]))) {
  26177. return true;
  26178. }
  26179. i = i + (2) >> 0;
  26180. }
  26181. return false;
  26182. } else if (_1 === (5)) {
  26183. return !((r === 10));
  26184. } else if (_1 === (6)) {
  26185. return true;
  26186. }
  26187. return false;
  26188. };
  26189. parser.ptr.prototype.parseVerticalBar = function() {
  26190. var _r, _r$1, p, $s, $r;
  26191. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  26192. p = this;
  26193. _r = p.concat(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  26194. _r;
  26195. _r$1 = p.swapVerticalBar(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  26196. /* */ if (!_r$1) { $s = 2; continue; }
  26197. /* */ $s = 3; continue;
  26198. /* if (!_r$1) { */ case 2:
  26199. p.op(129);
  26200. /* } */ case 3:
  26201. $s = -1; return $ifaceNil;
  26202. /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.parseVerticalBar }; } $f._r = _r; $f._r$1 = _r$1; $f.p = p; $f.$s = $s; $f.$r = $r; return $f;
  26203. };
  26204. parser.prototype.parseVerticalBar = function() { return this.$val.parseVerticalBar(); };
  26205. mergeCharClass = function(dst, src) {
  26206. var _1, dst, src, x, x$1, x$2, x$3, x$4;
  26207. switch (0) { default:
  26208. _1 = dst.Op;
  26209. if (_1 === (6)) {
  26210. } else if (_1 === (5)) {
  26211. if (matchRune(src, 10)) {
  26212. dst.Op = 6;
  26213. }
  26214. } else if (_1 === (4)) {
  26215. if (src.Op === 3) {
  26216. dst.Rune = appendLiteral(dst.Rune, (x = src.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), src.Flags);
  26217. } else {
  26218. dst.Rune = appendClass(dst.Rune, src.Rune);
  26219. }
  26220. } else if (_1 === (3)) {
  26221. if (((x$1 = src.Rune, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) === (x$2 = dst.Rune, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))) && (src.Flags === dst.Flags)) {
  26222. break;
  26223. }
  26224. dst.Op = 4;
  26225. dst.Rune = appendLiteral($subslice(dst.Rune, 0, 0), (x$3 = dst.Rune, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])), dst.Flags);
  26226. dst.Rune = appendLiteral(dst.Rune, (x$4 = src.Rune, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])), src.Flags);
  26227. }
  26228. }
  26229. };
  26230. parser.ptr.prototype.swapVerticalBar = function() {
  26231. var _tmp, _tmp$1, n, p, re1, re1$1, re2, re3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r;
  26232. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; n = $f.n; p = $f.p; re1 = $f.re1; re1$1 = $f.re1$1; re2 = $f.re2; re3 = $f.re3; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$15 = $f.x$15; x$16 = $f.x$16; x$17 = $f.x$17; x$18 = $f.x$18; x$19 = $f.x$19; x$2 = $f.x$2; x$20 = $f.x$20; x$21 = $f.x$21; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  26233. p = this;
  26234. n = p.stack.$length;
  26235. if (n >= 3 && ((x = p.stack, x$1 = n - 2 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op === 129) && isCharClass((x$2 = p.stack, x$3 = n - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3]))) && isCharClass((x$4 = p.stack, x$5 = n - 3 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])))) {
  26236. re1 = (x$6 = p.stack, x$7 = n - 1 >> 0, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7]));
  26237. re3 = (x$8 = p.stack, x$9 = n - 3 >> 0, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9]));
  26238. if (re1.Op > re3.Op) {
  26239. _tmp = re3;
  26240. _tmp$1 = re1;
  26241. re1 = _tmp;
  26242. re3 = _tmp$1;
  26243. (x$10 = p.stack, x$11 = n - 3 >> 0, ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11] = re3));
  26244. }
  26245. mergeCharClass(re3, re1);
  26246. p.reuse(re1);
  26247. p.stack = $subslice(p.stack, 0, (n - 1 >> 0));
  26248. $s = -1; return true;
  26249. }
  26250. /* */ if (n >= 2) { $s = 1; continue; }
  26251. /* */ $s = 2; continue;
  26252. /* if (n >= 2) { */ case 1:
  26253. re1$1 = (x$12 = p.stack, x$13 = n - 1 >> 0, ((x$13 < 0 || x$13 >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + x$13]));
  26254. re2 = (x$14 = p.stack, x$15 = n - 2 >> 0, ((x$15 < 0 || x$15 >= x$14.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + x$15]));
  26255. /* */ if (re2.Op === 129) { $s = 3; continue; }
  26256. /* */ $s = 4; continue;
  26257. /* if (re2.Op === 129) { */ case 3:
  26258. /* */ if (n >= 3) { $s = 5; continue; }
  26259. /* */ $s = 6; continue;
  26260. /* if (n >= 3) { */ case 5:
  26261. $r = cleanAlt((x$16 = p.stack, x$17 = n - 3 >> 0, ((x$17 < 0 || x$17 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + x$17]))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  26262. /* } */ case 6:
  26263. (x$18 = p.stack, x$19 = n - 2 >> 0, ((x$19 < 0 || x$19 >= x$18.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$18.$array[x$18.$offset + x$19] = re1$1));
  26264. (x$20 = p.stack, x$21 = n - 1 >> 0, ((x$21 < 0 || x$21 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + x$21] = re2));
  26265. $s = -1; return true;
  26266. /* } */ case 4:
  26267. /* } */ case 2:
  26268. $s = -1; return false;
  26269. /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.swapVerticalBar }; } $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f.n = n; $f.p = p; $f.re1 = re1; $f.re1$1 = re1$1; $f.re2 = re2; $f.re3 = re3; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$15 = x$15; $f.x$16 = x$16; $f.x$17 = x$17; $f.x$18 = x$18; $f.x$19 = x$19; $f.x$2 = x$2; $f.x$20 = x$20; $f.x$21 = x$21; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.$s = $s; $f.$r = $r; return $f;
  26270. };
  26271. parser.prototype.swapVerticalBar = function() { return this.$val.swapVerticalBar(); };
  26272. parser.ptr.prototype.parseRightParen = function() {
  26273. var _r, _r$1, _r$2, n, p, re1, re2, x, x$1, x$2, x$3, x$4, $s, $r;
  26274. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; n = $f.n; p = $f.p; re1 = $f.re1; re2 = $f.re2; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  26275. p = this;
  26276. _r = p.concat(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  26277. _r;
  26278. _r$1 = p.swapVerticalBar(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  26279. /* */ if (_r$1) { $s = 2; continue; }
  26280. /* */ $s = 3; continue;
  26281. /* if (_r$1) { */ case 2:
  26282. p.stack = $subslice(p.stack, 0, (p.stack.$length - 1 >> 0));
  26283. /* } */ case 3:
  26284. _r$2 = p.alternate(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  26285. _r$2;
  26286. n = p.stack.$length;
  26287. if (n < 2) {
  26288. $s = -1; return new Error.ptr("unexpected )", p.wholeRegexp);
  26289. }
  26290. re1 = (x = p.stack, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]));
  26291. re2 = (x$2 = p.stack, x$3 = n - 2 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3]));
  26292. p.stack = $subslice(p.stack, 0, (n - 2 >> 0));
  26293. if (!((re2.Op === 128))) {
  26294. $s = -1; return new Error.ptr("unexpected )", p.wholeRegexp);
  26295. }
  26296. p.flags = re2.Flags;
  26297. if (re2.Cap === 0) {
  26298. p.push(re1);
  26299. } else {
  26300. re2.Op = 13;
  26301. re2.Sub = $subslice(new sliceType$5(re2.Sub0), 0, 1);
  26302. (x$4 = re2.Sub, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0] = re1));
  26303. p.push(re2);
  26304. }
  26305. $s = -1; return $ifaceNil;
  26306. /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.parseRightParen }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.n = n; $f.p = p; $f.re1 = re1; $f.re2 = re2; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.$s = $s; $f.$r = $r; return $f;
  26307. };
  26308. parser.prototype.parseRightParen = function() { return this.$val.parseRightParen(); };
  26309. parser.ptr.prototype.parseEscape = function(s) {
  26310. var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$5, _tmp$50, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, c, err, i, nhex, p, r, rest, s, t, v, x, y;
  26311. r = 0;
  26312. rest = "";
  26313. err = $ifaceNil;
  26314. p = this;
  26315. t = $substring(s, 1);
  26316. if (t === "") {
  26317. _tmp = 0;
  26318. _tmp$1 = "";
  26319. _tmp$2 = new Error.ptr("trailing backslash at end of expression", "");
  26320. r = _tmp;
  26321. rest = _tmp$1;
  26322. err = _tmp$2;
  26323. return [r, rest, err];
  26324. }
  26325. _tuple = nextRune(t);
  26326. c = _tuple[0];
  26327. t = _tuple[1];
  26328. err = _tuple[2];
  26329. if (!($interfaceIsEqual(err, $ifaceNil))) {
  26330. _tmp$3 = 0;
  26331. _tmp$4 = "";
  26332. _tmp$5 = err;
  26333. r = _tmp$3;
  26334. rest = _tmp$4;
  26335. err = _tmp$5;
  26336. return [r, rest, err];
  26337. }
  26338. Switch:
  26339. switch (0) { default:
  26340. _1 = c;
  26341. if ((_1 === (49)) || (_1 === (50)) || (_1 === (51)) || (_1 === (52)) || (_1 === (53)) || (_1 === (54)) || (_1 === (55))) {
  26342. if (t === "" || t.charCodeAt(0) < 48 || t.charCodeAt(0) > 55) {
  26343. break;
  26344. }
  26345. r = c - 48 >> 0;
  26346. i = 1;
  26347. while (true) {
  26348. if (!(i < 3)) { break; }
  26349. if (t === "" || t.charCodeAt(0) < 48 || t.charCodeAt(0) > 55) {
  26350. break;
  26351. }
  26352. r = (($imul(r, 8)) + ((t.charCodeAt(0) >> 0)) >> 0) - 48 >> 0;
  26353. t = $substring(t, 1);
  26354. i = i + (1) >> 0;
  26355. }
  26356. _tmp$6 = r;
  26357. _tmp$7 = t;
  26358. _tmp$8 = $ifaceNil;
  26359. r = _tmp$6;
  26360. rest = _tmp$7;
  26361. err = _tmp$8;
  26362. return [r, rest, err];
  26363. } else if (_1 === (48)) {
  26364. r = c - 48 >> 0;
  26365. i = 1;
  26366. while (true) {
  26367. if (!(i < 3)) { break; }
  26368. if (t === "" || t.charCodeAt(0) < 48 || t.charCodeAt(0) > 55) {
  26369. break;
  26370. }
  26371. r = (($imul(r, 8)) + ((t.charCodeAt(0) >> 0)) >> 0) - 48 >> 0;
  26372. t = $substring(t, 1);
  26373. i = i + (1) >> 0;
  26374. }
  26375. _tmp$9 = r;
  26376. _tmp$10 = t;
  26377. _tmp$11 = $ifaceNil;
  26378. r = _tmp$9;
  26379. rest = _tmp$10;
  26380. err = _tmp$11;
  26381. return [r, rest, err];
  26382. } else if (_1 === (120)) {
  26383. if (t === "") {
  26384. break;
  26385. }
  26386. _tuple$1 = nextRune(t);
  26387. c = _tuple$1[0];
  26388. t = _tuple$1[1];
  26389. err = _tuple$1[2];
  26390. if (!($interfaceIsEqual(err, $ifaceNil))) {
  26391. _tmp$12 = 0;
  26392. _tmp$13 = "";
  26393. _tmp$14 = err;
  26394. r = _tmp$12;
  26395. rest = _tmp$13;
  26396. err = _tmp$14;
  26397. return [r, rest, err];
  26398. }
  26399. if (c === 123) {
  26400. nhex = 0;
  26401. r = 0;
  26402. while (true) {
  26403. if (t === "") {
  26404. break Switch;
  26405. }
  26406. _tuple$2 = nextRune(t);
  26407. c = _tuple$2[0];
  26408. t = _tuple$2[1];
  26409. err = _tuple$2[2];
  26410. if (!($interfaceIsEqual(err, $ifaceNil))) {
  26411. _tmp$15 = 0;
  26412. _tmp$16 = "";
  26413. _tmp$17 = err;
  26414. r = _tmp$15;
  26415. rest = _tmp$16;
  26416. err = _tmp$17;
  26417. return [r, rest, err];
  26418. }
  26419. if (c === 125) {
  26420. break;
  26421. }
  26422. v = unhex(c);
  26423. if (v < 0) {
  26424. break Switch;
  26425. }
  26426. r = ($imul(r, 16)) + v >> 0;
  26427. if (r > 1114111) {
  26428. break Switch;
  26429. }
  26430. nhex = nhex + (1) >> 0;
  26431. }
  26432. if (nhex === 0) {
  26433. break Switch;
  26434. }
  26435. _tmp$18 = r;
  26436. _tmp$19 = t;
  26437. _tmp$20 = $ifaceNil;
  26438. r = _tmp$18;
  26439. rest = _tmp$19;
  26440. err = _tmp$20;
  26441. return [r, rest, err];
  26442. }
  26443. x = unhex(c);
  26444. _tuple$3 = nextRune(t);
  26445. c = _tuple$3[0];
  26446. t = _tuple$3[1];
  26447. err = _tuple$3[2];
  26448. if (!($interfaceIsEqual(err, $ifaceNil))) {
  26449. _tmp$21 = 0;
  26450. _tmp$22 = "";
  26451. _tmp$23 = err;
  26452. r = _tmp$21;
  26453. rest = _tmp$22;
  26454. err = _tmp$23;
  26455. return [r, rest, err];
  26456. }
  26457. y = unhex(c);
  26458. if (x < 0 || y < 0) {
  26459. break;
  26460. }
  26461. _tmp$24 = ($imul(x, 16)) + y >> 0;
  26462. _tmp$25 = t;
  26463. _tmp$26 = $ifaceNil;
  26464. r = _tmp$24;
  26465. rest = _tmp$25;
  26466. err = _tmp$26;
  26467. return [r, rest, err];
  26468. } else if (_1 === (97)) {
  26469. _tmp$27 = 7;
  26470. _tmp$28 = t;
  26471. _tmp$29 = err;
  26472. r = _tmp$27;
  26473. rest = _tmp$28;
  26474. err = _tmp$29;
  26475. return [r, rest, err];
  26476. } else if (_1 === (102)) {
  26477. _tmp$30 = 12;
  26478. _tmp$31 = t;
  26479. _tmp$32 = err;
  26480. r = _tmp$30;
  26481. rest = _tmp$31;
  26482. err = _tmp$32;
  26483. return [r, rest, err];
  26484. } else if (_1 === (110)) {
  26485. _tmp$33 = 10;
  26486. _tmp$34 = t;
  26487. _tmp$35 = err;
  26488. r = _tmp$33;
  26489. rest = _tmp$34;
  26490. err = _tmp$35;
  26491. return [r, rest, err];
  26492. } else if (_1 === (114)) {
  26493. _tmp$36 = 13;
  26494. _tmp$37 = t;
  26495. _tmp$38 = err;
  26496. r = _tmp$36;
  26497. rest = _tmp$37;
  26498. err = _tmp$38;
  26499. return [r, rest, err];
  26500. } else if (_1 === (116)) {
  26501. _tmp$39 = 9;
  26502. _tmp$40 = t;
  26503. _tmp$41 = err;
  26504. r = _tmp$39;
  26505. rest = _tmp$40;
  26506. err = _tmp$41;
  26507. return [r, rest, err];
  26508. } else if (_1 === (118)) {
  26509. _tmp$42 = 11;
  26510. _tmp$43 = t;
  26511. _tmp$44 = err;
  26512. r = _tmp$42;
  26513. rest = _tmp$43;
  26514. err = _tmp$44;
  26515. return [r, rest, err];
  26516. } else if (c < 128 && !isalnum(c)) {
  26517. _tmp$45 = c;
  26518. _tmp$46 = t;
  26519. _tmp$47 = $ifaceNil;
  26520. r = _tmp$45;
  26521. rest = _tmp$46;
  26522. err = _tmp$47;
  26523. return [r, rest, err];
  26524. }
  26525. }
  26526. _tmp$48 = 0;
  26527. _tmp$49 = "";
  26528. _tmp$50 = new Error.ptr("invalid escape sequence", $substring(s, 0, (s.length - t.length >> 0)));
  26529. r = _tmp$48;
  26530. rest = _tmp$49;
  26531. err = _tmp$50;
  26532. return [r, rest, err];
  26533. };
  26534. parser.prototype.parseEscape = function(s) { return this.$val.parseEscape(s); };
  26535. parser.ptr.prototype.parseClassChar = function(s, wholeClass) {
  26536. var _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, err, p, r, rest, s, wholeClass;
  26537. r = 0;
  26538. rest = "";
  26539. err = $ifaceNil;
  26540. p = this;
  26541. if (s === "") {
  26542. _tmp = 0;
  26543. _tmp$1 = "";
  26544. _tmp$2 = new Error.ptr("missing closing ]", wholeClass);
  26545. r = _tmp;
  26546. rest = _tmp$1;
  26547. err = _tmp$2;
  26548. return [r, rest, err];
  26549. }
  26550. if (s.charCodeAt(0) === 92) {
  26551. _tuple = p.parseEscape(s);
  26552. r = _tuple[0];
  26553. rest = _tuple[1];
  26554. err = _tuple[2];
  26555. return [r, rest, err];
  26556. }
  26557. _tuple$1 = nextRune(s);
  26558. r = _tuple$1[0];
  26559. rest = _tuple$1[1];
  26560. err = _tuple$1[2];
  26561. return [r, rest, err];
  26562. };
  26563. parser.prototype.parseClassChar = function(s, wholeClass) { return this.$val.parseClassChar(s, wholeClass); };
  26564. parser.ptr.prototype.parsePerlClassEscape = function(s, r) {
  26565. var _entry, _r, _tmp, _tmp$1, g, out, p, r, rest, s, $s, $r;
  26566. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; g = $f.g; out = $f.out; p = $f.p; r = $f.r; rest = $f.rest; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  26567. out = sliceType.nil;
  26568. rest = "";
  26569. p = this;
  26570. if ((((p.flags & 64) >>> 0) === 0) || s.length < 2 || !((s.charCodeAt(0) === 92))) {
  26571. $s = -1; return [out, rest];
  26572. }
  26573. g = $clone((_entry = perlGroup[$String.keyFor($substring(s, 0, 2))], _entry !== undefined ? _entry.v : new charGroup.ptr(0, sliceType.nil)), charGroup);
  26574. if (g.sign === 0) {
  26575. $s = -1; return [out, rest];
  26576. }
  26577. _r = p.appendGroup(r, $clone(g, charGroup)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  26578. _tmp = _r;
  26579. _tmp$1 = $substring(s, 2);
  26580. out = _tmp;
  26581. rest = _tmp$1;
  26582. $s = -1; return [out, rest];
  26583. /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.parsePerlClassEscape }; } $f._entry = _entry; $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f.g = g; $f.out = out; $f.p = p; $f.r = r; $f.rest = rest; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  26584. };
  26585. parser.prototype.parsePerlClassEscape = function(s, r) { return this.$val.parsePerlClassEscape(s, r); };
  26586. parser.ptr.prototype.parseNamedClass = function(s, r) {
  26587. var _entry, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, err, g, i, name, out, p, r, rest, s, $s, $r;
  26588. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; err = $f.err; g = $f.g; i = $f.i; name = $f.name; out = $f.out; p = $f.p; r = $f.r; rest = $f.rest; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  26589. out = sliceType.nil;
  26590. rest = "";
  26591. err = $ifaceNil;
  26592. p = this;
  26593. if (s.length < 2 || !((s.charCodeAt(0) === 91)) || !((s.charCodeAt(1) === 58))) {
  26594. $s = -1; return [out, rest, err];
  26595. }
  26596. i = strings.Index($substring(s, 2), ":]");
  26597. if (i < 0) {
  26598. $s = -1; return [out, rest, err];
  26599. }
  26600. i = i + (2) >> 0;
  26601. _tmp = $substring(s, 0, (i + 2 >> 0));
  26602. _tmp$1 = $substring(s, (i + 2 >> 0));
  26603. name = _tmp;
  26604. s = _tmp$1;
  26605. g = $clone((_entry = posixGroup[$String.keyFor(name)], _entry !== undefined ? _entry.v : new charGroup.ptr(0, sliceType.nil)), charGroup);
  26606. if (g.sign === 0) {
  26607. _tmp$2 = sliceType.nil;
  26608. _tmp$3 = "";
  26609. _tmp$4 = new Error.ptr("invalid character class range", name);
  26610. out = _tmp$2;
  26611. rest = _tmp$3;
  26612. err = _tmp$4;
  26613. $s = -1; return [out, rest, err];
  26614. }
  26615. _r = p.appendGroup(r, $clone(g, charGroup)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  26616. _tmp$5 = _r;
  26617. _tmp$6 = s;
  26618. _tmp$7 = $ifaceNil;
  26619. out = _tmp$5;
  26620. rest = _tmp$6;
  26621. err = _tmp$7;
  26622. $s = -1; return [out, rest, err];
  26623. /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.parseNamedClass }; } $f._entry = _entry; $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f.err = err; $f.g = g; $f.i = i; $f.name = name; $f.out = out; $f.p = p; $f.r = r; $f.rest = rest; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  26624. };
  26625. parser.prototype.parseNamedClass = function(s, r) { return this.$val.parseNamedClass(s, r); };
  26626. parser.ptr.prototype.appendGroup = function(r, g) {
  26627. var _r, g, p, r, tmp, $s, $r;
  26628. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; g = $f.g; p = $f.p; r = $f.r; tmp = $f.tmp; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  26629. p = this;
  26630. /* */ if (((p.flags & 1) >>> 0) === 0) { $s = 1; continue; }
  26631. /* */ $s = 2; continue;
  26632. /* if (((p.flags & 1) >>> 0) === 0) { */ case 1:
  26633. if (g.sign < 0) {
  26634. r = appendNegatedClass(r, g.class$1);
  26635. } else {
  26636. r = appendClass(r, g.class$1);
  26637. }
  26638. $s = 3; continue;
  26639. /* } else { */ case 2:
  26640. tmp = $subslice(p.tmpClass, 0, 0);
  26641. tmp = appendFoldedClass(tmp, g.class$1);
  26642. p.tmpClass = tmp;
  26643. _r = cleanClass((p.$ptr_tmpClass || (p.$ptr_tmpClass = new ptrType$2(function() { return this.$target.tmpClass; }, function($v) { this.$target.tmpClass = $v; }, p)))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  26644. tmp = _r;
  26645. if (g.sign < 0) {
  26646. r = appendNegatedClass(r, tmp);
  26647. } else {
  26648. r = appendClass(r, tmp);
  26649. }
  26650. /* } */ case 3:
  26651. $s = -1; return r;
  26652. /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.appendGroup }; } $f._r = _r; $f.g = g; $f.p = p; $f.r = r; $f.tmp = tmp; $f.$s = $s; $f.$r = $r; return $f;
  26653. };
  26654. parser.prototype.appendGroup = function(r, g) { return this.$val.appendGroup(r, g); };
  26655. unicodeTable = function(name) {
  26656. var _entry, _entry$1, _entry$2, _entry$3, name, t, t$1;
  26657. if (name === "Any") {
  26658. return [anyTable, anyTable];
  26659. }
  26660. t = (_entry = unicode.Categories[$String.keyFor(name)], _entry !== undefined ? _entry.v : ptrType$3.nil);
  26661. if (!(t === ptrType$3.nil)) {
  26662. return [t, (_entry$1 = unicode.FoldCategory[$String.keyFor(name)], _entry$1 !== undefined ? _entry$1.v : ptrType$3.nil)];
  26663. }
  26664. t$1 = (_entry$2 = unicode.Scripts[$String.keyFor(name)], _entry$2 !== undefined ? _entry$2.v : ptrType$3.nil);
  26665. if (!(t$1 === ptrType$3.nil)) {
  26666. return [t$1, (_entry$3 = unicode.FoldScript[$String.keyFor(name)], _entry$3 !== undefined ? _entry$3.v : ptrType$3.nil)];
  26667. }
  26668. return [ptrType$3.nil, ptrType$3.nil];
  26669. };
  26670. parser.ptr.prototype.parseUnicodeClass = function(s, r) {
  26671. var _r, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, c, end, err, fold, name, out, p, r, rest, s, seq, sign, t, tab, tmp, $s, $r;
  26672. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$10 = $f._tmp$10; _tmp$11 = $f._tmp$11; _tmp$12 = $f._tmp$12; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; c = $f.c; end = $f.end; err = $f.err; fold = $f.fold; name = $f.name; out = $f.out; p = $f.p; r = $f.r; rest = $f.rest; s = $f.s; seq = $f.seq; sign = $f.sign; t = $f.t; tab = $f.tab; tmp = $f.tmp; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  26673. out = sliceType.nil;
  26674. rest = "";
  26675. err = $ifaceNil;
  26676. p = this;
  26677. if ((((p.flags & 128) >>> 0) === 0) || s.length < 2 || !((s.charCodeAt(0) === 92)) || !((s.charCodeAt(1) === 112)) && !((s.charCodeAt(1) === 80))) {
  26678. $s = -1; return [out, rest, err];
  26679. }
  26680. sign = 1;
  26681. if (s.charCodeAt(1) === 80) {
  26682. sign = -1;
  26683. }
  26684. t = $substring(s, 2);
  26685. _tuple = nextRune(t);
  26686. c = _tuple[0];
  26687. t = _tuple[1];
  26688. err = _tuple[2];
  26689. if (!($interfaceIsEqual(err, $ifaceNil))) {
  26690. $s = -1; return [out, rest, err];
  26691. }
  26692. _tmp = "";
  26693. _tmp$1 = "";
  26694. seq = _tmp;
  26695. name = _tmp$1;
  26696. if (!((c === 123))) {
  26697. seq = $substring(s, 0, (s.length - t.length >> 0));
  26698. name = $substring(seq, 2);
  26699. } else {
  26700. end = strings.IndexRune(s, 125);
  26701. if (end < 0) {
  26702. err = checkUTF8(s);
  26703. if (!($interfaceIsEqual(err, $ifaceNil))) {
  26704. $s = -1; return [out, rest, err];
  26705. }
  26706. _tmp$2 = sliceType.nil;
  26707. _tmp$3 = "";
  26708. _tmp$4 = new Error.ptr("invalid character class range", s);
  26709. out = _tmp$2;
  26710. rest = _tmp$3;
  26711. err = _tmp$4;
  26712. $s = -1; return [out, rest, err];
  26713. }
  26714. _tmp$5 = $substring(s, 0, (end + 1 >> 0));
  26715. _tmp$6 = $substring(s, (end + 1 >> 0));
  26716. seq = _tmp$5;
  26717. t = _tmp$6;
  26718. name = $substring(s, 3, end);
  26719. err = checkUTF8(name);
  26720. if (!($interfaceIsEqual(err, $ifaceNil))) {
  26721. $s = -1; return [out, rest, err];
  26722. }
  26723. }
  26724. if (!(name === "") && (name.charCodeAt(0) === 94)) {
  26725. sign = -sign;
  26726. name = $substring(name, 1);
  26727. }
  26728. _tuple$1 = unicodeTable(name);
  26729. tab = _tuple$1[0];
  26730. fold = _tuple$1[1];
  26731. if (tab === ptrType$3.nil) {
  26732. _tmp$7 = sliceType.nil;
  26733. _tmp$8 = "";
  26734. _tmp$9 = new Error.ptr("invalid character class range", seq);
  26735. out = _tmp$7;
  26736. rest = _tmp$8;
  26737. err = _tmp$9;
  26738. $s = -1; return [out, rest, err];
  26739. }
  26740. /* */ if ((((p.flags & 1) >>> 0) === 0) || fold === ptrType$3.nil) { $s = 1; continue; }
  26741. /* */ $s = 2; continue;
  26742. /* if ((((p.flags & 1) >>> 0) === 0) || fold === ptrType$3.nil) { */ case 1:
  26743. if (sign > 0) {
  26744. r = appendTable(r, tab);
  26745. } else {
  26746. r = appendNegatedTable(r, tab);
  26747. }
  26748. $s = 3; continue;
  26749. /* } else { */ case 2:
  26750. tmp = $subslice(p.tmpClass, 0, 0);
  26751. tmp = appendTable(tmp, tab);
  26752. tmp = appendTable(tmp, fold);
  26753. p.tmpClass = tmp;
  26754. _r = cleanClass((p.$ptr_tmpClass || (p.$ptr_tmpClass = new ptrType$2(function() { return this.$target.tmpClass; }, function($v) { this.$target.tmpClass = $v; }, p)))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  26755. tmp = _r;
  26756. if (sign > 0) {
  26757. r = appendClass(r, tmp);
  26758. } else {
  26759. r = appendNegatedClass(r, tmp);
  26760. }
  26761. /* } */ case 3:
  26762. _tmp$10 = r;
  26763. _tmp$11 = t;
  26764. _tmp$12 = $ifaceNil;
  26765. out = _tmp$10;
  26766. rest = _tmp$11;
  26767. err = _tmp$12;
  26768. $s = -1; return [out, rest, err];
  26769. /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.parseUnicodeClass }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$10 = _tmp$10; $f._tmp$11 = _tmp$11; $f._tmp$12 = _tmp$12; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.c = c; $f.end = end; $f.err = err; $f.fold = fold; $f.name = name; $f.out = out; $f.p = p; $f.r = r; $f.rest = rest; $f.s = s; $f.seq = seq; $f.sign = sign; $f.t = t; $f.tab = tab; $f.tmp = tmp; $f.$s = $s; $f.$r = $r; return $f;
  26770. };
  26771. parser.prototype.parseUnicodeClass = function(s, r) { return this.$val.parseUnicodeClass(s, r); };
  26772. parser.ptr.prototype.parseClass = function(s) {
  26773. var _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, class$1, err, err$1, err$2, first, hi, lo, nclass, nclass$1, nclass$2, nt, nt$1, nt$2, p, re, rest, rng, s, sign, size, t, $s, $r;
  26774. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$10 = $f._tmp$10; _tmp$11 = $f._tmp$11; _tmp$12 = $f._tmp$12; _tmp$13 = $f._tmp$13; _tmp$14 = $f._tmp$14; _tmp$15 = $f._tmp$15; _tmp$16 = $f._tmp$16; _tmp$17 = $f._tmp$17; _tmp$18 = $f._tmp$18; _tmp$19 = $f._tmp$19; _tmp$2 = $f._tmp$2; _tmp$20 = $f._tmp$20; _tmp$21 = $f._tmp$21; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; class$1 = $f.class$1; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; first = $f.first; hi = $f.hi; lo = $f.lo; nclass = $f.nclass; nclass$1 = $f.nclass$1; nclass$2 = $f.nclass$2; nt = $f.nt; nt$1 = $f.nt$1; nt$2 = $f.nt$2; p = $f.p; re = $f.re; rest = $f.rest; rng = $f.rng; s = $f.s; sign = $f.sign; size = $f.size; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  26775. rest = "";
  26776. err = $ifaceNil;
  26777. p = this;
  26778. t = $substring(s, 1);
  26779. re = p.newRegexp(4);
  26780. re.Flags = p.flags;
  26781. re.Rune = $subslice(new sliceType(re.Rune0), 0, 0);
  26782. sign = 1;
  26783. if (!(t === "") && (t.charCodeAt(0) === 94)) {
  26784. sign = -1;
  26785. t = $substring(t, 1);
  26786. if (((p.flags & 4) >>> 0) === 0) {
  26787. re.Rune = $append(re.Rune, 10, 10);
  26788. }
  26789. }
  26790. class$1 = re.Rune;
  26791. first = true;
  26792. /* while (true) { */ case 1:
  26793. /* if (!(t === "" || !((t.charCodeAt(0) === 93)) || first)) { break; } */ if(!(t === "" || !((t.charCodeAt(0) === 93)) || first)) { $s = 2; continue; }
  26794. if (!(t === "") && (t.charCodeAt(0) === 45) && (((p.flags & 64) >>> 0) === 0) && !first && ((t.length === 1) || !((t.charCodeAt(1) === 93)))) {
  26795. _tuple = utf8.DecodeRuneInString($substring(t, 1));
  26796. size = _tuple[1];
  26797. _tmp = "";
  26798. _tmp$1 = new Error.ptr("invalid character class range", $substring(t, 0, (1 + size >> 0)));
  26799. rest = _tmp;
  26800. err = _tmp$1;
  26801. $s = -1; return [rest, err];
  26802. }
  26803. first = false;
  26804. /* */ if (t.length > 2 && (t.charCodeAt(0) === 91) && (t.charCodeAt(1) === 58)) { $s = 3; continue; }
  26805. /* */ $s = 4; continue;
  26806. /* if (t.length > 2 && (t.charCodeAt(0) === 91) && (t.charCodeAt(1) === 58)) { */ case 3:
  26807. _r = p.parseNamedClass(t, class$1); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  26808. _tuple$1 = _r;
  26809. nclass = _tuple$1[0];
  26810. nt = _tuple$1[1];
  26811. err$1 = _tuple$1[2];
  26812. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  26813. _tmp$2 = "";
  26814. _tmp$3 = err$1;
  26815. rest = _tmp$2;
  26816. err = _tmp$3;
  26817. $s = -1; return [rest, err];
  26818. }
  26819. if (!(nclass === sliceType.nil)) {
  26820. _tmp$4 = nclass;
  26821. _tmp$5 = nt;
  26822. class$1 = _tmp$4;
  26823. t = _tmp$5;
  26824. /* continue; */ $s = 1; continue;
  26825. }
  26826. /* } */ case 4:
  26827. _r$1 = p.parseUnicodeClass(t, class$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  26828. _tuple$2 = _r$1;
  26829. nclass$1 = _tuple$2[0];
  26830. nt$1 = _tuple$2[1];
  26831. err$2 = _tuple$2[2];
  26832. if (!($interfaceIsEqual(err$2, $ifaceNil))) {
  26833. _tmp$6 = "";
  26834. _tmp$7 = err$2;
  26835. rest = _tmp$6;
  26836. err = _tmp$7;
  26837. $s = -1; return [rest, err];
  26838. }
  26839. /* */ if (!(nclass$1 === sliceType.nil)) { $s = 7; continue; }
  26840. /* */ $s = 8; continue;
  26841. /* if (!(nclass$1 === sliceType.nil)) { */ case 7:
  26842. _tmp$8 = nclass$1;
  26843. _tmp$9 = nt$1;
  26844. class$1 = _tmp$8;
  26845. t = _tmp$9;
  26846. /* continue; */ $s = 1; continue;
  26847. /* } */ case 8:
  26848. _r$2 = p.parsePerlClassEscape(t, class$1); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  26849. _tuple$3 = _r$2;
  26850. nclass$2 = _tuple$3[0];
  26851. nt$2 = _tuple$3[1];
  26852. if (!(nclass$2 === sliceType.nil)) {
  26853. _tmp$10 = nclass$2;
  26854. _tmp$11 = nt$2;
  26855. class$1 = _tmp$10;
  26856. t = _tmp$11;
  26857. /* continue; */ $s = 1; continue;
  26858. }
  26859. rng = t;
  26860. _tmp$12 = 0;
  26861. _tmp$13 = 0;
  26862. lo = _tmp$12;
  26863. hi = _tmp$13;
  26864. _tuple$4 = p.parseClassChar(t, s);
  26865. lo = _tuple$4[0];
  26866. t = _tuple$4[1];
  26867. err$2 = _tuple$4[2];
  26868. if (!($interfaceIsEqual(err$2, $ifaceNil))) {
  26869. _tmp$14 = "";
  26870. _tmp$15 = err$2;
  26871. rest = _tmp$14;
  26872. err = _tmp$15;
  26873. $s = -1; return [rest, err];
  26874. }
  26875. hi = lo;
  26876. if (t.length >= 2 && (t.charCodeAt(0) === 45) && !((t.charCodeAt(1) === 93))) {
  26877. t = $substring(t, 1);
  26878. _tuple$5 = p.parseClassChar(t, s);
  26879. hi = _tuple$5[0];
  26880. t = _tuple$5[1];
  26881. err$2 = _tuple$5[2];
  26882. if (!($interfaceIsEqual(err$2, $ifaceNil))) {
  26883. _tmp$16 = "";
  26884. _tmp$17 = err$2;
  26885. rest = _tmp$16;
  26886. err = _tmp$17;
  26887. $s = -1; return [rest, err];
  26888. }
  26889. if (hi < lo) {
  26890. rng = $substring(rng, 0, (rng.length - t.length >> 0));
  26891. _tmp$18 = "";
  26892. _tmp$19 = new Error.ptr("invalid character class range", rng);
  26893. rest = _tmp$18;
  26894. err = _tmp$19;
  26895. $s = -1; return [rest, err];
  26896. }
  26897. }
  26898. if (((p.flags & 1) >>> 0) === 0) {
  26899. class$1 = appendRange(class$1, lo, hi);
  26900. } else {
  26901. class$1 = appendFoldedRange(class$1, lo, hi);
  26902. }
  26903. /* } */ $s = 1; continue; case 2:
  26904. t = $substring(t, 1);
  26905. re.Rune = class$1;
  26906. _r$3 = cleanClass((re.$ptr_Rune || (re.$ptr_Rune = new ptrType$2(function() { return this.$target.Rune; }, function($v) { this.$target.Rune = $v; }, re)))); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  26907. class$1 = _r$3;
  26908. if (sign < 0) {
  26909. class$1 = negateClass(class$1);
  26910. }
  26911. re.Rune = class$1;
  26912. p.push(re);
  26913. _tmp$20 = t;
  26914. _tmp$21 = $ifaceNil;
  26915. rest = _tmp$20;
  26916. err = _tmp$21;
  26917. $s = -1; return [rest, err];
  26918. /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.parseClass }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$10 = _tmp$10; $f._tmp$11 = _tmp$11; $f._tmp$12 = _tmp$12; $f._tmp$13 = _tmp$13; $f._tmp$14 = _tmp$14; $f._tmp$15 = _tmp$15; $f._tmp$16 = _tmp$16; $f._tmp$17 = _tmp$17; $f._tmp$18 = _tmp$18; $f._tmp$19 = _tmp$19; $f._tmp$2 = _tmp$2; $f._tmp$20 = _tmp$20; $f._tmp$21 = _tmp$21; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f.class$1 = class$1; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.first = first; $f.hi = hi; $f.lo = lo; $f.nclass = nclass; $f.nclass$1 = nclass$1; $f.nclass$2 = nclass$2; $f.nt = nt; $f.nt$1 = nt$1; $f.nt$2 = nt$2; $f.p = p; $f.re = re; $f.rest = rest; $f.rng = rng; $f.s = s; $f.sign = sign; $f.size = size; $f.t = t; $f.$s = $s; $f.$r = $r; return $f;
  26919. };
  26920. parser.prototype.parseClass = function(s) { return this.$val.parseClass(s); };
  26921. cleanClass = function(rp) {
  26922. var _tmp, _tmp$1, hi, i, lo, r, rp, w, x, x$1, x$2, x$3, x$4, x$5, $s, $r;
  26923. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; hi = $f.hi; i = $f.i; lo = $f.lo; r = $f.r; rp = $f.rp; w = $f.w; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  26924. $r = sort.Sort((x = new ranges.ptr(rp), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  26925. r = rp.$get();
  26926. if (r.$length < 2) {
  26927. $s = -1; return r;
  26928. }
  26929. w = 2;
  26930. i = 2;
  26931. while (true) {
  26932. if (!(i < r.$length)) { break; }
  26933. _tmp = ((i < 0 || i >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + i]);
  26934. _tmp$1 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$1]));
  26935. lo = _tmp;
  26936. hi = _tmp$1;
  26937. if (lo <= ((x$2 = w - 1 >> 0, ((x$2 < 0 || x$2 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$2])) + 1 >> 0)) {
  26938. if (hi > (x$3 = w - 1 >> 0, ((x$3 < 0 || x$3 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$3]))) {
  26939. (x$4 = w - 1 >> 0, ((x$4 < 0 || x$4 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$4] = hi));
  26940. }
  26941. i = i + (2) >> 0;
  26942. continue;
  26943. }
  26944. ((w < 0 || w >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + w] = lo);
  26945. (x$5 = w + 1 >> 0, ((x$5 < 0 || x$5 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$5] = hi));
  26946. w = w + (2) >> 0;
  26947. i = i + (2) >> 0;
  26948. }
  26949. $s = -1; return $subslice(r, 0, w);
  26950. /* */ } return; } if ($f === undefined) { $f = { $blk: cleanClass }; } $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f.hi = hi; $f.i = i; $f.lo = lo; $f.r = r; $f.rp = rp; $f.w = w; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.$s = $s; $f.$r = $r; return $f;
  26951. };
  26952. appendLiteral = function(r, x, flags) {
  26953. var flags, r, x;
  26954. if (!((((flags & 1) >>> 0) === 0))) {
  26955. return appendFoldedRange(r, x, x);
  26956. }
  26957. return appendRange(r, x, x);
  26958. };
  26959. appendRange = function(r, lo, hi) {
  26960. var _tmp, _tmp$1, hi, i, lo, n, r, rhi, rlo, x, x$1, x$2, x$3;
  26961. n = r.$length;
  26962. i = 2;
  26963. while (true) {
  26964. if (!(i <= 4)) { break; }
  26965. if (n >= i) {
  26966. _tmp = (x = n - i >> 0, ((x < 0 || x >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x]));
  26967. _tmp$1 = (x$1 = (n - i >> 0) + 1 >> 0, ((x$1 < 0 || x$1 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$1]));
  26968. rlo = _tmp;
  26969. rhi = _tmp$1;
  26970. if (lo <= (rhi + 1 >> 0) && rlo <= (hi + 1 >> 0)) {
  26971. if (lo < rlo) {
  26972. (x$2 = n - i >> 0, ((x$2 < 0 || x$2 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$2] = lo));
  26973. }
  26974. if (hi > rhi) {
  26975. (x$3 = (n - i >> 0) + 1 >> 0, ((x$3 < 0 || x$3 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$3] = hi));
  26976. }
  26977. return r;
  26978. }
  26979. }
  26980. i = i + (2) >> 0;
  26981. }
  26982. return $append(r, lo, hi);
  26983. };
  26984. appendFoldedRange = function(r, lo, hi) {
  26985. var c, f, hi, lo, r;
  26986. if (lo <= 65 && hi >= 125251) {
  26987. return appendRange(r, lo, hi);
  26988. }
  26989. if (hi < 65 || lo > 125251) {
  26990. return appendRange(r, lo, hi);
  26991. }
  26992. if (lo < 65) {
  26993. r = appendRange(r, lo, 64);
  26994. lo = 65;
  26995. }
  26996. if (hi > 125251) {
  26997. r = appendRange(r, 125252, hi);
  26998. hi = 125251;
  26999. }
  27000. c = lo;
  27001. while (true) {
  27002. if (!(c <= hi)) { break; }
  27003. r = appendRange(r, c, c);
  27004. f = unicode.SimpleFold(c);
  27005. while (true) {
  27006. if (!(!((f === c)))) { break; }
  27007. r = appendRange(r, f, f);
  27008. f = unicode.SimpleFold(f);
  27009. }
  27010. c = c + (1) >> 0;
  27011. }
  27012. return r;
  27013. };
  27014. appendClass = function(r, x) {
  27015. var i, r, x, x$1;
  27016. i = 0;
  27017. while (true) {
  27018. if (!(i < x.$length)) { break; }
  27019. r = appendRange(r, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])));
  27020. i = i + (2) >> 0;
  27021. }
  27022. return r;
  27023. };
  27024. appendFoldedClass = function(r, x) {
  27025. var i, r, x, x$1;
  27026. i = 0;
  27027. while (true) {
  27028. if (!(i < x.$length)) { break; }
  27029. r = appendFoldedRange(r, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])));
  27030. i = i + (2) >> 0;
  27031. }
  27032. return r;
  27033. };
  27034. appendNegatedClass = function(r, x) {
  27035. var _tmp, _tmp$1, hi, i, lo, nextLo, r, x, x$1;
  27036. nextLo = 0;
  27037. i = 0;
  27038. while (true) {
  27039. if (!(i < x.$length)) { break; }
  27040. _tmp = ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]);
  27041. _tmp$1 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]));
  27042. lo = _tmp;
  27043. hi = _tmp$1;
  27044. if (nextLo <= (lo - 1 >> 0)) {
  27045. r = appendRange(r, nextLo, lo - 1 >> 0);
  27046. }
  27047. nextLo = hi + 1 >> 0;
  27048. i = i + (2) >> 0;
  27049. }
  27050. if (nextLo <= 1114111) {
  27051. r = appendRange(r, nextLo, 1114111);
  27052. }
  27053. return r;
  27054. };
  27055. appendTable = function(r, x) {
  27056. var _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, c, c$1, hi, hi$1, lo, lo$1, r, stride, stride$1, x, xr, xr$1;
  27057. _ref = x.R16;
  27058. _i = 0;
  27059. while (true) {
  27060. if (!(_i < _ref.$length)) { break; }
  27061. xr = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), unicode.Range16);
  27062. _tmp = ((xr.Lo >> 0));
  27063. _tmp$1 = ((xr.Hi >> 0));
  27064. _tmp$2 = ((xr.Stride >> 0));
  27065. lo = _tmp;
  27066. hi = _tmp$1;
  27067. stride = _tmp$2;
  27068. if (stride === 1) {
  27069. r = appendRange(r, lo, hi);
  27070. _i++;
  27071. continue;
  27072. }
  27073. c = lo;
  27074. while (true) {
  27075. if (!(c <= hi)) { break; }
  27076. r = appendRange(r, c, c);
  27077. c = c + (stride) >> 0;
  27078. }
  27079. _i++;
  27080. }
  27081. _ref$1 = x.R32;
  27082. _i$1 = 0;
  27083. while (true) {
  27084. if (!(_i$1 < _ref$1.$length)) { break; }
  27085. xr$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), unicode.Range32);
  27086. _tmp$3 = ((xr$1.Lo >> 0));
  27087. _tmp$4 = ((xr$1.Hi >> 0));
  27088. _tmp$5 = ((xr$1.Stride >> 0));
  27089. lo$1 = _tmp$3;
  27090. hi$1 = _tmp$4;
  27091. stride$1 = _tmp$5;
  27092. if (stride$1 === 1) {
  27093. r = appendRange(r, lo$1, hi$1);
  27094. _i$1++;
  27095. continue;
  27096. }
  27097. c$1 = lo$1;
  27098. while (true) {
  27099. if (!(c$1 <= hi$1)) { break; }
  27100. r = appendRange(r, c$1, c$1);
  27101. c$1 = c$1 + (stride$1) >> 0;
  27102. }
  27103. _i$1++;
  27104. }
  27105. return r;
  27106. };
  27107. appendNegatedTable = function(r, x) {
  27108. var _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, c, c$1, hi, hi$1, lo, lo$1, nextLo, r, stride, stride$1, x, xr, xr$1;
  27109. nextLo = 0;
  27110. _ref = x.R16;
  27111. _i = 0;
  27112. while (true) {
  27113. if (!(_i < _ref.$length)) { break; }
  27114. xr = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), unicode.Range16);
  27115. _tmp = ((xr.Lo >> 0));
  27116. _tmp$1 = ((xr.Hi >> 0));
  27117. _tmp$2 = ((xr.Stride >> 0));
  27118. lo = _tmp;
  27119. hi = _tmp$1;
  27120. stride = _tmp$2;
  27121. if (stride === 1) {
  27122. if (nextLo <= (lo - 1 >> 0)) {
  27123. r = appendRange(r, nextLo, lo - 1 >> 0);
  27124. }
  27125. nextLo = hi + 1 >> 0;
  27126. _i++;
  27127. continue;
  27128. }
  27129. c = lo;
  27130. while (true) {
  27131. if (!(c <= hi)) { break; }
  27132. if (nextLo <= (c - 1 >> 0)) {
  27133. r = appendRange(r, nextLo, c - 1 >> 0);
  27134. }
  27135. nextLo = c + 1 >> 0;
  27136. c = c + (stride) >> 0;
  27137. }
  27138. _i++;
  27139. }
  27140. _ref$1 = x.R32;
  27141. _i$1 = 0;
  27142. while (true) {
  27143. if (!(_i$1 < _ref$1.$length)) { break; }
  27144. xr$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), unicode.Range32);
  27145. _tmp$3 = ((xr$1.Lo >> 0));
  27146. _tmp$4 = ((xr$1.Hi >> 0));
  27147. _tmp$5 = ((xr$1.Stride >> 0));
  27148. lo$1 = _tmp$3;
  27149. hi$1 = _tmp$4;
  27150. stride$1 = _tmp$5;
  27151. if (stride$1 === 1) {
  27152. if (nextLo <= (lo$1 - 1 >> 0)) {
  27153. r = appendRange(r, nextLo, lo$1 - 1 >> 0);
  27154. }
  27155. nextLo = hi$1 + 1 >> 0;
  27156. _i$1++;
  27157. continue;
  27158. }
  27159. c$1 = lo$1;
  27160. while (true) {
  27161. if (!(c$1 <= hi$1)) { break; }
  27162. if (nextLo <= (c$1 - 1 >> 0)) {
  27163. r = appendRange(r, nextLo, c$1 - 1 >> 0);
  27164. }
  27165. nextLo = c$1 + 1 >> 0;
  27166. c$1 = c$1 + (stride$1) >> 0;
  27167. }
  27168. _i$1++;
  27169. }
  27170. if (nextLo <= 1114111) {
  27171. r = appendRange(r, nextLo, 1114111);
  27172. }
  27173. return r;
  27174. };
  27175. negateClass = function(r) {
  27176. var _tmp, _tmp$1, hi, i, lo, nextLo, r, w, x, x$1;
  27177. nextLo = 0;
  27178. w = 0;
  27179. i = 0;
  27180. while (true) {
  27181. if (!(i < r.$length)) { break; }
  27182. _tmp = ((i < 0 || i >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + i]);
  27183. _tmp$1 = (x = i + 1 >> 0, ((x < 0 || x >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x]));
  27184. lo = _tmp;
  27185. hi = _tmp$1;
  27186. if (nextLo <= (lo - 1 >> 0)) {
  27187. ((w < 0 || w >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + w] = nextLo);
  27188. (x$1 = w + 1 >> 0, ((x$1 < 0 || x$1 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$1] = (lo - 1 >> 0)));
  27189. w = w + (2) >> 0;
  27190. }
  27191. nextLo = hi + 1 >> 0;
  27192. i = i + (2) >> 0;
  27193. }
  27194. r = $subslice(r, 0, w);
  27195. if (nextLo <= 1114111) {
  27196. r = $append(r, nextLo, 1114111);
  27197. }
  27198. return r;
  27199. };
  27200. ranges.ptr.prototype.Less = function(i, j) {
  27201. var i, j, p, ra, x, x$1;
  27202. ra = this;
  27203. p = ra.p.$get();
  27204. i = $imul(i, (2));
  27205. j = $imul(j, (2));
  27206. return ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) < ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]) || (((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) === ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j])) && (x = i + 1 >> 0, ((x < 0 || x >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x])) > (x$1 = j + 1 >> 0, ((x$1 < 0 || x$1 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$1]));
  27207. };
  27208. ranges.prototype.Less = function(i, j) { return this.$val.Less(i, j); };
  27209. ranges.ptr.prototype.Len = function() {
  27210. var _q, ra;
  27211. ra = this;
  27212. return (_q = ra.p.$get().$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
  27213. };
  27214. ranges.prototype.Len = function() { return this.$val.Len(); };
  27215. ranges.ptr.prototype.Swap = function(i, j) {
  27216. var _tmp, _tmp$1, _tmp$2, _tmp$3, i, j, p, ra, x, x$1, x$2, x$3;
  27217. ra = this;
  27218. p = ra.p.$get();
  27219. i = $imul(i, (2));
  27220. j = $imul(j, (2));
  27221. _tmp = ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]);
  27222. _tmp$1 = (x = j + 1 >> 0, ((x < 0 || x >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x]));
  27223. _tmp$2 = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]);
  27224. _tmp$3 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$1]));
  27225. ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i] = _tmp);
  27226. (x$2 = i + 1 >> 0, ((x$2 < 0 || x$2 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$2] = _tmp$1));
  27227. ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j] = _tmp$2);
  27228. (x$3 = j + 1 >> 0, ((x$3 < 0 || x$3 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$3] = _tmp$3));
  27229. };
  27230. ranges.prototype.Swap = function(i, j) { return this.$val.Swap(i, j); };
  27231. checkUTF8 = function(s) {
  27232. var _tuple, rune, s, size;
  27233. while (true) {
  27234. if (!(!(s === ""))) { break; }
  27235. _tuple = utf8.DecodeRuneInString(s);
  27236. rune = _tuple[0];
  27237. size = _tuple[1];
  27238. if ((rune === 65533) && (size === 1)) {
  27239. return new Error.ptr("invalid UTF-8", s);
  27240. }
  27241. s = $substring(s, size);
  27242. }
  27243. return $ifaceNil;
  27244. };
  27245. nextRune = function(s) {
  27246. var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, c, err, s, size, t;
  27247. c = 0;
  27248. t = "";
  27249. err = $ifaceNil;
  27250. _tuple = utf8.DecodeRuneInString(s);
  27251. c = _tuple[0];
  27252. size = _tuple[1];
  27253. if ((c === 65533) && (size === 1)) {
  27254. _tmp = 0;
  27255. _tmp$1 = "";
  27256. _tmp$2 = new Error.ptr("invalid UTF-8", s);
  27257. c = _tmp;
  27258. t = _tmp$1;
  27259. err = _tmp$2;
  27260. return [c, t, err];
  27261. }
  27262. _tmp$3 = c;
  27263. _tmp$4 = $substring(s, size);
  27264. _tmp$5 = $ifaceNil;
  27265. c = _tmp$3;
  27266. t = _tmp$4;
  27267. err = _tmp$5;
  27268. return [c, t, err];
  27269. };
  27270. isalnum = function(c) {
  27271. var c;
  27272. return 48 <= c && c <= 57 || 65 <= c && c <= 90 || 97 <= c && c <= 122;
  27273. };
  27274. unhex = function(c) {
  27275. var c;
  27276. if (48 <= c && c <= 57) {
  27277. return c - 48 >> 0;
  27278. }
  27279. if (97 <= c && c <= 102) {
  27280. return (c - 97 >> 0) + 10 >> 0;
  27281. }
  27282. if (65 <= c && c <= 70) {
  27283. return (c - 65 >> 0) + 10 >> 0;
  27284. }
  27285. return -1;
  27286. };
  27287. InstOp.prototype.String = function() {
  27288. var i;
  27289. i = this.$val;
  27290. if (((i >>> 0)) >= ((instOpNames.$length >>> 0))) {
  27291. return "";
  27292. }
  27293. return ((i < 0 || i >= instOpNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : instOpNames.$array[instOpNames.$offset + i]);
  27294. };
  27295. $ptrType(InstOp).prototype.String = function() { return new InstOp(this.$get()).String(); };
  27296. IsWordChar = function(r) {
  27297. var r;
  27298. return 65 <= r && r <= 90 || 97 <= r && r <= 122 || 48 <= r && r <= 57 || (r === 95);
  27299. };
  27300. $pkg.IsWordChar = IsWordChar;
  27301. Prog.ptr.prototype.String = function() {
  27302. var b, p;
  27303. p = this;
  27304. b = new strings.Builder.ptr(ptrType$4.nil, sliceType$6.nil);
  27305. dumpProg(b, p);
  27306. return b.String();
  27307. };
  27308. Prog.prototype.String = function() { return this.$val.String(); };
  27309. Prog.ptr.prototype.skipNop = function(pc) {
  27310. var i, p, pc, x, x$1, x$2;
  27311. p = this;
  27312. i = (x = p.Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc]));
  27313. while (true) {
  27314. if (!((i.Op === 6) || (i.Op === 2))) { break; }
  27315. i = (x$1 = p.Inst, x$2 = i.Out, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2]));
  27316. }
  27317. return i;
  27318. };
  27319. Prog.prototype.skipNop = function(pc) { return this.$val.skipNop(pc); };
  27320. Inst.ptr.prototype.op = function() {
  27321. var _1, i, op;
  27322. i = this;
  27323. op = i.Op;
  27324. _1 = op;
  27325. if ((_1 === (8)) || (_1 === (9)) || (_1 === (10))) {
  27326. op = 7;
  27327. }
  27328. return op;
  27329. };
  27330. Inst.prototype.op = function() { return this.$val.op(); };
  27331. Prog.ptr.prototype.Prefix = function() {
  27332. var _tmp, _tmp$1, _tmp$2, _tmp$3, buf, complete, i, p, prefix, x;
  27333. prefix = "";
  27334. complete = false;
  27335. p = this;
  27336. i = p.skipNop(((p.Start >>> 0)));
  27337. if (!((i.op() === 7)) || !((i.Rune.$length === 1))) {
  27338. _tmp = "";
  27339. _tmp$1 = i.Op === 4;
  27340. prefix = _tmp;
  27341. complete = _tmp$1;
  27342. return [prefix, complete];
  27343. }
  27344. buf = new strings.Builder.ptr(ptrType$4.nil, sliceType$6.nil);
  27345. while (true) {
  27346. if (!((i.op() === 7) && (i.Rune.$length === 1) && (((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { break; }
  27347. buf.WriteRune((x = i.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])));
  27348. i = p.skipNop(i.Out);
  27349. }
  27350. _tmp$2 = buf.String();
  27351. _tmp$3 = i.Op === 4;
  27352. prefix = _tmp$2;
  27353. complete = _tmp$3;
  27354. return [prefix, complete];
  27355. };
  27356. Prog.prototype.Prefix = function() { return this.$val.Prefix(); };
  27357. Prog.ptr.prototype.StartCond = function() {
  27358. var _1, flag, i, p, pc, x, x$1;
  27359. p = this;
  27360. flag = 0;
  27361. pc = ((p.Start >>> 0));
  27362. i = (x = p.Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc]));
  27363. Loop:
  27364. while (true) {
  27365. _1 = i.Op;
  27366. if (_1 === (3)) {
  27367. flag = (flag | (((i.Arg << 24 >>> 24)))) >>> 0;
  27368. } else if (_1 === (5)) {
  27369. return 255;
  27370. } else if ((_1 === (2)) || (_1 === (6))) {
  27371. } else {
  27372. break Loop;
  27373. }
  27374. pc = i.Out;
  27375. i = (x$1 = p.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pc]));
  27376. }
  27377. return flag;
  27378. };
  27379. Prog.prototype.StartCond = function() { return this.$val.StartCond(); };
  27380. Inst.ptr.prototype.MatchRune = function(r) {
  27381. var i, r;
  27382. i = this;
  27383. return !((i.MatchRunePos(r) === -1));
  27384. };
  27385. Inst.prototype.MatchRune = function(r) { return this.$val.MatchRune(r); };
  27386. Inst.ptr.prototype.MatchRunePos = function(r) {
  27387. var _1, _q, _q$1, _q$2, c, hi, i, j, lo, m, r, r0, r1, rune, x, x$1, x$2;
  27388. i = this;
  27389. rune = i.Rune;
  27390. _1 = rune.$length;
  27391. if (_1 === (0)) {
  27392. return -1;
  27393. } else if (_1 === (1)) {
  27394. r0 = (0 >= rune.$length ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + 0]);
  27395. if (r === r0) {
  27396. return 0;
  27397. }
  27398. if (!((((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) {
  27399. r1 = unicode.SimpleFold(r0);
  27400. while (true) {
  27401. if (!(!((r1 === r0)))) { break; }
  27402. if (r === r1) {
  27403. return 0;
  27404. }
  27405. r1 = unicode.SimpleFold(r1);
  27406. }
  27407. }
  27408. return -1;
  27409. } else if (_1 === (2)) {
  27410. if (r >= (0 >= rune.$length ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + 0]) && r <= (1 >= rune.$length ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + 1])) {
  27411. return 0;
  27412. }
  27413. return -1;
  27414. } else if ((_1 === (4)) || (_1 === (6)) || (_1 === (8))) {
  27415. j = 0;
  27416. while (true) {
  27417. if (!(j < rune.$length)) { break; }
  27418. if (r < ((j < 0 || j >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + j])) {
  27419. return -1;
  27420. }
  27421. if (r <= (x = j + 1 >> 0, ((x < 0 || x >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + x]))) {
  27422. return (_q = j / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
  27423. }
  27424. j = j + (2) >> 0;
  27425. }
  27426. return -1;
  27427. }
  27428. lo = 0;
  27429. hi = (_q$1 = rune.$length / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"));
  27430. while (true) {
  27431. if (!(lo < hi)) { break; }
  27432. m = lo + (_q$2 = ((hi - lo >> 0)) / 2, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) >> 0;
  27433. c = (x$1 = $imul(2, m), ((x$1 < 0 || x$1 >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + x$1]));
  27434. if (c <= r) {
  27435. if (r <= (x$2 = ($imul(2, m)) + 1 >> 0, ((x$2 < 0 || x$2 >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + x$2]))) {
  27436. return m;
  27437. }
  27438. lo = m + 1 >> 0;
  27439. } else {
  27440. hi = m;
  27441. }
  27442. }
  27443. return -1;
  27444. };
  27445. Inst.prototype.MatchRunePos = function(r) { return this.$val.MatchRunePos(r); };
  27446. Inst.ptr.prototype.MatchEmptyWidth = function(before, after) {
  27447. var _1, after, before, i;
  27448. i = this;
  27449. _1 = ((i.Arg << 24 >>> 24));
  27450. if (_1 === (1)) {
  27451. return (before === 10) || (before === -1);
  27452. } else if (_1 === (2)) {
  27453. return (after === 10) || (after === -1);
  27454. } else if (_1 === (4)) {
  27455. return before === -1;
  27456. } else if (_1 === (8)) {
  27457. return after === -1;
  27458. } else if (_1 === (16)) {
  27459. return !(IsWordChar(before) === IsWordChar(after));
  27460. } else if (_1 === (32)) {
  27461. return IsWordChar(before) === IsWordChar(after);
  27462. }
  27463. $panic(new $String("unknown empty width arg"));
  27464. };
  27465. Inst.prototype.MatchEmptyWidth = function(before, after) { return this.$val.MatchEmptyWidth(before, after); };
  27466. Inst.ptr.prototype.String = function() {
  27467. var b, i;
  27468. i = this;
  27469. b = new strings.Builder.ptr(ptrType$4.nil, sliceType$6.nil);
  27470. dumpInst(b, i);
  27471. return b.String();
  27472. };
  27473. Inst.prototype.String = function() { return this.$val.String(); };
  27474. bw = function(b, args) {
  27475. var _i, _ref, args, b, s;
  27476. _ref = args;
  27477. _i = 0;
  27478. while (true) {
  27479. if (!(_i < _ref.$length)) { break; }
  27480. s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  27481. b.WriteString(s);
  27482. _i++;
  27483. }
  27484. };
  27485. dumpProg = function(b, p) {
  27486. var _i, _ref, b, i, j, p, pc, x;
  27487. _ref = p.Inst;
  27488. _i = 0;
  27489. while (true) {
  27490. if (!(_i < _ref.$length)) { break; }
  27491. j = _i;
  27492. i = (x = p.Inst, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j]));
  27493. pc = strconv.Itoa(j);
  27494. if (pc.length < 3) {
  27495. b.WriteString($substring(" ", pc.length));
  27496. }
  27497. if (j === p.Start) {
  27498. pc = pc + ("*");
  27499. }
  27500. bw(b, new sliceType$3([pc, "\t"]));
  27501. dumpInst(b, i);
  27502. bw(b, new sliceType$3(["\n"]));
  27503. _i++;
  27504. }
  27505. };
  27506. u32 = function(i) {
  27507. var i;
  27508. return strconv.FormatUint((new $Uint64(0, i)), 10);
  27509. };
  27510. dumpInst = function(b, i) {
  27511. var _1, b, i;
  27512. _1 = i.Op;
  27513. if (_1 === (0)) {
  27514. bw(b, new sliceType$3(["alt -> ", u32(i.Out), ", ", u32(i.Arg)]));
  27515. } else if (_1 === (1)) {
  27516. bw(b, new sliceType$3(["altmatch -> ", u32(i.Out), ", ", u32(i.Arg)]));
  27517. } else if (_1 === (2)) {
  27518. bw(b, new sliceType$3(["cap ", u32(i.Arg), " -> ", u32(i.Out)]));
  27519. } else if (_1 === (3)) {
  27520. bw(b, new sliceType$3(["empty ", u32(i.Arg), " -> ", u32(i.Out)]));
  27521. } else if (_1 === (4)) {
  27522. bw(b, new sliceType$3(["match"]));
  27523. } else if (_1 === (5)) {
  27524. bw(b, new sliceType$3(["fail"]));
  27525. } else if (_1 === (6)) {
  27526. bw(b, new sliceType$3(["nop -> ", u32(i.Out)]));
  27527. } else if (_1 === (7)) {
  27528. if (i.Rune === sliceType.nil) {
  27529. bw(b, new sliceType$3(["rune <nil>"]));
  27530. }
  27531. bw(b, new sliceType$3(["rune ", strconv.QuoteToASCII(($runesToString(i.Rune)))]));
  27532. if (!((((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) {
  27533. bw(b, new sliceType$3(["/i"]));
  27534. }
  27535. bw(b, new sliceType$3([" -> ", u32(i.Out)]));
  27536. } else if (_1 === (8)) {
  27537. bw(b, new sliceType$3(["rune1 ", strconv.QuoteToASCII(($runesToString(i.Rune))), " -> ", u32(i.Out)]));
  27538. } else if (_1 === (9)) {
  27539. bw(b, new sliceType$3(["any -> ", u32(i.Out)]));
  27540. } else if (_1 === (10)) {
  27541. bw(b, new sliceType$3(["anynotnl -> ", u32(i.Out)]));
  27542. }
  27543. };
  27544. Regexp.ptr.prototype.Equal = function(y) {
  27545. var _1, _i, _i$1, _ref, _ref$1, i, i$1, r, sub, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, y;
  27546. x = this;
  27547. if (x === ptrType$1.nil || y === ptrType$1.nil) {
  27548. return x === y;
  27549. }
  27550. if (!((x.Op === y.Op))) {
  27551. return false;
  27552. }
  27553. _1 = x.Op;
  27554. if (_1 === (10)) {
  27555. if (!((((x.Flags & 256) >>> 0) === ((y.Flags & 256) >>> 0)))) {
  27556. return false;
  27557. }
  27558. } else if ((_1 === (3)) || (_1 === (4))) {
  27559. if (!((x.Rune.$length === y.Rune.$length))) {
  27560. return false;
  27561. }
  27562. _ref = x.Rune;
  27563. _i = 0;
  27564. while (true) {
  27565. if (!(_i < _ref.$length)) { break; }
  27566. i = _i;
  27567. r = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  27568. if (!((r === (x$1 = y.Rune, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i]))))) {
  27569. return false;
  27570. }
  27571. _i++;
  27572. }
  27573. } else if ((_1 === (19)) || (_1 === (18))) {
  27574. if (!((x.Sub.$length === y.Sub.$length))) {
  27575. return false;
  27576. }
  27577. _ref$1 = x.Sub;
  27578. _i$1 = 0;
  27579. while (true) {
  27580. if (!(_i$1 < _ref$1.$length)) { break; }
  27581. i$1 = _i$1;
  27582. sub = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]);
  27583. if (!sub.Equal((x$2 = y.Sub, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])))) {
  27584. return false;
  27585. }
  27586. _i$1++;
  27587. }
  27588. } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16))) {
  27589. if (!((((x.Flags & 32) >>> 0) === ((y.Flags & 32) >>> 0))) || !(x$3 = x.Sub, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).Equal((x$4 = y.Sub, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])))) {
  27590. return false;
  27591. }
  27592. } else if (_1 === (17)) {
  27593. if (!((((x.Flags & 32) >>> 0) === ((y.Flags & 32) >>> 0))) || !((x.Min === y.Min)) || !((x.Max === y.Max)) || !(x$5 = x.Sub, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])).Equal((x$6 = y.Sub, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0])))) {
  27594. return false;
  27595. }
  27596. } else if (_1 === (13)) {
  27597. if (!((x.Cap === y.Cap)) || !(x.Name === y.Name) || !(x$7 = x.Sub, (0 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 0])).Equal((x$8 = y.Sub, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0])))) {
  27598. return false;
  27599. }
  27600. }
  27601. return true;
  27602. };
  27603. Regexp.prototype.Equal = function(y) { return this.$val.Equal(y); };
  27604. writeRegexp = function(b, re) {
  27605. var _1, _2, _i, _i$1, _i$2, _r, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tmp$2, _tmp$3, b, hi, hi$1, i, i$1, i$2, lo, lo$1, r, re, sub, sub$1, sub$2, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
  27606. switch (0) { default:
  27607. _1 = re.Op;
  27608. if (_1 === (1)) {
  27609. b.WriteString("[^\\x00-\\x{10FFFF}]");
  27610. } else if (_1 === (2)) {
  27611. b.WriteString("(?:)");
  27612. } else if (_1 === (3)) {
  27613. if (!((((re.Flags & 1) >>> 0) === 0))) {
  27614. b.WriteString("(?i:");
  27615. }
  27616. _ref = re.Rune;
  27617. _i = 0;
  27618. while (true) {
  27619. if (!(_i < _ref.$length)) { break; }
  27620. r = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  27621. escape(b, r, false);
  27622. _i++;
  27623. }
  27624. if (!((((re.Flags & 1) >>> 0) === 0))) {
  27625. b.WriteString(")");
  27626. }
  27627. } else if (_1 === (4)) {
  27628. if (!(((_r = re.Rune.$length % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0))) {
  27629. b.WriteString("[invalid char class]");
  27630. break;
  27631. }
  27632. b.WriteRune(91);
  27633. if (re.Rune.$length === 0) {
  27634. b.WriteString("^\\x00-\\x{10FFFF}");
  27635. } else if (((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 0) && ((x$1 = re.Rune, x$2 = re.Rune.$length - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) === 1114111)) {
  27636. b.WriteRune(94);
  27637. i = 1;
  27638. while (true) {
  27639. if (!(i < (re.Rune.$length - 1 >> 0))) { break; }
  27640. _tmp = (x$3 = re.Rune, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i])) + 1 >> 0;
  27641. _tmp$1 = (x$4 = re.Rune, x$5 = i + 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])) - 1 >> 0;
  27642. lo = _tmp;
  27643. hi = _tmp$1;
  27644. escape(b, lo, lo === 45);
  27645. if (!((lo === hi))) {
  27646. b.WriteRune(45);
  27647. escape(b, hi, hi === 45);
  27648. }
  27649. i = i + (2) >> 0;
  27650. }
  27651. } else {
  27652. i$1 = 0;
  27653. while (true) {
  27654. if (!(i$1 < re.Rune.$length)) { break; }
  27655. _tmp$2 = (x$6 = re.Rune, ((i$1 < 0 || i$1 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i$1]));
  27656. _tmp$3 = (x$7 = re.Rune, x$8 = i$1 + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8]));
  27657. lo$1 = _tmp$2;
  27658. hi$1 = _tmp$3;
  27659. escape(b, lo$1, lo$1 === 45);
  27660. if (!((lo$1 === hi$1))) {
  27661. b.WriteRune(45);
  27662. escape(b, hi$1, hi$1 === 45);
  27663. }
  27664. i$1 = i$1 + (2) >> 0;
  27665. }
  27666. }
  27667. b.WriteRune(93);
  27668. } else if (_1 === (5)) {
  27669. b.WriteString("(?-s:.)");
  27670. } else if (_1 === (6)) {
  27671. b.WriteString("(?s:.)");
  27672. } else if (_1 === (7)) {
  27673. b.WriteString("(?m:^)");
  27674. } else if (_1 === (8)) {
  27675. b.WriteString("(?m:$)");
  27676. } else if (_1 === (9)) {
  27677. b.WriteString("\\A");
  27678. } else if (_1 === (10)) {
  27679. if (!((((re.Flags & 256) >>> 0) === 0))) {
  27680. b.WriteString("(?-m:$)");
  27681. } else {
  27682. b.WriteString("\\z");
  27683. }
  27684. } else if (_1 === (11)) {
  27685. b.WriteString("\\b");
  27686. } else if (_1 === (12)) {
  27687. b.WriteString("\\B");
  27688. } else if (_1 === (13)) {
  27689. if (!(re.Name === "")) {
  27690. b.WriteString("(?P<");
  27691. b.WriteString(re.Name);
  27692. b.WriteRune(62);
  27693. } else {
  27694. b.WriteRune(40);
  27695. }
  27696. if (!(((x$9 = re.Sub, (0 >= x$9.$length ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + 0])).Op === 2))) {
  27697. writeRegexp(b, (x$10 = re.Sub, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0])));
  27698. }
  27699. b.WriteRune(41);
  27700. } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16)) || (_1 === (17))) {
  27701. sub = (x$11 = re.Sub, (0 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 0]));
  27702. if (sub.Op > 13 || (sub.Op === 3) && sub.Rune.$length > 1) {
  27703. b.WriteString("(?:");
  27704. writeRegexp(b, sub);
  27705. b.WriteString(")");
  27706. } else {
  27707. writeRegexp(b, sub);
  27708. }
  27709. _2 = re.Op;
  27710. if (_2 === (14)) {
  27711. b.WriteRune(42);
  27712. } else if (_2 === (15)) {
  27713. b.WriteRune(43);
  27714. } else if (_2 === (16)) {
  27715. b.WriteRune(63);
  27716. } else if (_2 === (17)) {
  27717. b.WriteRune(123);
  27718. b.WriteString(strconv.Itoa(re.Min));
  27719. if (!((re.Max === re.Min))) {
  27720. b.WriteRune(44);
  27721. if (re.Max >= 0) {
  27722. b.WriteString(strconv.Itoa(re.Max));
  27723. }
  27724. }
  27725. b.WriteRune(125);
  27726. }
  27727. if (!((((re.Flags & 32) >>> 0) === 0))) {
  27728. b.WriteRune(63);
  27729. }
  27730. } else if (_1 === (18)) {
  27731. _ref$1 = re.Sub;
  27732. _i$1 = 0;
  27733. while (true) {
  27734. if (!(_i$1 < _ref$1.$length)) { break; }
  27735. sub$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]);
  27736. if (sub$1.Op === 19) {
  27737. b.WriteString("(?:");
  27738. writeRegexp(b, sub$1);
  27739. b.WriteString(")");
  27740. } else {
  27741. writeRegexp(b, sub$1);
  27742. }
  27743. _i$1++;
  27744. }
  27745. } else if (_1 === (19)) {
  27746. _ref$2 = re.Sub;
  27747. _i$2 = 0;
  27748. while (true) {
  27749. if (!(_i$2 < _ref$2.$length)) { break; }
  27750. i$2 = _i$2;
  27751. sub$2 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]);
  27752. if (i$2 > 0) {
  27753. b.WriteRune(124);
  27754. }
  27755. writeRegexp(b, sub$2);
  27756. _i$2++;
  27757. }
  27758. } else {
  27759. b.WriteString("<invalid op" + strconv.Itoa(((re.Op >> 0))) + ">");
  27760. }
  27761. }
  27762. };
  27763. Regexp.ptr.prototype.String = function() {
  27764. var b, re;
  27765. re = this;
  27766. b = new strings.Builder.ptr(ptrType$4.nil, sliceType$6.nil);
  27767. writeRegexp(b, re);
  27768. return b.String();
  27769. };
  27770. Regexp.prototype.String = function() { return this.$val.String(); };
  27771. escape = function(b, r, force) {
  27772. var _1, b, force, r, s;
  27773. if (unicode.IsPrint(r)) {
  27774. if (strings.ContainsRune("\\.+*?()|[]{}^$", r) || force) {
  27775. b.WriteRune(92);
  27776. }
  27777. b.WriteRune(r);
  27778. return;
  27779. }
  27780. switch (0) { default:
  27781. _1 = r;
  27782. if (_1 === (7)) {
  27783. b.WriteString("\\a");
  27784. } else if (_1 === (12)) {
  27785. b.WriteString("\\f");
  27786. } else if (_1 === (10)) {
  27787. b.WriteString("\\n");
  27788. } else if (_1 === (13)) {
  27789. b.WriteString("\\r");
  27790. } else if (_1 === (9)) {
  27791. b.WriteString("\\t");
  27792. } else if (_1 === (11)) {
  27793. b.WriteString("\\v");
  27794. } else {
  27795. if (r < 256) {
  27796. b.WriteString("\\x");
  27797. s = strconv.FormatInt((new $Int64(0, r)), 16);
  27798. if (s.length === 1) {
  27799. b.WriteRune(48);
  27800. }
  27801. b.WriteString(s);
  27802. break;
  27803. }
  27804. b.WriteString("\\x{");
  27805. b.WriteString(strconv.FormatInt((new $Int64(0, r)), 16));
  27806. b.WriteString("}");
  27807. }
  27808. }
  27809. };
  27810. Regexp.ptr.prototype.MaxCap = function() {
  27811. var _i, _ref, m, n, re, sub;
  27812. re = this;
  27813. m = 0;
  27814. if (re.Op === 13) {
  27815. m = re.Cap;
  27816. }
  27817. _ref = re.Sub;
  27818. _i = 0;
  27819. while (true) {
  27820. if (!(_i < _ref.$length)) { break; }
  27821. sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  27822. n = sub.MaxCap();
  27823. if (m < n) {
  27824. m = n;
  27825. }
  27826. _i++;
  27827. }
  27828. return m;
  27829. };
  27830. Regexp.prototype.MaxCap = function() { return this.$val.MaxCap(); };
  27831. Regexp.ptr.prototype.CapNames = function() {
  27832. var names, re;
  27833. re = this;
  27834. names = $makeSlice(sliceType$3, (re.MaxCap() + 1 >> 0));
  27835. re.capNames(names);
  27836. return names;
  27837. };
  27838. Regexp.prototype.CapNames = function() { return this.$val.CapNames(); };
  27839. Regexp.ptr.prototype.capNames = function(names) {
  27840. var _i, _ref, names, re, sub, x;
  27841. re = this;
  27842. if (re.Op === 13) {
  27843. (x = re.Cap, ((x < 0 || x >= names.$length) ? ($throwRuntimeError("index out of range"), undefined) : names.$array[names.$offset + x] = re.Name));
  27844. }
  27845. _ref = re.Sub;
  27846. _i = 0;
  27847. while (true) {
  27848. if (!(_i < _ref.$length)) { break; }
  27849. sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  27850. sub.capNames(names);
  27851. _i++;
  27852. }
  27853. };
  27854. Regexp.prototype.capNames = function(names) { return this.$val.capNames(names); };
  27855. Regexp.ptr.prototype.Simplify = function() {
  27856. var _1, _i, _ref, i, i$1, i$2, i$3, nre, nre$1, nre2, nsub, prefix, re, sub, sub$1, sub$2, suffix, x, x$1;
  27857. re = this;
  27858. if (re === ptrType$1.nil) {
  27859. return ptrType$1.nil;
  27860. }
  27861. _1 = re.Op;
  27862. if ((_1 === (13)) || (_1 === (18)) || (_1 === (19))) {
  27863. nre = re;
  27864. _ref = re.Sub;
  27865. _i = 0;
  27866. while (true) {
  27867. if (!(_i < _ref.$length)) { break; }
  27868. i = _i;
  27869. sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  27870. nsub = sub.Simplify();
  27871. if (nre === re && !(nsub === sub)) {
  27872. nre = new Regexp.ptr(0, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, "");
  27873. Regexp.copy(nre, re);
  27874. nre.Rune = sliceType.nil;
  27875. nre.Sub = $appendSlice($subslice(new sliceType$5(nre.Sub0), 0, 0), $subslice(re.Sub, 0, i));
  27876. }
  27877. if (!(nre === re)) {
  27878. nre.Sub = $append(nre.Sub, nsub);
  27879. }
  27880. _i++;
  27881. }
  27882. return nre;
  27883. } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16))) {
  27884. sub$1 = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Simplify();
  27885. return simplify1(re.Op, re.Flags, sub$1, re);
  27886. } else if (_1 === (17)) {
  27887. if ((re.Min === 0) && (re.Max === 0)) {
  27888. return new Regexp.ptr(2, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, "");
  27889. }
  27890. sub$2 = (x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).Simplify();
  27891. if (re.Max === -1) {
  27892. if (re.Min === 0) {
  27893. return simplify1(14, re.Flags, sub$2, ptrType$1.nil);
  27894. }
  27895. if (re.Min === 1) {
  27896. return simplify1(15, re.Flags, sub$2, ptrType$1.nil);
  27897. }
  27898. nre$1 = new Regexp.ptr(18, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, "");
  27899. nre$1.Sub = $subslice(new sliceType$5(nre$1.Sub0), 0, 0);
  27900. i$1 = 0;
  27901. while (true) {
  27902. if (!(i$1 < (re.Min - 1 >> 0))) { break; }
  27903. nre$1.Sub = $append(nre$1.Sub, sub$2);
  27904. i$1 = i$1 + (1) >> 0;
  27905. }
  27906. nre$1.Sub = $append(nre$1.Sub, simplify1(15, re.Flags, sub$2, ptrType$1.nil));
  27907. return nre$1;
  27908. }
  27909. if ((re.Min === 1) && (re.Max === 1)) {
  27910. return sub$2;
  27911. }
  27912. prefix = ptrType$1.nil;
  27913. if (re.Min > 0) {
  27914. prefix = new Regexp.ptr(18, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, "");
  27915. prefix.Sub = $subslice(new sliceType$5(prefix.Sub0), 0, 0);
  27916. i$2 = 0;
  27917. while (true) {
  27918. if (!(i$2 < re.Min)) { break; }
  27919. prefix.Sub = $append(prefix.Sub, sub$2);
  27920. i$2 = i$2 + (1) >> 0;
  27921. }
  27922. }
  27923. if (re.Max > re.Min) {
  27924. suffix = simplify1(16, re.Flags, sub$2, ptrType$1.nil);
  27925. i$3 = re.Min + 1 >> 0;
  27926. while (true) {
  27927. if (!(i$3 < re.Max)) { break; }
  27928. nre2 = new Regexp.ptr(18, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, "");
  27929. nre2.Sub = $append($subslice(new sliceType$5(nre2.Sub0), 0, 0), sub$2, suffix);
  27930. suffix = simplify1(16, re.Flags, nre2, ptrType$1.nil);
  27931. i$3 = i$3 + (1) >> 0;
  27932. }
  27933. if (prefix === ptrType$1.nil) {
  27934. return suffix;
  27935. }
  27936. prefix.Sub = $append(prefix.Sub, suffix);
  27937. }
  27938. if (!(prefix === ptrType$1.nil)) {
  27939. return prefix;
  27940. }
  27941. return new Regexp.ptr(1, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, "");
  27942. }
  27943. return re;
  27944. };
  27945. Regexp.prototype.Simplify = function() { return this.$val.Simplify(); };
  27946. simplify1 = function(op, flags, sub, re) {
  27947. var flags, op, re, sub, x;
  27948. if (sub.Op === 2) {
  27949. return sub;
  27950. }
  27951. if ((op === sub.Op) && (((flags & 32) >>> 0) === ((sub.Flags & 32) >>> 0))) {
  27952. return sub;
  27953. }
  27954. if (!(re === ptrType$1.nil) && (re.Op === op) && (((re.Flags & 32) >>> 0) === ((flags & 32) >>> 0)) && sub === (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))) {
  27955. return re;
  27956. }
  27957. re = new Regexp.ptr(op, flags, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, "");
  27958. re.Sub = $append($subslice(new sliceType$5(re.Sub0), 0, 0), sub);
  27959. return re;
  27960. };
  27961. patchList.methods = [{prop: "next", name: "next", pkg: "regexp/syntax", typ: $funcType([ptrType], [patchList], false)}, {prop: "patch", name: "patch", pkg: "regexp/syntax", typ: $funcType([ptrType, $Uint32], [], false)}, {prop: "append", name: "append", pkg: "regexp/syntax", typ: $funcType([ptrType, patchList], [patchList], false)}];
  27962. ptrType$5.methods = [{prop: "init", name: "init", pkg: "regexp/syntax", typ: $funcType([], [], false)}, {prop: "compile", name: "compile", pkg: "regexp/syntax", typ: $funcType([ptrType$1], [frag], false)}, {prop: "inst", name: "inst", pkg: "regexp/syntax", typ: $funcType([InstOp], [frag], false)}, {prop: "nop", name: "nop", pkg: "regexp/syntax", typ: $funcType([], [frag], false)}, {prop: "fail", name: "fail", pkg: "regexp/syntax", typ: $funcType([], [frag], false)}, {prop: "cap", name: "cap", pkg: "regexp/syntax", typ: $funcType([$Uint32], [frag], false)}, {prop: "cat", name: "cat", pkg: "regexp/syntax", typ: $funcType([frag, frag], [frag], false)}, {prop: "alt", name: "alt", pkg: "regexp/syntax", typ: $funcType([frag, frag], [frag], false)}, {prop: "quest", name: "quest", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "star", name: "star", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "plus", name: "plus", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "empty", name: "empty", pkg: "regexp/syntax", typ: $funcType([EmptyOp], [frag], false)}, {prop: "rune", name: "rune", pkg: "regexp/syntax", typ: $funcType([sliceType, Flags], [frag], false)}];
  27963. ptrType$6.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
  27964. ErrorCode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
  27965. ptrType$7.methods = [{prop: "newRegexp", name: "newRegexp", pkg: "regexp/syntax", typ: $funcType([Op], [ptrType$1], false)}, {prop: "reuse", name: "reuse", pkg: "regexp/syntax", typ: $funcType([ptrType$1], [], false)}, {prop: "push", name: "push", pkg: "regexp/syntax", typ: $funcType([ptrType$1], [ptrType$1], false)}, {prop: "maybeConcat", name: "maybeConcat", pkg: "regexp/syntax", typ: $funcType([$Int32, Flags], [$Bool], false)}, {prop: "newLiteral", name: "newLiteral", pkg: "regexp/syntax", typ: $funcType([$Int32, Flags], [ptrType$1], false)}, {prop: "literal", name: "literal", pkg: "regexp/syntax", typ: $funcType([$Int32], [], false)}, {prop: "op", name: "op", pkg: "regexp/syntax", typ: $funcType([Op], [ptrType$1], false)}, {prop: "repeat", name: "repeat", pkg: "regexp/syntax", typ: $funcType([Op, $Int, $Int, $String, $String, $String], [$String, $error], false)}, {prop: "concat", name: "concat", pkg: "regexp/syntax", typ: $funcType([], [ptrType$1], false)}, {prop: "alternate", name: "alternate", pkg: "regexp/syntax", typ: $funcType([], [ptrType$1], false)}, {prop: "collapse", name: "collapse", pkg: "regexp/syntax", typ: $funcType([sliceType$5, Op], [ptrType$1], false)}, {prop: "factor", name: "factor", pkg: "regexp/syntax", typ: $funcType([sliceType$5], [sliceType$5], false)}, {prop: "leadingString", name: "leadingString", pkg: "regexp/syntax", typ: $funcType([ptrType$1], [sliceType, Flags], false)}, {prop: "removeLeadingString", name: "removeLeadingString", pkg: "regexp/syntax", typ: $funcType([ptrType$1, $Int], [ptrType$1], false)}, {prop: "leadingRegexp", name: "leadingRegexp", pkg: "regexp/syntax", typ: $funcType([ptrType$1], [ptrType$1], false)}, {prop: "removeLeadingRegexp", name: "removeLeadingRegexp", pkg: "regexp/syntax", typ: $funcType([ptrType$1, $Bool], [ptrType$1], false)}, {prop: "parseRepeat", name: "parseRepeat", pkg: "regexp/syntax", typ: $funcType([$String], [$Int, $Int, $String, $Bool], false)}, {prop: "parsePerlFlags", name: "parsePerlFlags", pkg: "regexp/syntax", typ: $funcType([$String], [$String, $error], false)}, {prop: "parseInt", name: "parseInt", pkg: "regexp/syntax", typ: $funcType([$String], [$Int, $String, $Bool], false)}, {prop: "parseVerticalBar", name: "parseVerticalBar", pkg: "regexp/syntax", typ: $funcType([], [$error], false)}, {prop: "swapVerticalBar", name: "swapVerticalBar", pkg: "regexp/syntax", typ: $funcType([], [$Bool], false)}, {prop: "parseRightParen", name: "parseRightParen", pkg: "regexp/syntax", typ: $funcType([], [$error], false)}, {prop: "parseEscape", name: "parseEscape", pkg: "regexp/syntax", typ: $funcType([$String], [$Int32, $String, $error], false)}, {prop: "parseClassChar", name: "parseClassChar", pkg: "regexp/syntax", typ: $funcType([$String, $String], [$Int32, $String, $error], false)}, {prop: "parsePerlClassEscape", name: "parsePerlClassEscape", pkg: "regexp/syntax", typ: $funcType([$String, sliceType], [sliceType, $String], false)}, {prop: "parseNamedClass", name: "parseNamedClass", pkg: "regexp/syntax", typ: $funcType([$String, sliceType], [sliceType, $String, $error], false)}, {prop: "appendGroup", name: "appendGroup", pkg: "regexp/syntax", typ: $funcType([sliceType, charGroup], [sliceType], false)}, {prop: "parseUnicodeClass", name: "parseUnicodeClass", pkg: "regexp/syntax", typ: $funcType([$String, sliceType], [sliceType, $String, $error], false)}, {prop: "parseClass", name: "parseClass", pkg: "regexp/syntax", typ: $funcType([$String], [$String, $error], false)}];
  27966. ranges.methods = [{prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}];
  27967. ptrType.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "skipNop", name: "skipNop", pkg: "regexp/syntax", typ: $funcType([$Uint32], [ptrType$8], false)}, {prop: "Prefix", name: "Prefix", pkg: "", typ: $funcType([], [$String, $Bool], false)}, {prop: "StartCond", name: "StartCond", pkg: "", typ: $funcType([], [EmptyOp], false)}];
  27968. InstOp.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
  27969. ptrType$8.methods = [{prop: "op", name: "op", pkg: "regexp/syntax", typ: $funcType([], [InstOp], false)}, {prop: "MatchRune", name: "MatchRune", pkg: "", typ: $funcType([$Int32], [$Bool], false)}, {prop: "MatchRunePos", name: "MatchRunePos", pkg: "", typ: $funcType([$Int32], [$Int], false)}, {prop: "MatchEmptyWidth", name: "MatchEmptyWidth", pkg: "", typ: $funcType([$Int32, $Int32], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
  27970. ptrType$1.methods = [{prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType$1], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MaxCap", name: "MaxCap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "CapNames", name: "CapNames", pkg: "", typ: $funcType([], [sliceType$3], false)}, {prop: "capNames", name: "capNames", pkg: "regexp/syntax", typ: $funcType([sliceType$3], [], false)}, {prop: "Simplify", name: "Simplify", pkg: "", typ: $funcType([], [ptrType$1], false)}];
  27971. Op.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
  27972. frag.init("regexp/syntax", [{prop: "i", name: "i", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "out", name: "out", embedded: false, exported: false, typ: patchList, tag: ""}]);
  27973. compiler.init("regexp/syntax", [{prop: "p", name: "p", embedded: false, exported: false, typ: ptrType, tag: ""}]);
  27974. Error.init("", [{prop: "Code", name: "Code", embedded: false, exported: true, typ: ErrorCode, tag: ""}, {prop: "Expr", name: "Expr", embedded: false, exported: true, typ: $String, tag: ""}]);
  27975. parser.init("regexp/syntax", [{prop: "flags", name: "flags", embedded: false, exported: false, typ: Flags, tag: ""}, {prop: "stack", name: "stack", embedded: false, exported: false, typ: sliceType$5, tag: ""}, {prop: "free", name: "free", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "numCap", name: "numCap", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "wholeRegexp", name: "wholeRegexp", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tmpClass", name: "tmpClass", embedded: false, exported: false, typ: sliceType, tag: ""}]);
  27976. charGroup.init("regexp/syntax", [{prop: "sign", name: "sign", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "class$1", name: "class", embedded: false, exported: false, typ: sliceType, tag: ""}]);
  27977. ranges.init("regexp/syntax", [{prop: "p", name: "p", embedded: false, exported: false, typ: ptrType$2, tag: ""}]);
  27978. Prog.init("", [{prop: "Inst", name: "Inst", embedded: false, exported: true, typ: sliceType$4, tag: ""}, {prop: "Start", name: "Start", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "NumCap", name: "NumCap", embedded: false, exported: true, typ: $Int, tag: ""}]);
  27979. Inst.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: InstOp, tag: ""}, {prop: "Out", name: "Out", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Arg", name: "Arg", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Rune", name: "Rune", embedded: false, exported: true, typ: sliceType, tag: ""}]);
  27980. Regexp.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: Op, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: Flags, tag: ""}, {prop: "Sub", name: "Sub", embedded: false, exported: true, typ: sliceType$5, tag: ""}, {prop: "Sub0", name: "Sub0", embedded: false, exported: true, typ: arrayType, tag: ""}, {prop: "Rune", name: "Rune", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Rune0", name: "Rune0", embedded: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "Min", name: "Min", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Max", name: "Max", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Cap", name: "Cap", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}]);
  27981. $init = function() {
  27982. $pkg.$init = function() {};
  27983. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  27984. $r = sort.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  27985. $r = strconv.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  27986. $r = strings.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  27987. $r = unicode.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  27988. $r = utf8.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  27989. anyRuneNotNL = new sliceType([0, 9, 11, 1114111]);
  27990. anyRune = new sliceType([0, 1114111]);
  27991. _Op_index_0 = $toNativeArray($kindUint8, [0, 7, 17, 24, 33, 45, 52, 61, 68, 77, 84, 96, 110, 117, 121, 125, 130, 136, 142, 151]);
  27992. anyTable = new unicode.RangeTable.ptr(new sliceType$1([new unicode.Range16.ptr(0, 65535, 1)]), new sliceType$2([new unicode.Range32.ptr(65536, 1114111, 1)]), 0);
  27993. code1 = new sliceType([48, 57]);
  27994. code2 = new sliceType([9, 10, 12, 13, 32, 32]);
  27995. code3 = new sliceType([48, 57, 65, 90, 95, 95, 97, 122]);
  27996. perlGroup = $makeMap($String.keyFor, [{ k: "\\d", v: new charGroup.ptr(1, code1) }, { k: "\\D", v: new charGroup.ptr(-1, code1) }, { k: "\\s", v: new charGroup.ptr(1, code2) }, { k: "\\S", v: new charGroup.ptr(-1, code2) }, { k: "\\w", v: new charGroup.ptr(1, code3) }, { k: "\\W", v: new charGroup.ptr(-1, code3) }]);
  27997. code4 = new sliceType([48, 57, 65, 90, 97, 122]);
  27998. code5 = new sliceType([65, 90, 97, 122]);
  27999. code6 = new sliceType([0, 127]);
  28000. code7 = new sliceType([9, 9, 32, 32]);
  28001. code8 = new sliceType([0, 31, 127, 127]);
  28002. code9 = new sliceType([48, 57]);
  28003. code10 = new sliceType([33, 126]);
  28004. code11 = new sliceType([97, 122]);
  28005. code12 = new sliceType([32, 126]);
  28006. code13 = new sliceType([33, 47, 58, 64, 91, 96, 123, 126]);
  28007. code14 = new sliceType([9, 13, 32, 32]);
  28008. code15 = new sliceType([65, 90]);
  28009. code16 = new sliceType([48, 57, 65, 90, 95, 95, 97, 122]);
  28010. code17 = new sliceType([48, 57, 65, 70, 97, 102]);
  28011. posixGroup = $makeMap($String.keyFor, [{ k: "[:alnum:]", v: new charGroup.ptr(1, code4) }, { k: "[:^alnum:]", v: new charGroup.ptr(-1, code4) }, { k: "[:alpha:]", v: new charGroup.ptr(1, code5) }, { k: "[:^alpha:]", v: new charGroup.ptr(-1, code5) }, { k: "[:ascii:]", v: new charGroup.ptr(1, code6) }, { k: "[:^ascii:]", v: new charGroup.ptr(-1, code6) }, { k: "[:blank:]", v: new charGroup.ptr(1, code7) }, { k: "[:^blank:]", v: new charGroup.ptr(-1, code7) }, { k: "[:cntrl:]", v: new charGroup.ptr(1, code8) }, { k: "[:^cntrl:]", v: new charGroup.ptr(-1, code8) }, { k: "[:digit:]", v: new charGroup.ptr(1, code9) }, { k: "[:^digit:]", v: new charGroup.ptr(-1, code9) }, { k: "[:graph:]", v: new charGroup.ptr(1, code10) }, { k: "[:^graph:]", v: new charGroup.ptr(-1, code10) }, { k: "[:lower:]", v: new charGroup.ptr(1, code11) }, { k: "[:^lower:]", v: new charGroup.ptr(-1, code11) }, { k: "[:print:]", v: new charGroup.ptr(1, code12) }, { k: "[:^print:]", v: new charGroup.ptr(-1, code12) }, { k: "[:punct:]", v: new charGroup.ptr(1, code13) }, { k: "[:^punct:]", v: new charGroup.ptr(-1, code13) }, { k: "[:space:]", v: new charGroup.ptr(1, code14) }, { k: "[:^space:]", v: new charGroup.ptr(-1, code14) }, { k: "[:upper:]", v: new charGroup.ptr(1, code15) }, { k: "[:^upper:]", v: new charGroup.ptr(-1, code15) }, { k: "[:word:]", v: new charGroup.ptr(1, code16) }, { k: "[:^word:]", v: new charGroup.ptr(-1, code16) }, { k: "[:xdigit:]", v: new charGroup.ptr(1, code17) }, { k: "[:^xdigit:]", v: new charGroup.ptr(-1, code17) }]);
  28012. instOpNames = new sliceType$3(["InstAlt", "InstAltMatch", "InstCapture", "InstEmptyWidth", "InstMatch", "InstFail", "InstNop", "InstRune", "InstRune1", "InstRuneAny", "InstRuneAnyNotNL"]);
  28013. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  28014. };
  28015. $pkg.$init = $init;
  28016. return $pkg;
  28017. })();
  28018. $packages["regexp"] = (function() {
  28019. var $pkg = {}, $init, bytes, nosync, io, syntax, sort, strconv, strings, unicode, utf8, job, bitState, queue, entry, thread, machine, inputs, lazyFlag, onePassMachine, onePassProg, onePassInst, queueOnePass, runeSlice, Regexp, input, inputString, inputBytes, inputReader, sliceType, arrayType, arrayType$1, arrayType$2, sliceType$1, sliceType$2, ptrType, sliceType$3, sliceType$4, sliceType$5, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, sliceType$6, ptrType$9, sliceType$7, ptrType$10, sliceType$8, ptrType$11, ptrType$12, sliceType$9, ptrType$13, sliceType$10, sliceType$11, arrayType$3, arrayType$4, sliceType$12, sliceType$13, sliceType$14, sliceType$15, ptrType$14, ptrType$15, funcType, funcType$1, funcType$2, funcType$3, ptrType$16, ptrType$17, ptrType$18, bitStatePool, onePassPool, arrayNoInts, noRune, noNext, anyRuneNotNL, anyRune, matchSize, matchPool, specialBytes, newBitState, freeBitState, maxBitStateLen, shouldBacktrack, newLazyFlag, newOnePassMachine, freeOnePassMachine, onePassPrefix, onePassNext, iop, newQueue, mergeRuneSets, cleanupOnePass, onePassCopy, makeOnePass, compileOnePass, Compile, compile, MustCompile, quote, init, extract;
  28020. bytes = $packages["bytes"];
  28021. nosync = $packages["github.com/gopherjs/gopherjs/nosync"];
  28022. io = $packages["io"];
  28023. syntax = $packages["regexp/syntax"];
  28024. sort = $packages["sort"];
  28025. strconv = $packages["strconv"];
  28026. strings = $packages["strings"];
  28027. unicode = $packages["unicode"];
  28028. utf8 = $packages["unicode/utf8"];
  28029. job = $pkg.job = $newType(0, $kindStruct, "regexp.job", true, "regexp", false, function(pc_, arg_, pos_) {
  28030. this.$val = this;
  28031. if (arguments.length === 0) {
  28032. this.pc = 0;
  28033. this.arg = false;
  28034. this.pos = 0;
  28035. return;
  28036. }
  28037. this.pc = pc_;
  28038. this.arg = arg_;
  28039. this.pos = pos_;
  28040. });
  28041. bitState = $pkg.bitState = $newType(0, $kindStruct, "regexp.bitState", true, "regexp", false, function(end_, cap_, matchcap_, jobs_, visited_, inputs_) {
  28042. this.$val = this;
  28043. if (arguments.length === 0) {
  28044. this.end = 0;
  28045. this.cap = sliceType$3.nil;
  28046. this.matchcap = sliceType$3.nil;
  28047. this.jobs = sliceType$4.nil;
  28048. this.visited = sliceType$2.nil;
  28049. this.inputs = new inputs.ptr(new inputBytes.ptr(sliceType$5.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0));
  28050. return;
  28051. }
  28052. this.end = end_;
  28053. this.cap = cap_;
  28054. this.matchcap = matchcap_;
  28055. this.jobs = jobs_;
  28056. this.visited = visited_;
  28057. this.inputs = inputs_;
  28058. });
  28059. queue = $pkg.queue = $newType(0, $kindStruct, "regexp.queue", true, "regexp", false, function(sparse_, dense_) {
  28060. this.$val = this;
  28061. if (arguments.length === 0) {
  28062. this.sparse = sliceType$2.nil;
  28063. this.dense = sliceType$10.nil;
  28064. return;
  28065. }
  28066. this.sparse = sparse_;
  28067. this.dense = dense_;
  28068. });
  28069. entry = $pkg.entry = $newType(0, $kindStruct, "regexp.entry", true, "regexp", false, function(pc_, t_) {
  28070. this.$val = this;
  28071. if (arguments.length === 0) {
  28072. this.pc = 0;
  28073. this.t = ptrType$1.nil;
  28074. return;
  28075. }
  28076. this.pc = pc_;
  28077. this.t = t_;
  28078. });
  28079. thread = $pkg.thread = $newType(0, $kindStruct, "regexp.thread", true, "regexp", false, function(inst_, cap_) {
  28080. this.$val = this;
  28081. if (arguments.length === 0) {
  28082. this.inst = ptrType$2.nil;
  28083. this.cap = sliceType$3.nil;
  28084. return;
  28085. }
  28086. this.inst = inst_;
  28087. this.cap = cap_;
  28088. });
  28089. machine = $pkg.machine = $newType(0, $kindStruct, "regexp.machine", true, "regexp", false, function(re_, p_, q0_, q1_, pool_, matched_, matchcap_, inputs_) {
  28090. this.$val = this;
  28091. if (arguments.length === 0) {
  28092. this.re = ptrType$11.nil;
  28093. this.p = ptrType$12.nil;
  28094. this.q0 = new queue.ptr(sliceType$2.nil, sliceType$10.nil);
  28095. this.q1 = new queue.ptr(sliceType$2.nil, sliceType$10.nil);
  28096. this.pool = sliceType$11.nil;
  28097. this.matched = false;
  28098. this.matchcap = sliceType$3.nil;
  28099. this.inputs = new inputs.ptr(new inputBytes.ptr(sliceType$5.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0));
  28100. return;
  28101. }
  28102. this.re = re_;
  28103. this.p = p_;
  28104. this.q0 = q0_;
  28105. this.q1 = q1_;
  28106. this.pool = pool_;
  28107. this.matched = matched_;
  28108. this.matchcap = matchcap_;
  28109. this.inputs = inputs_;
  28110. });
  28111. inputs = $pkg.inputs = $newType(0, $kindStruct, "regexp.inputs", true, "regexp", false, function(bytes_, string_, reader_) {
  28112. this.$val = this;
  28113. if (arguments.length === 0) {
  28114. this.bytes = new inputBytes.ptr(sliceType$5.nil);
  28115. this.string = new inputString.ptr("");
  28116. this.reader = new inputReader.ptr($ifaceNil, false, 0);
  28117. return;
  28118. }
  28119. this.bytes = bytes_;
  28120. this.string = string_;
  28121. this.reader = reader_;
  28122. });
  28123. lazyFlag = $pkg.lazyFlag = $newType(8, $kindUint64, "regexp.lazyFlag", true, "regexp", false, null);
  28124. onePassMachine = $pkg.onePassMachine = $newType(0, $kindStruct, "regexp.onePassMachine", true, "regexp", false, function(inputs_, matchcap_) {
  28125. this.$val = this;
  28126. if (arguments.length === 0) {
  28127. this.inputs = new inputs.ptr(new inputBytes.ptr(sliceType$5.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0));
  28128. this.matchcap = sliceType$3.nil;
  28129. return;
  28130. }
  28131. this.inputs = inputs_;
  28132. this.matchcap = matchcap_;
  28133. });
  28134. onePassProg = $pkg.onePassProg = $newType(0, $kindStruct, "regexp.onePassProg", true, "regexp", false, function(Inst_, Start_, NumCap_) {
  28135. this.$val = this;
  28136. if (arguments.length === 0) {
  28137. this.Inst = sliceType$6.nil;
  28138. this.Start = 0;
  28139. this.NumCap = 0;
  28140. return;
  28141. }
  28142. this.Inst = Inst_;
  28143. this.Start = Start_;
  28144. this.NumCap = NumCap_;
  28145. });
  28146. onePassInst = $pkg.onePassInst = $newType(0, $kindStruct, "regexp.onePassInst", true, "regexp", false, function(Inst_, Next_) {
  28147. this.$val = this;
  28148. if (arguments.length === 0) {
  28149. this.Inst = new syntax.Inst.ptr(0, 0, 0, sliceType$1.nil);
  28150. this.Next = sliceType$2.nil;
  28151. return;
  28152. }
  28153. this.Inst = Inst_;
  28154. this.Next = Next_;
  28155. });
  28156. queueOnePass = $pkg.queueOnePass = $newType(0, $kindStruct, "regexp.queueOnePass", true, "regexp", false, function(sparse_, dense_, size_, nextIndex_) {
  28157. this.$val = this;
  28158. if (arguments.length === 0) {
  28159. this.sparse = sliceType$2.nil;
  28160. this.dense = sliceType$2.nil;
  28161. this.size = 0;
  28162. this.nextIndex = 0;
  28163. return;
  28164. }
  28165. this.sparse = sparse_;
  28166. this.dense = dense_;
  28167. this.size = size_;
  28168. this.nextIndex = nextIndex_;
  28169. });
  28170. runeSlice = $pkg.runeSlice = $newType(12, $kindSlice, "regexp.runeSlice", true, "regexp", false, null);
  28171. Regexp = $pkg.Regexp = $newType(0, $kindStruct, "regexp.Regexp", true, "regexp", true, function(expr_, prog_, onepass_, numSubexp_, maxBitStateLen_, subexpNames_, prefix_, prefixBytes_, prefixRune_, prefixEnd_, mpool_, matchcap_, prefixComplete_, cond_, longest_) {
  28172. this.$val = this;
  28173. if (arguments.length === 0) {
  28174. this.expr = "";
  28175. this.prog = ptrType$12.nil;
  28176. this.onepass = ptrType$6.nil;
  28177. this.numSubexp = 0;
  28178. this.maxBitStateLen = 0;
  28179. this.subexpNames = sliceType$9.nil;
  28180. this.prefix = "";
  28181. this.prefixBytes = sliceType$5.nil;
  28182. this.prefixRune = 0;
  28183. this.prefixEnd = 0;
  28184. this.mpool = 0;
  28185. this.matchcap = 0;
  28186. this.prefixComplete = false;
  28187. this.cond = 0;
  28188. this.longest = false;
  28189. return;
  28190. }
  28191. this.expr = expr_;
  28192. this.prog = prog_;
  28193. this.onepass = onepass_;
  28194. this.numSubexp = numSubexp_;
  28195. this.maxBitStateLen = maxBitStateLen_;
  28196. this.subexpNames = subexpNames_;
  28197. this.prefix = prefix_;
  28198. this.prefixBytes = prefixBytes_;
  28199. this.prefixRune = prefixRune_;
  28200. this.prefixEnd = prefixEnd_;
  28201. this.mpool = mpool_;
  28202. this.matchcap = matchcap_;
  28203. this.prefixComplete = prefixComplete_;
  28204. this.cond = cond_;
  28205. this.longest = longest_;
  28206. });
  28207. input = $pkg.input = $newType(8, $kindInterface, "regexp.input", true, "regexp", false, null);
  28208. inputString = $pkg.inputString = $newType(0, $kindStruct, "regexp.inputString", true, "regexp", false, function(str_) {
  28209. this.$val = this;
  28210. if (arguments.length === 0) {
  28211. this.str = "";
  28212. return;
  28213. }
  28214. this.str = str_;
  28215. });
  28216. inputBytes = $pkg.inputBytes = $newType(0, $kindStruct, "regexp.inputBytes", true, "regexp", false, function(str_) {
  28217. this.$val = this;
  28218. if (arguments.length === 0) {
  28219. this.str = sliceType$5.nil;
  28220. return;
  28221. }
  28222. this.str = str_;
  28223. });
  28224. inputReader = $pkg.inputReader = $newType(0, $kindStruct, "regexp.inputReader", true, "regexp", false, function(r_, atEOT_, pos_) {
  28225. this.$val = this;
  28226. if (arguments.length === 0) {
  28227. this.r = $ifaceNil;
  28228. this.atEOT = false;
  28229. this.pos = 0;
  28230. return;
  28231. }
  28232. this.r = r_;
  28233. this.atEOT = atEOT_;
  28234. this.pos = pos_;
  28235. });
  28236. sliceType = $sliceType($emptyInterface);
  28237. arrayType = $arrayType($Int, 0);
  28238. arrayType$1 = $arrayType(nosync.Pool, 5);
  28239. arrayType$2 = $arrayType($Uint8, 16);
  28240. sliceType$1 = $sliceType($Int32);
  28241. sliceType$2 = $sliceType($Uint32);
  28242. ptrType = $ptrType(bitState);
  28243. sliceType$3 = $sliceType($Int);
  28244. sliceType$4 = $sliceType(job);
  28245. sliceType$5 = $sliceType($Uint8);
  28246. ptrType$1 = $ptrType(thread);
  28247. ptrType$2 = $ptrType(syntax.Inst);
  28248. ptrType$3 = $ptrType(lazyFlag);
  28249. ptrType$4 = $ptrType($Int);
  28250. ptrType$5 = $ptrType(onePassMachine);
  28251. ptrType$6 = $ptrType(onePassProg);
  28252. ptrType$7 = $ptrType(strings.Builder);
  28253. ptrType$8 = $ptrType(queueOnePass);
  28254. sliceType$6 = $sliceType(onePassInst);
  28255. ptrType$9 = $ptrType($Uint32);
  28256. sliceType$7 = $sliceType(sliceType$1);
  28257. ptrType$10 = $ptrType(sliceType$1);
  28258. sliceType$8 = $sliceType($Bool);
  28259. ptrType$11 = $ptrType(Regexp);
  28260. ptrType$12 = $ptrType(syntax.Prog);
  28261. sliceType$9 = $sliceType($String);
  28262. ptrType$13 = $ptrType(machine);
  28263. sliceType$10 = $sliceType(entry);
  28264. sliceType$11 = $sliceType(ptrType$1);
  28265. arrayType$3 = $arrayType($Int, 2);
  28266. arrayType$4 = $arrayType($Int, 4);
  28267. sliceType$12 = $sliceType(sliceType$5);
  28268. sliceType$13 = $sliceType(sliceType$3);
  28269. sliceType$14 = $sliceType(sliceType$12);
  28270. sliceType$15 = $sliceType(sliceType$9);
  28271. ptrType$14 = $ptrType(queue);
  28272. ptrType$15 = $ptrType(inputs);
  28273. funcType = $funcType([$String], [$String], false);
  28274. funcType$1 = $funcType([sliceType$5, sliceType$3], [sliceType$5], false);
  28275. funcType$2 = $funcType([sliceType$5], [sliceType$5], false);
  28276. funcType$3 = $funcType([sliceType$3], [], false);
  28277. ptrType$16 = $ptrType(inputString);
  28278. ptrType$17 = $ptrType(inputBytes);
  28279. ptrType$18 = $ptrType(inputReader);
  28280. newBitState = function() {
  28281. var _r, _tuple, b, ok, $s, $r;
  28282. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; b = $f.b; ok = $f.ok; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  28283. _r = bitStatePool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  28284. _tuple = $assertType(_r, ptrType, true);
  28285. b = _tuple[0];
  28286. ok = _tuple[1];
  28287. if (!ok) {
  28288. b = new bitState.ptr(0, sliceType$3.nil, sliceType$3.nil, sliceType$4.nil, sliceType$2.nil, new inputs.ptr(new inputBytes.ptr(sliceType$5.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)));
  28289. }
  28290. $s = -1; return b;
  28291. /* */ } return; } if ($f === undefined) { $f = { $blk: newBitState }; } $f._r = _r; $f._tuple = _tuple; $f.b = b; $f.ok = ok; $f.$s = $s; $f.$r = $r; return $f;
  28292. };
  28293. freeBitState = function(b) {
  28294. var b;
  28295. b.inputs.clear();
  28296. bitStatePool.Put(b);
  28297. };
  28298. maxBitStateLen = function(prog) {
  28299. var _q, prog;
  28300. if (!shouldBacktrack(prog)) {
  28301. return 0;
  28302. }
  28303. return (_q = 262144 / prog.Inst.$length, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
  28304. };
  28305. shouldBacktrack = function(prog) {
  28306. var prog;
  28307. return prog.Inst.$length <= 500;
  28308. };
  28309. bitState.ptr.prototype.reset = function(prog, end, ncap) {
  28310. var _i, _i$1, _i$2, _q, _ref, _ref$1, _ref$2, b, end, i, i$1, i$2, ncap, prog, visitedSize, x, x$1, x$2;
  28311. b = this;
  28312. b.end = end;
  28313. if (b.jobs.$capacity === 0) {
  28314. b.jobs = $makeSlice(sliceType$4, 0, 256);
  28315. } else {
  28316. b.jobs = $subslice(b.jobs, 0, 0);
  28317. }
  28318. visitedSize = (_q = (((($imul(prog.Inst.$length, ((end + 1 >> 0)))) + 32 >> 0) - 1 >> 0)) / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
  28319. if (b.visited.$capacity < visitedSize) {
  28320. b.visited = $makeSlice(sliceType$2, visitedSize, 8192);
  28321. } else {
  28322. b.visited = $subslice(b.visited, 0, visitedSize);
  28323. _ref = b.visited;
  28324. _i = 0;
  28325. while (true) {
  28326. if (!(_i < _ref.$length)) { break; }
  28327. i = _i;
  28328. (x = b.visited, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = 0));
  28329. _i++;
  28330. }
  28331. }
  28332. if (b.cap.$capacity < ncap) {
  28333. b.cap = $makeSlice(sliceType$3, ncap);
  28334. } else {
  28335. b.cap = $subslice(b.cap, 0, ncap);
  28336. }
  28337. _ref$1 = b.cap;
  28338. _i$1 = 0;
  28339. while (true) {
  28340. if (!(_i$1 < _ref$1.$length)) { break; }
  28341. i$1 = _i$1;
  28342. (x$1 = b.cap, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1] = -1));
  28343. _i$1++;
  28344. }
  28345. if (b.matchcap.$capacity < ncap) {
  28346. b.matchcap = $makeSlice(sliceType$3, ncap);
  28347. } else {
  28348. b.matchcap = $subslice(b.matchcap, 0, ncap);
  28349. }
  28350. _ref$2 = b.matchcap;
  28351. _i$2 = 0;
  28352. while (true) {
  28353. if (!(_i$2 < _ref$2.$length)) { break; }
  28354. i$2 = _i$2;
  28355. (x$2 = b.matchcap, ((i$2 < 0 || i$2 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$2] = -1));
  28356. _i$2++;
  28357. }
  28358. };
  28359. bitState.prototype.reset = function(prog, end, ncap) { return this.$val.reset(prog, end, ncap); };
  28360. bitState.ptr.prototype.shouldVisit = function(pc, pos) {
  28361. var _index, _q, _q$1, b, n, pc, pos, x, x$1, x$2, x$3, y, y$1;
  28362. b = this;
  28363. n = (((($imul(((pc >> 0)), ((b.end + 1 >> 0)))) + pos >> 0) >>> 0));
  28364. if (!(((((x = b.visited, x$1 = (_q = n / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) & (((y = (((n & 31) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) {
  28365. return false;
  28366. }
  28367. _index = (_q$1 = n / 32, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero"));
  28368. (x$3 = b.visited, ((_index < 0 || _index >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + _index] = (((x$2 = b.visited, ((_index < 0 || _index >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + _index])) | (((y$1 = (((n & 31) >>> 0)), y$1 < 32 ? (1 << y$1) : 0) >>> 0))) >>> 0)));
  28369. return true;
  28370. };
  28371. bitState.prototype.shouldVisit = function(pc, pos) { return this.$val.shouldVisit(pc, pos); };
  28372. bitState.ptr.prototype.push = function(re, pc, pos, arg) {
  28373. var arg, b, pc, pos, re, x;
  28374. b = this;
  28375. if (!(((x = re.prog.Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])).Op === 5)) && (arg || b.shouldVisit(pc, pos))) {
  28376. b.jobs = $append(b.jobs, new job.ptr(pc, arg, pos));
  28377. }
  28378. };
  28379. bitState.prototype.push = function(re, pc, pos, arg) { return this.$val.push(re, pc, pos, arg); };
  28380. Regexp.ptr.prototype.tryBacktrack = function(b, i, pc, pos) {
  28381. var _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, _tuple$3, arg, b, flag, i, inst, l, longest, old, pc, pc$1, pos, pos$1, r, r$1, r$2, r$3, re, width, width$1, width$2, width$3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r;
  28382. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; arg = $f.arg; b = $f.b; flag = $f.flag; i = $f.i; inst = $f.inst; l = $f.l; longest = $f.longest; old = $f.old; pc = $f.pc; pc$1 = $f.pc$1; pos = $f.pos; pos$1 = $f.pos$1; r = $f.r; r$1 = $f.r$1; r$2 = $f.r$2; r$3 = $f.r$3; re = $f.re; width = $f.width; width$1 = $f.width$1; width$2 = $f.width$2; width$3 = $f.width$3; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$15 = $f.x$15; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  28383. re = this;
  28384. longest = re.longest;
  28385. b.push(re, pc, pos, false);
  28386. /* while (true) { */ case 1:
  28387. /* if (!(b.jobs.$length > 0)) { break; } */ if(!(b.jobs.$length > 0)) { $s = 2; continue; }
  28388. l = b.jobs.$length - 1 >> 0;
  28389. pc$1 = (x = b.jobs, ((l < 0 || l >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + l])).pc;
  28390. pos$1 = (x$1 = b.jobs, ((l < 0 || l >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + l])).pos;
  28391. arg = (x$2 = b.jobs, ((l < 0 || l >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + l])).arg;
  28392. b.jobs = $subslice(b.jobs, 0, l);
  28393. /* goto Skip */ $s = 3; continue;
  28394. /* CheckAndLoop: */ case 4:
  28395. if (!b.shouldVisit(pc$1, pos$1)) {
  28396. /* continue; */ $s = 1; continue;
  28397. }
  28398. /* Skip: */ case 3:
  28399. inst = $clone((x$3 = re.prog.Inst, ((pc$1 < 0 || pc$1 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc$1])), syntax.Inst);
  28400. _1 = inst.Op;
  28401. /* */ if (_1 === (5)) { $s = 6; continue; }
  28402. /* */ if (_1 === (0)) { $s = 7; continue; }
  28403. /* */ if (_1 === (1)) { $s = 8; continue; }
  28404. /* */ if (_1 === (7)) { $s = 9; continue; }
  28405. /* */ if (_1 === (8)) { $s = 10; continue; }
  28406. /* */ if (_1 === (10)) { $s = 11; continue; }
  28407. /* */ if (_1 === (9)) { $s = 12; continue; }
  28408. /* */ if (_1 === (2)) { $s = 13; continue; }
  28409. /* */ if (_1 === (3)) { $s = 14; continue; }
  28410. /* */ if (_1 === (6)) { $s = 15; continue; }
  28411. /* */ if (_1 === (4)) { $s = 16; continue; }
  28412. /* */ $s = 17; continue;
  28413. /* if (_1 === (5)) { */ case 6:
  28414. $panic(new $String("unexpected InstFail"));
  28415. $s = 18; continue;
  28416. /* } else if (_1 === (0)) { */ case 7:
  28417. /* */ if (arg) { $s = 19; continue; }
  28418. /* */ $s = 20; continue;
  28419. /* if (arg) { */ case 19:
  28420. arg = false;
  28421. pc$1 = inst.Arg;
  28422. /* goto CheckAndLoop */ $s = 4; continue;
  28423. $s = 21; continue;
  28424. /* } else { */ case 20:
  28425. b.push(re, pc$1, pos$1, true);
  28426. pc$1 = inst.Out;
  28427. /* goto CheckAndLoop */ $s = 4; continue;
  28428. /* } */ case 21:
  28429. $s = 18; continue;
  28430. /* } else if (_1 === (1)) { */ case 8:
  28431. _2 = (x$4 = re.prog.Inst, x$5 = inst.Out, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).Op;
  28432. /* */ if ((_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10))) { $s = 23; continue; }
  28433. /* */ $s = 24; continue;
  28434. /* if ((_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10))) { */ case 23:
  28435. b.push(re, inst.Arg, pos$1, false);
  28436. pc$1 = inst.Arg;
  28437. pos$1 = b.end;
  28438. /* goto CheckAndLoop */ $s = 4; continue;
  28439. /* } */ case 24:
  28440. case 22:
  28441. b.push(re, inst.Out, b.end, false);
  28442. pc$1 = inst.Out;
  28443. /* goto CheckAndLoop */ $s = 4; continue;
  28444. $s = 18; continue;
  28445. /* } else if (_1 === (7)) { */ case 9:
  28446. _r = i.step(pos$1); /* */ $s = 25; case 25: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  28447. _tuple = _r;
  28448. r = _tuple[0];
  28449. width = _tuple[1];
  28450. /* */ if (!inst.MatchRune(r)) { $s = 26; continue; }
  28451. /* */ $s = 27; continue;
  28452. /* if (!inst.MatchRune(r)) { */ case 26:
  28453. /* continue; */ $s = 1; continue;
  28454. /* } */ case 27:
  28455. pos$1 = pos$1 + (width) >> 0;
  28456. pc$1 = inst.Out;
  28457. /* goto CheckAndLoop */ $s = 4; continue;
  28458. $s = 18; continue;
  28459. /* } else if (_1 === (8)) { */ case 10:
  28460. _r$1 = i.step(pos$1); /* */ $s = 28; case 28: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  28461. _tuple$1 = _r$1;
  28462. r$1 = _tuple$1[0];
  28463. width$1 = _tuple$1[1];
  28464. /* */ if (!((r$1 === (x$6 = inst.Rune, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0]))))) { $s = 29; continue; }
  28465. /* */ $s = 30; continue;
  28466. /* if (!((r$1 === (x$6 = inst.Rune, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0]))))) { */ case 29:
  28467. /* continue; */ $s = 1; continue;
  28468. /* } */ case 30:
  28469. pos$1 = pos$1 + (width$1) >> 0;
  28470. pc$1 = inst.Out;
  28471. /* goto CheckAndLoop */ $s = 4; continue;
  28472. $s = 18; continue;
  28473. /* } else if (_1 === (10)) { */ case 11:
  28474. _r$2 = i.step(pos$1); /* */ $s = 31; case 31: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  28475. _tuple$2 = _r$2;
  28476. r$2 = _tuple$2[0];
  28477. width$2 = _tuple$2[1];
  28478. /* */ if ((r$2 === 10) || (r$2 === -1)) { $s = 32; continue; }
  28479. /* */ $s = 33; continue;
  28480. /* if ((r$2 === 10) || (r$2 === -1)) { */ case 32:
  28481. /* continue; */ $s = 1; continue;
  28482. /* } */ case 33:
  28483. pos$1 = pos$1 + (width$2) >> 0;
  28484. pc$1 = inst.Out;
  28485. /* goto CheckAndLoop */ $s = 4; continue;
  28486. $s = 18; continue;
  28487. /* } else if (_1 === (9)) { */ case 12:
  28488. _r$3 = i.step(pos$1); /* */ $s = 34; case 34: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  28489. _tuple$3 = _r$3;
  28490. r$3 = _tuple$3[0];
  28491. width$3 = _tuple$3[1];
  28492. /* */ if (r$3 === -1) { $s = 35; continue; }
  28493. /* */ $s = 36; continue;
  28494. /* if (r$3 === -1) { */ case 35:
  28495. /* continue; */ $s = 1; continue;
  28496. /* } */ case 36:
  28497. pos$1 = pos$1 + (width$3) >> 0;
  28498. pc$1 = inst.Out;
  28499. /* goto CheckAndLoop */ $s = 4; continue;
  28500. $s = 18; continue;
  28501. /* } else if (_1 === (2)) { */ case 13:
  28502. /* */ if (arg) { $s = 37; continue; }
  28503. /* */ $s = 38; continue;
  28504. /* if (arg) { */ case 37:
  28505. (x$7 = b.cap, x$8 = inst.Arg, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8] = pos$1));
  28506. /* continue; */ $s = 1; continue;
  28507. $s = 39; continue;
  28508. /* } else { */ case 38:
  28509. if (0 <= inst.Arg && inst.Arg < ((b.cap.$length >>> 0))) {
  28510. b.push(re, pc$1, (x$9 = b.cap, x$10 = inst.Arg, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10])), true);
  28511. (x$11 = b.cap, x$12 = inst.Arg, ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12] = pos$1));
  28512. }
  28513. pc$1 = inst.Out;
  28514. /* goto CheckAndLoop */ $s = 4; continue;
  28515. /* } */ case 39:
  28516. $s = 18; continue;
  28517. /* } else if (_1 === (3)) { */ case 14:
  28518. _r$4 = i.context(pos$1); /* */ $s = 40; case 40: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  28519. flag = _r$4;
  28520. /* */ if (!flag.match(((inst.Arg << 24 >>> 24)))) { $s = 41; continue; }
  28521. /* */ $s = 42; continue;
  28522. /* if (!flag.match(((inst.Arg << 24 >>> 24)))) { */ case 41:
  28523. /* continue; */ $s = 1; continue;
  28524. /* } */ case 42:
  28525. pc$1 = inst.Out;
  28526. /* goto CheckAndLoop */ $s = 4; continue;
  28527. $s = 18; continue;
  28528. /* } else if (_1 === (6)) { */ case 15:
  28529. pc$1 = inst.Out;
  28530. /* goto CheckAndLoop */ $s = 4; continue;
  28531. $s = 18; continue;
  28532. /* } else if (_1 === (4)) { */ case 16:
  28533. if (b.cap.$length === 0) {
  28534. $s = -1; return true;
  28535. }
  28536. if (b.cap.$length > 1) {
  28537. (x$13 = b.cap, (1 >= x$13.$length ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + 1] = pos$1));
  28538. }
  28539. old = (x$14 = b.matchcap, (1 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 1]));
  28540. if ((old === -1) || (longest && pos$1 > 0 && pos$1 > old)) {
  28541. $copySlice(b.matchcap, b.cap);
  28542. }
  28543. if (!longest) {
  28544. $s = -1; return true;
  28545. }
  28546. if (pos$1 === b.end) {
  28547. $s = -1; return true;
  28548. }
  28549. /* continue; */ $s = 1; continue;
  28550. $s = 18; continue;
  28551. /* } else { */ case 17:
  28552. $panic(new $String("bad inst"));
  28553. /* } */ case 18:
  28554. case 5:
  28555. /* } */ $s = 1; continue; case 2:
  28556. $s = -1; return longest && b.matchcap.$length > 1 && (x$15 = b.matchcap, (1 >= x$15.$length ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + 1])) >= 0;
  28557. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.tryBacktrack }; } $f._1 = _1; $f._2 = _2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.arg = arg; $f.b = b; $f.flag = flag; $f.i = i; $f.inst = inst; $f.l = l; $f.longest = longest; $f.old = old; $f.pc = pc; $f.pc$1 = pc$1; $f.pos = pos; $f.pos$1 = pos$1; $f.r = r; $f.r$1 = r$1; $f.r$2 = r$2; $f.r$3 = r$3; $f.re = re; $f.width = width; $f.width$1 = width$1; $f.width$2 = width$2; $f.width$3 = width$3; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$15 = x$15; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.$s = $s; $f.$r = $r; return $f;
  28558. };
  28559. Regexp.prototype.tryBacktrack = function(b, i, pc, pos) { return this.$val.tryBacktrack(b, i, pc, pos); };
  28560. Regexp.ptr.prototype.backtrack = function(ib, is, pos, ncap, dstCap) {
  28561. var _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, advance, b, dstCap, end, i, ib, is, ncap, pos, re, startCond, width, x, x$1, $s, $r;
  28562. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; advance = $f.advance; b = $f.b; dstCap = $f.dstCap; end = $f.end; i = $f.i; ib = $f.ib; is = $f.is; ncap = $f.ncap; pos = $f.pos; re = $f.re; startCond = $f.startCond; width = $f.width; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  28563. re = this;
  28564. startCond = re.cond;
  28565. if (startCond === 255) {
  28566. $s = -1; return sliceType$3.nil;
  28567. }
  28568. if (!((((startCond & 4) >>> 0) === 0)) && !((pos === 0))) {
  28569. $s = -1; return sliceType$3.nil;
  28570. }
  28571. _r = newBitState(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  28572. b = _r;
  28573. _tuple = b.inputs.init($ifaceNil, ib, is);
  28574. i = _tuple[0];
  28575. end = _tuple[1];
  28576. b.reset(re.prog, end, ncap);
  28577. /* */ if (!((((startCond & 4) >>> 0) === 0))) { $s = 2; continue; }
  28578. /* */ $s = 3; continue;
  28579. /* if (!((((startCond & 4) >>> 0) === 0))) { */ case 2:
  28580. if (b.cap.$length > 0) {
  28581. (x = b.cap, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0] = pos));
  28582. }
  28583. _r$1 = re.tryBacktrack(b, i, ((re.prog.Start >>> 0)), pos); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  28584. /* */ if (!_r$1) { $s = 5; continue; }
  28585. /* */ $s = 6; continue;
  28586. /* if (!_r$1) { */ case 5:
  28587. freeBitState(b);
  28588. $s = -1; return sliceType$3.nil;
  28589. /* } */ case 6:
  28590. $s = 4; continue;
  28591. /* } else { */ case 3:
  28592. width = -1;
  28593. /* while (true) { */ case 8:
  28594. /* if (!(pos <= end && !((width === 0)))) { break; } */ if(!(pos <= end && !((width === 0)))) { $s = 9; continue; }
  28595. /* */ if (re.prefix.length > 0) { $s = 10; continue; }
  28596. /* */ $s = 11; continue;
  28597. /* if (re.prefix.length > 0) { */ case 10:
  28598. _r$2 = i.index(re, pos); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  28599. advance = _r$2;
  28600. if (advance < 0) {
  28601. freeBitState(b);
  28602. $s = -1; return sliceType$3.nil;
  28603. }
  28604. pos = pos + (advance) >> 0;
  28605. /* } */ case 11:
  28606. if (b.cap.$length > 0) {
  28607. (x$1 = b.cap, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = pos));
  28608. }
  28609. _r$3 = re.tryBacktrack(b, i, ((re.prog.Start >>> 0)), pos); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  28610. /* */ if (_r$3) { $s = 13; continue; }
  28611. /* */ $s = 14; continue;
  28612. /* if (_r$3) { */ case 13:
  28613. /* goto Match */ $s = 16; continue;
  28614. /* } */ case 14:
  28615. _r$4 = i.step(pos); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  28616. _tuple$1 = _r$4;
  28617. width = _tuple$1[1];
  28618. pos = pos + (width) >> 0;
  28619. /* } */ $s = 8; continue; case 9:
  28620. freeBitState(b);
  28621. $s = -1; return sliceType$3.nil;
  28622. /* } */ case 4:
  28623. /* Match: */ case 16:
  28624. dstCap = $appendSlice(dstCap, b.matchcap);
  28625. freeBitState(b);
  28626. $s = -1; return dstCap;
  28627. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.backtrack }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.advance = advance; $f.b = b; $f.dstCap = dstCap; $f.end = end; $f.i = i; $f.ib = ib; $f.is = is; $f.ncap = ncap; $f.pos = pos; $f.re = re; $f.startCond = startCond; $f.width = width; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f;
  28628. };
  28629. Regexp.prototype.backtrack = function(ib, is, pos, ncap, dstCap) { return this.$val.backtrack(ib, is, pos, ncap, dstCap); };
  28630. inputs.ptr.prototype.newBytes = function(b) {
  28631. var b, i;
  28632. i = this;
  28633. i.bytes.str = b;
  28634. return i.bytes;
  28635. };
  28636. inputs.prototype.newBytes = function(b) { return this.$val.newBytes(b); };
  28637. inputs.ptr.prototype.newString = function(s) {
  28638. var i, s;
  28639. i = this;
  28640. i.string.str = s;
  28641. return i.string;
  28642. };
  28643. inputs.prototype.newString = function(s) { return this.$val.newString(s); };
  28644. inputs.ptr.prototype.newReader = function(r) {
  28645. var i, r;
  28646. i = this;
  28647. i.reader.r = r;
  28648. i.reader.atEOT = false;
  28649. i.reader.pos = 0;
  28650. return i.reader;
  28651. };
  28652. inputs.prototype.newReader = function(r) { return this.$val.newReader(r); };
  28653. inputs.ptr.prototype.clear = function() {
  28654. var i;
  28655. i = this;
  28656. if (!(i.bytes.str === sliceType$5.nil)) {
  28657. i.bytes.str = sliceType$5.nil;
  28658. } else if (!($interfaceIsEqual(i.reader.r, $ifaceNil))) {
  28659. i.reader.r = $ifaceNil;
  28660. } else {
  28661. i.string.str = "";
  28662. }
  28663. };
  28664. inputs.prototype.clear = function() { return this.$val.clear(); };
  28665. inputs.ptr.prototype.init = function(r, b, s) {
  28666. var b, i, r, s;
  28667. i = this;
  28668. if (!($interfaceIsEqual(r, $ifaceNil))) {
  28669. return [i.newReader(r), 0];
  28670. }
  28671. if (!(b === sliceType$5.nil)) {
  28672. return [i.newBytes(b), b.$length];
  28673. }
  28674. return [i.newString(s), s.length];
  28675. };
  28676. inputs.prototype.init = function(r, b, s) { return this.$val.init(r, b, s); };
  28677. machine.ptr.prototype.init = function(ncap) {
  28678. var _i, _ref, m, ncap, t;
  28679. m = this;
  28680. _ref = m.pool;
  28681. _i = 0;
  28682. while (true) {
  28683. if (!(_i < _ref.$length)) { break; }
  28684. t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  28685. t.cap = $subslice(t.cap, 0, ncap);
  28686. _i++;
  28687. }
  28688. m.matchcap = $subslice(m.matchcap, 0, ncap);
  28689. };
  28690. machine.prototype.init = function(ncap) { return this.$val.init(ncap); };
  28691. machine.ptr.prototype.alloc = function(i) {
  28692. var i, m, n, t, x, x$1;
  28693. m = this;
  28694. t = ptrType$1.nil;
  28695. n = m.pool.$length;
  28696. if (n > 0) {
  28697. t = (x = m.pool, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]));
  28698. m.pool = $subslice(m.pool, 0, (n - 1 >> 0));
  28699. } else {
  28700. t = new thread.ptr(ptrType$2.nil, sliceType$3.nil);
  28701. t.cap = $makeSlice(sliceType$3, m.matchcap.$length, m.matchcap.$capacity);
  28702. }
  28703. t.inst = i;
  28704. return t;
  28705. };
  28706. machine.prototype.alloc = function(i) { return this.$val.alloc(i); };
  28707. newLazyFlag = function(r1, r2) {
  28708. var r1, r2, x, x$1, x$2;
  28709. return ((x = (x$1 = $shiftLeft64((new $Uint64(0, r1)), 32), x$2 = (new $Uint64(0, ((r2 >>> 0)))), new $Uint64(x$1.$high | x$2.$high, (x$1.$low | x$2.$low) >>> 0)), new lazyFlag(x.$high, x.$low)));
  28710. };
  28711. lazyFlag.prototype.match = function(op) {
  28712. var f, op, r1, r2;
  28713. f = this;
  28714. if (op === 0) {
  28715. return true;
  28716. }
  28717. r1 = (($shiftRightUint64(f, 32).$low >> 0));
  28718. if (!((((op & 1) >>> 0) === 0))) {
  28719. if (!((r1 === 10)) && r1 >= 0) {
  28720. return false;
  28721. }
  28722. op = (op & ~(1)) << 24 >>> 24;
  28723. }
  28724. if (!((((op & 4) >>> 0) === 0))) {
  28725. if (r1 >= 0) {
  28726. return false;
  28727. }
  28728. op = (op & ~(4)) << 24 >>> 24;
  28729. }
  28730. if (op === 0) {
  28731. return true;
  28732. }
  28733. r2 = ((f.$low >> 0));
  28734. if (!((((op & 2) >>> 0) === 0))) {
  28735. if (!((r2 === 10)) && r2 >= 0) {
  28736. return false;
  28737. }
  28738. op = (op & ~(2)) << 24 >>> 24;
  28739. }
  28740. if (!((((op & 8) >>> 0) === 0))) {
  28741. if (r2 >= 0) {
  28742. return false;
  28743. }
  28744. op = (op & ~(8)) << 24 >>> 24;
  28745. }
  28746. if (op === 0) {
  28747. return true;
  28748. }
  28749. if (!(syntax.IsWordChar(r1) === syntax.IsWordChar(r2))) {
  28750. op = (op & ~(16)) << 24 >>> 24;
  28751. } else {
  28752. op = (op & ~(32)) << 24 >>> 24;
  28753. }
  28754. return op === 0;
  28755. };
  28756. $ptrType(lazyFlag).prototype.match = function(op) { return this.$get().match(op); };
  28757. machine.ptr.prototype.match = function(i, pos) {
  28758. var _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, advance, flag, i, i$1, m, nextq, pos, r, r1, runq, startCond, width, width1, x, x$1, $s, $r;
  28759. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _v = $f._v; advance = $f.advance; flag = $f.flag; i = $f.i; i$1 = $f.i$1; m = $f.m; nextq = $f.nextq; pos = $f.pos; r = $f.r; r1 = $f.r1; runq = $f.runq; startCond = $f.startCond; width = $f.width; width1 = $f.width1; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  28760. flag = [flag];
  28761. m = this;
  28762. startCond = m.re.cond;
  28763. if (startCond === 255) {
  28764. $s = -1; return false;
  28765. }
  28766. m.matched = false;
  28767. _ref = m.matchcap;
  28768. _i = 0;
  28769. while (true) {
  28770. if (!(_i < _ref.$length)) { break; }
  28771. i$1 = _i;
  28772. (x = m.matchcap, ((i$1 < 0 || i$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$1] = -1));
  28773. _i++;
  28774. }
  28775. _tmp = m.q0;
  28776. _tmp$1 = m.q1;
  28777. runq = _tmp;
  28778. nextq = _tmp$1;
  28779. _tmp$2 = -1;
  28780. _tmp$3 = -1;
  28781. r = _tmp$2;
  28782. r1 = _tmp$3;
  28783. _tmp$4 = 0;
  28784. _tmp$5 = 0;
  28785. width = _tmp$4;
  28786. width1 = _tmp$5;
  28787. _r = i.step(pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  28788. _tuple = _r;
  28789. r = _tuple[0];
  28790. width = _tuple[1];
  28791. /* */ if (!((r === -1))) { $s = 2; continue; }
  28792. /* */ $s = 3; continue;
  28793. /* if (!((r === -1))) { */ case 2:
  28794. _r$1 = i.step(pos + width >> 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  28795. _tuple$1 = _r$1;
  28796. r1 = _tuple$1[0];
  28797. width1 = _tuple$1[1];
  28798. /* } */ case 3:
  28799. flag[0] = new lazyFlag(0, 0);
  28800. /* */ if (pos === 0) { $s = 5; continue; }
  28801. /* */ $s = 6; continue;
  28802. /* if (pos === 0) { */ case 5:
  28803. flag[0] = newLazyFlag(-1, r);
  28804. $s = 7; continue;
  28805. /* } else { */ case 6:
  28806. _r$2 = i.context(pos); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  28807. flag[0] = _r$2;
  28808. /* } */ case 7:
  28809. /* while (true) { */ case 9:
  28810. /* */ if (runq.dense.$length === 0) { $s = 11; continue; }
  28811. /* */ $s = 12; continue;
  28812. /* if (runq.dense.$length === 0) { */ case 11:
  28813. if (!((((startCond & 4) >>> 0) === 0)) && !((pos === 0))) {
  28814. /* break; */ $s = 10; continue;
  28815. }
  28816. if (m.matched) {
  28817. /* break; */ $s = 10; continue;
  28818. }
  28819. if (!(m.re.prefix.length > 0 && !((r1 === m.re.prefixRune)))) { _v = false; $s = 15; continue s; }
  28820. _r$3 = i.canCheckPrefix(); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  28821. _v = _r$3; case 15:
  28822. /* */ if (_v) { $s = 13; continue; }
  28823. /* */ $s = 14; continue;
  28824. /* if (_v) { */ case 13:
  28825. _r$4 = i.index(m.re, pos); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  28826. advance = _r$4;
  28827. if (advance < 0) {
  28828. /* break; */ $s = 10; continue;
  28829. }
  28830. pos = pos + (advance) >> 0;
  28831. _r$5 = i.step(pos); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  28832. _tuple$2 = _r$5;
  28833. r = _tuple$2[0];
  28834. width = _tuple$2[1];
  28835. _r$6 = i.step(pos + width >> 0); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  28836. _tuple$3 = _r$6;
  28837. r1 = _tuple$3[0];
  28838. width1 = _tuple$3[1];
  28839. /* } */ case 14:
  28840. /* } */ case 12:
  28841. if (!m.matched) {
  28842. if (m.matchcap.$length > 0) {
  28843. (x$1 = m.matchcap, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = pos));
  28844. }
  28845. m.add(runq, ((m.p.Start >>> 0)), pos, m.matchcap, (flag.$ptr || (flag.$ptr = new ptrType$3(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, flag))), ptrType$1.nil);
  28846. }
  28847. flag[0] = newLazyFlag(r, r1);
  28848. m.step(runq, nextq, pos, pos + width >> 0, r, (flag.$ptr || (flag.$ptr = new ptrType$3(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, flag))));
  28849. if (width === 0) {
  28850. /* break; */ $s = 10; continue;
  28851. }
  28852. if ((m.matchcap.$length === 0) && m.matched) {
  28853. /* break; */ $s = 10; continue;
  28854. }
  28855. pos = pos + (width) >> 0;
  28856. _tmp$6 = r1;
  28857. _tmp$7 = width1;
  28858. r = _tmp$6;
  28859. width = _tmp$7;
  28860. /* */ if (!((r === -1))) { $s = 20; continue; }
  28861. /* */ $s = 21; continue;
  28862. /* if (!((r === -1))) { */ case 20:
  28863. _r$7 = i.step(pos + width >> 0); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
  28864. _tuple$4 = _r$7;
  28865. r1 = _tuple$4[0];
  28866. width1 = _tuple$4[1];
  28867. /* } */ case 21:
  28868. _tmp$8 = nextq;
  28869. _tmp$9 = runq;
  28870. runq = _tmp$8;
  28871. nextq = _tmp$9;
  28872. /* } */ $s = 9; continue; case 10:
  28873. m.clear(nextq);
  28874. $s = -1; return m.matched;
  28875. /* */ } return; } if ($f === undefined) { $f = { $blk: machine.ptr.prototype.match }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._v = _v; $f.advance = advance; $f.flag = flag; $f.i = i; $f.i$1 = i$1; $f.m = m; $f.nextq = nextq; $f.pos = pos; $f.r = r; $f.r1 = r1; $f.runq = runq; $f.startCond = startCond; $f.width = width; $f.width1 = width1; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f;
  28876. };
  28877. machine.prototype.match = function(i, pos) { return this.$val.match(i, pos); };
  28878. machine.ptr.prototype.clear = function(q) {
  28879. var _i, _ref, d, m, q;
  28880. m = this;
  28881. _ref = q.dense;
  28882. _i = 0;
  28883. while (true) {
  28884. if (!(_i < _ref.$length)) { break; }
  28885. d = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), entry);
  28886. if (!(d.t === ptrType$1.nil)) {
  28887. m.pool = $append(m.pool, d.t);
  28888. }
  28889. _i++;
  28890. }
  28891. q.dense = $subslice(q.dense, 0, 0);
  28892. };
  28893. machine.prototype.clear = function(q) { return this.$val.clear(q); };
  28894. machine.ptr.prototype.step = function(runq, nextq, pos, nextPos, c, nextCond) {
  28895. var _1, _i, _ref, add, c, d, d$1, i, j, longest, m, nextCond, nextPos, nextq, pos, runq, t, x, x$1, x$2, x$3, x$4, x$5;
  28896. m = this;
  28897. longest = m.re.longest;
  28898. j = 0;
  28899. while (true) {
  28900. if (!(j < runq.dense.$length)) { break; }
  28901. d = (x = runq.dense, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j]));
  28902. t = d.t;
  28903. if (t === ptrType$1.nil) {
  28904. j = j + (1) >> 0;
  28905. continue;
  28906. }
  28907. if (longest && m.matched && t.cap.$length > 0 && (x$1 = m.matchcap, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) < (x$2 = t.cap, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))) {
  28908. m.pool = $append(m.pool, t);
  28909. j = j + (1) >> 0;
  28910. continue;
  28911. }
  28912. i = t.inst;
  28913. add = false;
  28914. _1 = i.Op;
  28915. if (_1 === (4)) {
  28916. if (t.cap.$length > 0 && (!longest || !m.matched || (x$3 = m.matchcap, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1])) < pos)) {
  28917. (x$4 = t.cap, (1 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 1] = pos));
  28918. $copySlice(m.matchcap, t.cap);
  28919. }
  28920. if (!longest) {
  28921. _ref = $subslice(runq.dense, (j + 1 >> 0));
  28922. _i = 0;
  28923. while (true) {
  28924. if (!(_i < _ref.$length)) { break; }
  28925. d$1 = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), entry);
  28926. if (!(d$1.t === ptrType$1.nil)) {
  28927. m.pool = $append(m.pool, d$1.t);
  28928. }
  28929. _i++;
  28930. }
  28931. runq.dense = $subslice(runq.dense, 0, 0);
  28932. }
  28933. m.matched = true;
  28934. } else if (_1 === (7)) {
  28935. add = i.MatchRune(c);
  28936. } else if (_1 === (8)) {
  28937. add = c === (x$5 = i.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]));
  28938. } else if (_1 === (9)) {
  28939. add = true;
  28940. } else if (_1 === (10)) {
  28941. add = !((c === 10));
  28942. } else {
  28943. $panic(new $String("bad inst"));
  28944. }
  28945. if (add) {
  28946. t = m.add(nextq, i.Out, nextPos, t.cap, nextCond, t);
  28947. }
  28948. if (!(t === ptrType$1.nil)) {
  28949. m.pool = $append(m.pool, t);
  28950. }
  28951. j = j + (1) >> 0;
  28952. }
  28953. runq.dense = $subslice(runq.dense, 0, 0);
  28954. };
  28955. machine.prototype.step = function(runq, nextq, pos, nextPos, c, nextCond) { return this.$val.step(runq, nextq, pos, nextPos, c, nextCond); };
  28956. machine.ptr.prototype.add = function(q, pc, pos, cap, cond, t) {
  28957. var _1, cap, cond, d, i, j, j$1, m, opos, pc, pos, q, t, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s;
  28958. /* */ $s = 0; s: while (true) { switch ($s) { case 0:
  28959. m = this;
  28960. /* Again: */ case 1:
  28961. if (pc === 0) {
  28962. $s = -1; return t;
  28963. }
  28964. j = (x = q.sparse, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc]));
  28965. if (j < ((q.dense.$length >>> 0)) && ((x$1 = q.dense, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])).pc === pc)) {
  28966. $s = -1; return t;
  28967. }
  28968. j$1 = q.dense.$length;
  28969. q.dense = $subslice(q.dense, 0, (j$1 + 1 >> 0));
  28970. d = (x$2 = q.dense, ((j$1 < 0 || j$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + j$1]));
  28971. d.t = ptrType$1.nil;
  28972. d.pc = pc;
  28973. (x$3 = q.sparse, ((pc < 0 || pc >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc] = ((j$1 >>> 0))));
  28974. i = (x$4 = m.p.Inst, ((pc < 0 || pc >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + pc]));
  28975. _1 = i.Op;
  28976. /* */ if (_1 === (5)) { $s = 3; continue; }
  28977. /* */ if ((_1 === (0)) || (_1 === (1))) { $s = 4; continue; }
  28978. /* */ if (_1 === (3)) { $s = 5; continue; }
  28979. /* */ if (_1 === (6)) { $s = 6; continue; }
  28980. /* */ if (_1 === (2)) { $s = 7; continue; }
  28981. /* */ if ((_1 === (4)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10))) { $s = 8; continue; }
  28982. /* */ $s = 9; continue;
  28983. /* if (_1 === (5)) { */ case 3:
  28984. $s = 10; continue;
  28985. /* } else if ((_1 === (0)) || (_1 === (1))) { */ case 4:
  28986. t = m.add(q, i.Out, pos, cap, cond, t);
  28987. pc = i.Arg;
  28988. /* goto Again */ $s = 1; continue;
  28989. $s = 10; continue;
  28990. /* } else if (_1 === (3)) { */ case 5:
  28991. /* */ if (cond.match(((i.Arg << 24 >>> 24)))) { $s = 11; continue; }
  28992. /* */ $s = 12; continue;
  28993. /* if (cond.match(((i.Arg << 24 >>> 24)))) { */ case 11:
  28994. pc = i.Out;
  28995. /* goto Again */ $s = 1; continue;
  28996. /* } */ case 12:
  28997. $s = 10; continue;
  28998. /* } else if (_1 === (6)) { */ case 6:
  28999. pc = i.Out;
  29000. /* goto Again */ $s = 1; continue;
  29001. $s = 10; continue;
  29002. /* } else if (_1 === (2)) { */ case 7:
  29003. /* */ if (((i.Arg >> 0)) < cap.$length) { $s = 13; continue; }
  29004. /* */ $s = 14; continue;
  29005. /* if (((i.Arg >> 0)) < cap.$length) { */ case 13:
  29006. opos = (x$5 = i.Arg, ((x$5 < 0 || x$5 >= cap.$length) ? ($throwRuntimeError("index out of range"), undefined) : cap.$array[cap.$offset + x$5]));
  29007. (x$6 = i.Arg, ((x$6 < 0 || x$6 >= cap.$length) ? ($throwRuntimeError("index out of range"), undefined) : cap.$array[cap.$offset + x$6] = pos));
  29008. m.add(q, i.Out, pos, cap, cond, ptrType$1.nil);
  29009. (x$7 = i.Arg, ((x$7 < 0 || x$7 >= cap.$length) ? ($throwRuntimeError("index out of range"), undefined) : cap.$array[cap.$offset + x$7] = opos));
  29010. $s = 15; continue;
  29011. /* } else { */ case 14:
  29012. pc = i.Out;
  29013. /* goto Again */ $s = 1; continue;
  29014. /* } */ case 15:
  29015. $s = 10; continue;
  29016. /* } else if ((_1 === (4)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10))) { */ case 8:
  29017. if (t === ptrType$1.nil) {
  29018. t = m.alloc(i);
  29019. } else {
  29020. t.inst = i;
  29021. }
  29022. if (cap.$length > 0 && !((x$8 = t.cap, $indexPtr(x$8.$array, x$8.$offset + 0, ptrType$4)) === $indexPtr(cap.$array, cap.$offset + 0, ptrType$4))) {
  29023. $copySlice(t.cap, cap);
  29024. }
  29025. d.t = t;
  29026. t = ptrType$1.nil;
  29027. $s = 10; continue;
  29028. /* } else { */ case 9:
  29029. $panic(new $String("unhandled"));
  29030. /* } */ case 10:
  29031. case 2:
  29032. $s = -1; return t;
  29033. /* */ } return; }
  29034. };
  29035. machine.prototype.add = function(q, pc, pos, cap, cond, t) { return this.$val.add(q, pc, pos, cap, cond, t); };
  29036. newOnePassMachine = function() {
  29037. var _r, _tuple, m, ok, $s, $r;
  29038. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; m = $f.m; ok = $f.ok; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  29039. _r = onePassPool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  29040. _tuple = $assertType(_r, ptrType$5, true);
  29041. m = _tuple[0];
  29042. ok = _tuple[1];
  29043. if (!ok) {
  29044. m = new onePassMachine.ptr(new inputs.ptr(new inputBytes.ptr(sliceType$5.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)), sliceType$3.nil);
  29045. }
  29046. $s = -1; return m;
  29047. /* */ } return; } if ($f === undefined) { $f = { $blk: newOnePassMachine }; } $f._r = _r; $f._tuple = _tuple; $f.m = m; $f.ok = ok; $f.$s = $s; $f.$r = $r; return $f;
  29048. };
  29049. freeOnePassMachine = function(m) {
  29050. var m;
  29051. m.inputs.clear();
  29052. onePassPool.Put(m);
  29053. };
  29054. Regexp.ptr.prototype.doOnePass = function(ir, ib, is, pos, ncap, dstCap) {
  29055. var _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _v, dstCap, flag, i, i$1, ib, inst, ir, is, m, matched, ncap, pc, pos, r, r1, re, startCond, width, width1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r;
  29056. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _v = $f._v; dstCap = $f.dstCap; flag = $f.flag; i = $f.i; i$1 = $f.i$1; ib = $f.ib; inst = $f.inst; ir = $f.ir; is = $f.is; m = $f.m; matched = $f.matched; ncap = $f.ncap; pc = $f.pc; pos = $f.pos; r = $f.r; r1 = $f.r1; re = $f.re; startCond = $f.startCond; width = $f.width; width1 = $f.width1; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  29057. inst = [inst];
  29058. re = this;
  29059. startCond = re.cond;
  29060. if (startCond === 255) {
  29061. $s = -1; return sliceType$3.nil;
  29062. }
  29063. _r = newOnePassMachine(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  29064. m = _r;
  29065. if (m.matchcap.$capacity < ncap) {
  29066. m.matchcap = $makeSlice(sliceType$3, ncap);
  29067. } else {
  29068. m.matchcap = $subslice(m.matchcap, 0, ncap);
  29069. }
  29070. matched = false;
  29071. _ref = m.matchcap;
  29072. _i = 0;
  29073. while (true) {
  29074. if (!(_i < _ref.$length)) { break; }
  29075. i = _i;
  29076. (x = m.matchcap, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = -1));
  29077. _i++;
  29078. }
  29079. _tuple = m.inputs.init(ir, ib, is);
  29080. i$1 = _tuple[0];
  29081. _tmp = -1;
  29082. _tmp$1 = -1;
  29083. r = _tmp;
  29084. r1 = _tmp$1;
  29085. _tmp$2 = 0;
  29086. _tmp$3 = 0;
  29087. width = _tmp$2;
  29088. width1 = _tmp$3;
  29089. _r$1 = i$1.step(pos); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  29090. _tuple$1 = _r$1;
  29091. r = _tuple$1[0];
  29092. width = _tuple$1[1];
  29093. /* */ if (!((r === -1))) { $s = 3; continue; }
  29094. /* */ $s = 4; continue;
  29095. /* if (!((r === -1))) { */ case 3:
  29096. _r$2 = i$1.step(pos + width >> 0); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  29097. _tuple$2 = _r$2;
  29098. r1 = _tuple$2[0];
  29099. width1 = _tuple$2[1];
  29100. /* } */ case 4:
  29101. flag = new lazyFlag(0, 0);
  29102. /* */ if (pos === 0) { $s = 6; continue; }
  29103. /* */ $s = 7; continue;
  29104. /* if (pos === 0) { */ case 6:
  29105. flag = newLazyFlag(-1, r);
  29106. $s = 8; continue;
  29107. /* } else { */ case 7:
  29108. _r$3 = i$1.context(pos); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  29109. flag = _r$3;
  29110. /* } */ case 8:
  29111. pc = re.onepass.Start;
  29112. inst[0] = $clone((x$1 = re.onepass.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pc])), onePassInst);
  29113. if (!((pos === 0) && flag.match(((inst[0].Inst.Arg << 24 >>> 24))) && re.prefix.length > 0)) { _v = false; $s = 12; continue s; }
  29114. _r$4 = i$1.canCheckPrefix(); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  29115. _v = _r$4; case 12:
  29116. /* */ if (_v) { $s = 10; continue; }
  29117. /* */ $s = 11; continue;
  29118. /* if (_v) { */ case 10:
  29119. _r$5 = i$1.hasPrefix(re); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  29120. /* */ if (!_r$5) { $s = 14; continue; }
  29121. /* */ $s = 15; continue;
  29122. /* if (!_r$5) { */ case 14:
  29123. /* goto Return */ $s = 17; continue;
  29124. /* } */ case 15:
  29125. pos = pos + (re.prefix.length) >> 0;
  29126. _r$6 = i$1.step(pos); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  29127. _tuple$3 = _r$6;
  29128. r = _tuple$3[0];
  29129. width = _tuple$3[1];
  29130. _r$7 = i$1.step(pos + width >> 0); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
  29131. _tuple$4 = _r$7;
  29132. r1 = _tuple$4[0];
  29133. width1 = _tuple$4[1];
  29134. _r$8 = i$1.context(pos); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
  29135. flag = _r$8;
  29136. pc = ((re.prefixEnd >> 0));
  29137. /* } */ case 11:
  29138. /* while (true) { */ case 21:
  29139. onePassInst.copy(inst[0], (x$2 = re.onepass.Inst, ((pc < 0 || pc >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + pc])));
  29140. pc = ((inst[0].Inst.Out >> 0));
  29141. _1 = inst[0].Inst.Op;
  29142. /* */ if (_1 === (4)) { $s = 24; continue; }
  29143. /* */ if (_1 === (7)) { $s = 25; continue; }
  29144. /* */ if (_1 === (8)) { $s = 26; continue; }
  29145. /* */ if (_1 === (9)) { $s = 27; continue; }
  29146. /* */ if (_1 === (10)) { $s = 28; continue; }
  29147. /* */ if ((_1 === (0)) || (_1 === (1))) { $s = 29; continue; }
  29148. /* */ if (_1 === (5)) { $s = 30; continue; }
  29149. /* */ if (_1 === (6)) { $s = 31; continue; }
  29150. /* */ if (_1 === (3)) { $s = 32; continue; }
  29151. /* */ if (_1 === (2)) { $s = 33; continue; }
  29152. /* */ $s = 34; continue;
  29153. /* if (_1 === (4)) { */ case 24:
  29154. matched = true;
  29155. if (m.matchcap.$length > 0) {
  29156. (x$3 = m.matchcap, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0] = 0));
  29157. (x$4 = m.matchcap, (1 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 1] = pos));
  29158. }
  29159. /* goto Return */ $s = 17; continue;
  29160. $s = 35; continue;
  29161. /* } else if (_1 === (7)) { */ case 25:
  29162. /* */ if (!inst[0].Inst.MatchRune(r)) { $s = 36; continue; }
  29163. /* */ $s = 37; continue;
  29164. /* if (!inst[0].Inst.MatchRune(r)) { */ case 36:
  29165. /* goto Return */ $s = 17; continue;
  29166. /* } */ case 37:
  29167. $s = 35; continue;
  29168. /* } else if (_1 === (8)) { */ case 26:
  29169. /* */ if (!((r === (x$5 = inst[0].Inst.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]))))) { $s = 38; continue; }
  29170. /* */ $s = 39; continue;
  29171. /* if (!((r === (x$5 = inst[0].Inst.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]))))) { */ case 38:
  29172. /* goto Return */ $s = 17; continue;
  29173. /* } */ case 39:
  29174. $s = 35; continue;
  29175. /* } else if (_1 === (9)) { */ case 27:
  29176. $s = 35; continue;
  29177. /* } else if (_1 === (10)) { */ case 28:
  29178. /* */ if (r === 10) { $s = 40; continue; }
  29179. /* */ $s = 41; continue;
  29180. /* if (r === 10) { */ case 40:
  29181. /* goto Return */ $s = 17; continue;
  29182. /* } */ case 41:
  29183. $s = 35; continue;
  29184. /* } else if ((_1 === (0)) || (_1 === (1))) { */ case 29:
  29185. pc = ((onePassNext(inst[0], r) >> 0));
  29186. /* continue; */ $s = 21; continue;
  29187. $s = 35; continue;
  29188. /* } else if (_1 === (5)) { */ case 30:
  29189. /* goto Return */ $s = 17; continue;
  29190. $s = 35; continue;
  29191. /* } else if (_1 === (6)) { */ case 31:
  29192. /* continue; */ $s = 21; continue;
  29193. $s = 35; continue;
  29194. /* } else if (_1 === (3)) { */ case 32:
  29195. /* */ if (!flag.match(((inst[0].Inst.Arg << 24 >>> 24)))) { $s = 42; continue; }
  29196. /* */ $s = 43; continue;
  29197. /* if (!flag.match(((inst[0].Inst.Arg << 24 >>> 24)))) { */ case 42:
  29198. /* goto Return */ $s = 17; continue;
  29199. /* } */ case 43:
  29200. /* continue; */ $s = 21; continue;
  29201. $s = 35; continue;
  29202. /* } else if (_1 === (2)) { */ case 33:
  29203. if (((inst[0].Inst.Arg >> 0)) < m.matchcap.$length) {
  29204. (x$6 = m.matchcap, x$7 = inst[0].Inst.Arg, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7] = pos));
  29205. }
  29206. /* continue; */ $s = 21; continue;
  29207. $s = 35; continue;
  29208. /* } else { */ case 34:
  29209. $panic(new $String("bad inst"));
  29210. /* } */ case 35:
  29211. case 23:
  29212. if (width === 0) {
  29213. /* break; */ $s = 22; continue;
  29214. }
  29215. flag = newLazyFlag(r, r1);
  29216. pos = pos + (width) >> 0;
  29217. _tmp$4 = r1;
  29218. _tmp$5 = width1;
  29219. r = _tmp$4;
  29220. width = _tmp$5;
  29221. /* */ if (!((r === -1))) { $s = 44; continue; }
  29222. /* */ $s = 45; continue;
  29223. /* if (!((r === -1))) { */ case 44:
  29224. _r$9 = i$1.step(pos + width >> 0); /* */ $s = 46; case 46: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  29225. _tuple$5 = _r$9;
  29226. r1 = _tuple$5[0];
  29227. width1 = _tuple$5[1];
  29228. /* } */ case 45:
  29229. /* } */ $s = 21; continue; case 22:
  29230. /* Return: */ case 17:
  29231. if (!matched) {
  29232. freeOnePassMachine(m);
  29233. $s = -1; return sliceType$3.nil;
  29234. }
  29235. dstCap = $appendSlice(dstCap, m.matchcap);
  29236. freeOnePassMachine(m);
  29237. $s = -1; return dstCap;
  29238. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.doOnePass }; } $f._1 = _1; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._v = _v; $f.dstCap = dstCap; $f.flag = flag; $f.i = i; $f.i$1 = i$1; $f.ib = ib; $f.inst = inst; $f.ir = ir; $f.is = is; $f.m = m; $f.matched = matched; $f.ncap = ncap; $f.pc = pc; $f.pos = pos; $f.r = r; $f.r1 = r1; $f.re = re; $f.startCond = startCond; $f.width = width; $f.width1 = width1; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.$s = $s; $f.$r = $r; return $f;
  29239. };
  29240. Regexp.prototype.doOnePass = function(ir, ib, is, pos, ncap, dstCap) { return this.$val.doOnePass(ir, ib, is, pos, ncap, dstCap); };
  29241. Regexp.ptr.prototype.doMatch = function(r, b, s) {
  29242. var _r, b, r, re, s, $s, $r;
  29243. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; r = $f.r; re = $f.re; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  29244. re = this;
  29245. _r = re.doExecute(r, b, s, 0, 0, sliceType$3.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  29246. $s = -1; return !(_r === sliceType$3.nil);
  29247. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.doMatch }; } $f._r = _r; $f.b = b; $f.r = r; $f.re = re; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  29248. };
  29249. Regexp.prototype.doMatch = function(r, b, s) { return this.$val.doMatch(r, b, s); };
  29250. Regexp.ptr.prototype.doExecute = function(r, b, s, pos, ncap, dstCap) {
  29251. var _r, _r$1, _r$2, _r$3, _tuple, b, dstCap, i, m, ncap, pos, r, re, s, $s, $r;
  29252. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; b = $f.b; dstCap = $f.dstCap; i = $f.i; m = $f.m; ncap = $f.ncap; pos = $f.pos; r = $f.r; re = $f.re; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  29253. re = this;
  29254. if (dstCap === sliceType$3.nil) {
  29255. dstCap = $subslice(new sliceType$3(arrayNoInts), 0, 0, 0);
  29256. }
  29257. /* */ if (!(re.onepass === ptrType$6.nil)) { $s = 1; continue; }
  29258. /* */ $s = 2; continue;
  29259. /* if (!(re.onepass === ptrType$6.nil)) { */ case 1:
  29260. _r = re.doOnePass(r, b, s, pos, ncap, dstCap); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  29261. $s = -1; return _r;
  29262. /* } */ case 2:
  29263. /* */ if ($interfaceIsEqual(r, $ifaceNil) && (b.$length + s.length >> 0) < re.maxBitStateLen) { $s = 4; continue; }
  29264. /* */ $s = 5; continue;
  29265. /* if ($interfaceIsEqual(r, $ifaceNil) && (b.$length + s.length >> 0) < re.maxBitStateLen) { */ case 4:
  29266. _r$1 = re.backtrack(b, s, pos, ncap, dstCap); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  29267. $s = -1; return _r$1;
  29268. /* } */ case 5:
  29269. _r$2 = re.get(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  29270. m = _r$2;
  29271. _tuple = m.inputs.init(r, b, s);
  29272. i = _tuple[0];
  29273. m.init(ncap);
  29274. _r$3 = m.match(i, pos); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  29275. /* */ if (!_r$3) { $s = 8; continue; }
  29276. /* */ $s = 9; continue;
  29277. /* if (!_r$3) { */ case 8:
  29278. re.put(m);
  29279. $s = -1; return sliceType$3.nil;
  29280. /* } */ case 9:
  29281. dstCap = $appendSlice(dstCap, m.matchcap);
  29282. re.put(m);
  29283. $s = -1; return dstCap;
  29284. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.doExecute }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f.b = b; $f.dstCap = dstCap; $f.i = i; $f.m = m; $f.ncap = ncap; $f.pos = pos; $f.r = r; $f.re = re; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  29285. };
  29286. Regexp.prototype.doExecute = function(r, b, s, pos, ncap, dstCap) { return this.$val.doExecute(r, b, s, pos, ncap, dstCap); };
  29287. onePassPrefix = function(p) {
  29288. var _tmp, _tmp$1, _tmp$10, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, buf, complete, i, p, pc, prefix, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8;
  29289. prefix = "";
  29290. complete = false;
  29291. pc = 0;
  29292. i = (x = p.Inst, x$1 = p.Start, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]));
  29293. if (!((i.Op === 3)) || ((((((i.Arg << 24 >>> 24))) & 4) >>> 0) === 0)) {
  29294. _tmp = "";
  29295. _tmp$1 = i.Op === 4;
  29296. _tmp$2 = ((p.Start >>> 0));
  29297. prefix = _tmp;
  29298. complete = _tmp$1;
  29299. pc = _tmp$2;
  29300. return [prefix, complete, pc];
  29301. }
  29302. pc = i.Out;
  29303. i = (x$2 = p.Inst, ((pc < 0 || pc >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + pc]));
  29304. while (true) {
  29305. if (!(i.Op === 6)) { break; }
  29306. pc = i.Out;
  29307. i = (x$3 = p.Inst, ((pc < 0 || pc >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc]));
  29308. }
  29309. if (!((iop(i) === 7)) || !((i.Rune.$length === 1))) {
  29310. _tmp$3 = "";
  29311. _tmp$4 = i.Op === 4;
  29312. _tmp$5 = ((p.Start >>> 0));
  29313. prefix = _tmp$3;
  29314. complete = _tmp$4;
  29315. pc = _tmp$5;
  29316. return [prefix, complete, pc];
  29317. }
  29318. buf = new strings.Builder.ptr(ptrType$7.nil, sliceType$5.nil);
  29319. while (true) {
  29320. if (!((iop(i) === 7) && (i.Rune.$length === 1) && (((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { break; }
  29321. buf.WriteRune((x$4 = i.Rune, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])));
  29322. _tmp$6 = i.Out;
  29323. _tmp$7 = (x$5 = p.Inst, x$6 = i.Out, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6]));
  29324. pc = _tmp$6;
  29325. i = _tmp$7;
  29326. }
  29327. if ((i.Op === 3) && !((((((i.Arg << 24 >>> 24)) & 8) >>> 0) === 0)) && ((x$7 = p.Inst, x$8 = i.Out, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])).Op === 4)) {
  29328. complete = true;
  29329. }
  29330. _tmp$8 = buf.String();
  29331. _tmp$9 = complete;
  29332. _tmp$10 = pc;
  29333. prefix = _tmp$8;
  29334. complete = _tmp$9;
  29335. pc = _tmp$10;
  29336. return [prefix, complete, pc];
  29337. };
  29338. onePassNext = function(i, r) {
  29339. var i, next, r, x;
  29340. next = i.Inst.MatchRunePos(r);
  29341. if (next >= 0) {
  29342. return (x = i.Next, ((next < 0 || next >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + next]));
  29343. }
  29344. if (i.Inst.Op === 1) {
  29345. return i.Inst.Out;
  29346. }
  29347. return 0;
  29348. };
  29349. iop = function(i) {
  29350. var _1, i, op;
  29351. op = i.Op;
  29352. _1 = op;
  29353. if ((_1 === (8)) || (_1 === (9)) || (_1 === (10))) {
  29354. op = 7;
  29355. }
  29356. return op;
  29357. };
  29358. queueOnePass.ptr.prototype.empty = function() {
  29359. var q;
  29360. q = this;
  29361. return q.nextIndex >= q.size;
  29362. };
  29363. queueOnePass.prototype.empty = function() { return this.$val.empty(); };
  29364. queueOnePass.ptr.prototype.next = function() {
  29365. var n, q, x, x$1;
  29366. n = 0;
  29367. q = this;
  29368. n = (x = q.dense, x$1 = q.nextIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]));
  29369. q.nextIndex = q.nextIndex + (1) >>> 0;
  29370. return n;
  29371. };
  29372. queueOnePass.prototype.next = function() { return this.$val.next(); };
  29373. queueOnePass.ptr.prototype.clear = function() {
  29374. var q;
  29375. q = this;
  29376. q.size = 0;
  29377. q.nextIndex = 0;
  29378. };
  29379. queueOnePass.prototype.clear = function() { return this.$val.clear(); };
  29380. queueOnePass.ptr.prototype.contains = function(u) {
  29381. var q, u, x, x$1, x$2, x$3;
  29382. q = this;
  29383. if (u >= ((q.sparse.$length >>> 0))) {
  29384. return false;
  29385. }
  29386. return (x = q.sparse, ((u < 0 || u >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + u])) < q.size && ((x$1 = q.dense, x$2 = (x$3 = q.sparse, ((u < 0 || u >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + u])), ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) === u);
  29387. };
  29388. queueOnePass.prototype.contains = function(u) { return this.$val.contains(u); };
  29389. queueOnePass.ptr.prototype.insert = function(u) {
  29390. var q, u;
  29391. q = this;
  29392. if (!q.contains(u)) {
  29393. q.insertNew(u);
  29394. }
  29395. };
  29396. queueOnePass.prototype.insert = function(u) { return this.$val.insert(u); };
  29397. queueOnePass.ptr.prototype.insertNew = function(u) {
  29398. var q, u, x, x$1, x$2;
  29399. q = this;
  29400. if (u >= ((q.sparse.$length >>> 0))) {
  29401. return;
  29402. }
  29403. (x = q.sparse, ((u < 0 || u >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + u] = q.size));
  29404. (x$1 = q.dense, x$2 = q.size, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2] = u));
  29405. q.size = q.size + (1) >>> 0;
  29406. };
  29407. queueOnePass.prototype.insertNew = function(u) { return this.$val.insertNew(u); };
  29408. newQueue = function(size) {
  29409. var q, size;
  29410. q = ptrType$8.nil;
  29411. q = new queueOnePass.ptr($makeSlice(sliceType$2, size), $makeSlice(sliceType$2, size), 0, 0);
  29412. return q;
  29413. };
  29414. mergeRuneSets = function(leftRunes, rightRunes, leftPC, rightPC) {
  29415. var _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, extend, ix, leftLen, leftPC, leftRunes, lx, merged, next, ok, rightLen, rightPC, rightRunes, rx, x, x$1, $s, $deferred, $r;
  29416. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; extend = $f.extend; ix = $f.ix; leftLen = $f.leftLen; leftPC = $f.leftPC; leftRunes = $f.leftRunes; lx = $f.lx; merged = $f.merged; next = $f.next; ok = $f.ok; rightLen = $f.rightLen; rightPC = $f.rightPC; rightRunes = $f.rightRunes; rx = $f.rx; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  29417. ix = [ix];
  29418. lx = [lx];
  29419. merged = [merged];
  29420. next = [next];
  29421. ok = [ok];
  29422. rx = [rx];
  29423. leftLen = leftRunes.$get().$length;
  29424. rightLen = rightRunes.$get().$length;
  29425. if (!(((leftLen & 1) === 0)) || !(((rightLen & 1) === 0))) {
  29426. $panic(new $String("mergeRuneSets odd length []rune"));
  29427. }
  29428. _tmp = 0;
  29429. _tmp$1 = 0;
  29430. lx[0] = _tmp;
  29431. rx[0] = _tmp$1;
  29432. merged[0] = $makeSlice(sliceType$1, 0);
  29433. next[0] = $makeSlice(sliceType$2, 0);
  29434. ok[0] = true;
  29435. $deferred.push([(function(ix, lx, merged, next, ok, rx) { return function() {
  29436. if (!ok[0]) {
  29437. merged[0] = sliceType$1.nil;
  29438. next[0] = sliceType$2.nil;
  29439. }
  29440. }; })(ix, lx, merged, next, ok, rx), []]);
  29441. ix[0] = -1;
  29442. extend = (function(ix, lx, merged, next, ok, rx) { return function(newLow, newArray, pc) {
  29443. var newArray, newLow, pc, x, x$1, x$2, x$3, x$4, x$5;
  29444. if (ix[0] > 0 && (x = newArray.$get(), x$1 = newLow.$get(), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) <= ((ix[0] < 0 || ix[0] >= merged[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : merged[0].$array[merged[0].$offset + ix[0]])) {
  29445. return false;
  29446. }
  29447. merged[0] = $append(merged[0], (x$2 = newArray.$get(), x$3 = newLow.$get(), ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])), (x$4 = newArray.$get(), x$5 = newLow.$get() + 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])));
  29448. newLow.$set(newLow.$get() + (2) >> 0);
  29449. ix[0] = ix[0] + (2) >> 0;
  29450. next[0] = $append(next[0], pc);
  29451. return true;
  29452. }; })(ix, lx, merged, next, ok, rx);
  29453. /* while (true) { */ case 1:
  29454. /* if (!(lx[0] < leftLen || rx[0] < rightLen)) { break; } */ if(!(lx[0] < leftLen || rx[0] < rightLen)) { $s = 2; continue; }
  29455. /* */ if (rx[0] >= rightLen) { $s = 4; continue; }
  29456. /* */ if (lx[0] >= leftLen) { $s = 5; continue; }
  29457. /* */ if ((x = rightRunes.$get(), ((rx[0] < 0 || rx[0] >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + rx[0]])) < (x$1 = leftRunes.$get(), ((lx[0] < 0 || lx[0] >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + lx[0]]))) { $s = 6; continue; }
  29458. /* */ $s = 7; continue;
  29459. /* if (rx[0] >= rightLen) { */ case 4:
  29460. _r = extend((lx.$ptr || (lx.$ptr = new ptrType$4(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, lx))), leftRunes, leftPC); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  29461. ok[0] = _r;
  29462. $s = 8; continue;
  29463. /* } else if (lx[0] >= leftLen) { */ case 5:
  29464. _r$1 = extend((rx.$ptr || (rx.$ptr = new ptrType$4(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, rx))), rightRunes, rightPC); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  29465. ok[0] = _r$1;
  29466. $s = 8; continue;
  29467. /* } else if ((x = rightRunes.$get(), ((rx[0] < 0 || rx[0] >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + rx[0]])) < (x$1 = leftRunes.$get(), ((lx[0] < 0 || lx[0] >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + lx[0]]))) { */ case 6:
  29468. _r$2 = extend((rx.$ptr || (rx.$ptr = new ptrType$4(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, rx))), rightRunes, rightPC); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  29469. ok[0] = _r$2;
  29470. $s = 8; continue;
  29471. /* } else { */ case 7:
  29472. _r$3 = extend((lx.$ptr || (lx.$ptr = new ptrType$4(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, lx))), leftRunes, leftPC); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  29473. ok[0] = _r$3;
  29474. /* } */ case 8:
  29475. case 3:
  29476. if (!ok[0]) {
  29477. $s = -1; return [noRune, noNext];
  29478. }
  29479. /* } */ $s = 1; continue; case 2:
  29480. $s = -1; return [merged[0], next[0]];
  29481. /* */ } return; } } catch(err) { $err = err; $s = -1; return [sliceType$1.nil, sliceType$2.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: mergeRuneSets }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f.extend = extend; $f.ix = ix; $f.leftLen = leftLen; $f.leftPC = leftPC; $f.leftRunes = leftRunes; $f.lx = lx; $f.merged = merged; $f.next = next; $f.ok = ok; $f.rightLen = rightLen; $f.rightPC = rightPC; $f.rightRunes = rightRunes; $f.rx = rx; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  29482. };
  29483. cleanupOnePass = function(prog, original) {
  29484. var _1, _i, _ref, instOriginal, ix, original, prog, x, x$1, x$2;
  29485. _ref = original.Inst;
  29486. _i = 0;
  29487. while (true) {
  29488. if (!(_i < _ref.$length)) { break; }
  29489. ix = _i;
  29490. instOriginal = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syntax.Inst);
  29491. _1 = instOriginal.Op;
  29492. if ((_1 === (0)) || (_1 === (1)) || (_1 === (7))) {
  29493. } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (6)) || (_1 === (4)) || (_1 === (5))) {
  29494. (x = prog.Inst, ((ix < 0 || ix >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + ix])).Next = sliceType$2.nil;
  29495. } else if ((_1 === (8)) || (_1 === (9)) || (_1 === (10))) {
  29496. (x$1 = prog.Inst, ((ix < 0 || ix >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + ix])).Next = sliceType$2.nil;
  29497. onePassInst.copy((x$2 = prog.Inst, ((ix < 0 || ix >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + ix])), new onePassInst.ptr($clone(instOriginal, syntax.Inst), sliceType$2.nil));
  29498. }
  29499. _i++;
  29500. }
  29501. };
  29502. onePassCopy = function(prog) {
  29503. var _1, _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, i, inst, instAlt, instOther, p, p_A_Alt, p_A_Other, p_B_Alt, p_B_Other, patch, pc, prog, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
  29504. p = new onePassProg.ptr($makeSlice(sliceType$6, prog.Inst.$length), prog.Start, prog.NumCap);
  29505. _ref = prog.Inst;
  29506. _i = 0;
  29507. while (true) {
  29508. if (!(_i < _ref.$length)) { break; }
  29509. i = _i;
  29510. inst = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syntax.Inst);
  29511. onePassInst.copy((x = p.Inst, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), new onePassInst.ptr($clone(inst, syntax.Inst), sliceType$2.nil));
  29512. _i++;
  29513. }
  29514. _ref$1 = p.Inst;
  29515. _i$1 = 0;
  29516. while (true) {
  29517. if (!(_i$1 < _ref$1.$length)) { break; }
  29518. pc = _i$1;
  29519. _1 = (x$1 = p.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pc])).Inst.Op;
  29520. if ((_1 === (0)) || (_1 === (1))) {
  29521. p_A_Other = (x$2 = (x$3 = p.Inst, ((pc < 0 || pc >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc])), (x$2.$ptr_Out || (x$2.$ptr_Out = new ptrType$9(function() { return this.$target.Inst.Out; }, function($v) { this.$target.Inst.Out = $v; }, x$2))));
  29522. p_A_Alt = (x$4 = (x$5 = p.Inst, ((pc < 0 || pc >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + pc])), (x$4.$ptr_Arg || (x$4.$ptr_Arg = new ptrType$9(function() { return this.$target.Inst.Arg; }, function($v) { this.$target.Inst.Arg = $v; }, x$4))));
  29523. instAlt = $clone((x$6 = p.Inst, x$7 = p_A_Alt.$get(), ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])), onePassInst);
  29524. if (!((instAlt.Inst.Op === 0) || (instAlt.Inst.Op === 1))) {
  29525. _tmp = p_A_Other;
  29526. _tmp$1 = p_A_Alt;
  29527. p_A_Alt = _tmp;
  29528. p_A_Other = _tmp$1;
  29529. onePassInst.copy(instAlt, (x$8 = p.Inst, x$9 = p_A_Alt.$get(), ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])));
  29530. if (!((instAlt.Inst.Op === 0) || (instAlt.Inst.Op === 1))) {
  29531. _i$1++;
  29532. continue;
  29533. }
  29534. }
  29535. instOther = $clone((x$10 = p.Inst, x$11 = p_A_Other.$get(), ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11])), onePassInst);
  29536. if ((instOther.Inst.Op === 0) || (instOther.Inst.Op === 1)) {
  29537. _i$1++;
  29538. continue;
  29539. }
  29540. p_B_Alt = (x$12 = (x$13 = p.Inst, x$14 = p_A_Alt.$get(), ((x$14 < 0 || x$14 >= x$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + x$14])), (x$12.$ptr_Out || (x$12.$ptr_Out = new ptrType$9(function() { return this.$target.Inst.Out; }, function($v) { this.$target.Inst.Out = $v; }, x$12))));
  29541. p_B_Other = (x$15 = (x$16 = p.Inst, x$17 = p_A_Alt.$get(), ((x$17 < 0 || x$17 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + x$17])), (x$15.$ptr_Arg || (x$15.$ptr_Arg = new ptrType$9(function() { return this.$target.Inst.Arg; }, function($v) { this.$target.Inst.Arg = $v; }, x$15))));
  29542. patch = false;
  29543. if (instAlt.Inst.Out === ((pc >>> 0))) {
  29544. patch = true;
  29545. } else if (instAlt.Inst.Arg === ((pc >>> 0))) {
  29546. patch = true;
  29547. _tmp$2 = p_B_Other;
  29548. _tmp$3 = p_B_Alt;
  29549. p_B_Alt = _tmp$2;
  29550. p_B_Other = _tmp$3;
  29551. }
  29552. if (patch) {
  29553. p_B_Alt.$set(p_A_Other.$get());
  29554. }
  29555. if (p_A_Other.$get() === p_B_Alt.$get()) {
  29556. p_A_Alt.$set(p_B_Other.$get());
  29557. }
  29558. } else {
  29559. _i$1++;
  29560. continue;
  29561. }
  29562. _i$1++;
  29563. }
  29564. return p;
  29565. };
  29566. runeSlice.prototype.Len = function() {
  29567. var p;
  29568. p = this;
  29569. return p.$length;
  29570. };
  29571. $ptrType(runeSlice).prototype.Len = function() { return this.$get().Len(); };
  29572. runeSlice.prototype.Less = function(i, j) {
  29573. var i, j, p;
  29574. p = this;
  29575. return ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) < ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]);
  29576. };
  29577. $ptrType(runeSlice).prototype.Less = function(i, j) { return this.$get().Less(i, j); };
  29578. runeSlice.prototype.Swap = function(i, j) {
  29579. var _tmp, _tmp$1, i, j, p;
  29580. p = this;
  29581. _tmp = ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]);
  29582. _tmp$1 = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]);
  29583. ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i] = _tmp);
  29584. ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j] = _tmp$1);
  29585. };
  29586. $ptrType(runeSlice).prototype.Swap = function(i, j) { return this.$get().Swap(i, j); };
  29587. makeOnePass = function(p) {
  29588. var _i, _r, _ref, check, i, instQueue, m, onePassRunes, p, pc, visitQueue, x, $s, $r;
  29589. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; check = $f.check; i = $f.i; instQueue = $f.instQueue; m = $f.m; onePassRunes = $f.onePassRunes; p = $f.p; pc = $f.pc; visitQueue = $f.visitQueue; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  29590. check = [check];
  29591. instQueue = [instQueue];
  29592. onePassRunes = [onePassRunes];
  29593. p = [p];
  29594. visitQueue = [visitQueue];
  29595. if (p[0].Inst.$length >= 1000) {
  29596. $s = -1; return ptrType$6.nil;
  29597. }
  29598. instQueue[0] = newQueue(p[0].Inst.$length);
  29599. visitQueue[0] = newQueue(p[0].Inst.$length);
  29600. check[0] = $throwNilPointerError;
  29601. onePassRunes[0] = $makeSlice(sliceType$7, p[0].Inst.$length);
  29602. check[0] = (function(check, instQueue, onePassRunes, p, visitQueue) { return function $b(pc, m) {
  29603. var _1, _i, _i$1, _i$2, _i$3, _i$4, _q, _q$1, _q$2, _q$3, _q$4, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _v, i, i$1, i$2, i$3, i$4, inst, m, matchArg, matchOut, ok, pc, r0, r0$1, r1, r1$1, runes, runes$1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r;
  29604. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _i$3 = $f._i$3; _i$4 = $f._i$4; _q = $f._q; _q$1 = $f._q$1; _q$2 = $f._q$2; _q$3 = $f._q$3; _q$4 = $f._q$4; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; _ref$3 = $f._ref$3; _ref$4 = $f._ref$4; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; _v = $f._v; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; i$3 = $f.i$3; i$4 = $f.i$4; inst = $f.inst; m = $f.m; matchArg = $f.matchArg; matchOut = $f.matchOut; ok = $f.ok; pc = $f.pc; r0 = $f.r0; r0$1 = $f.r0$1; r1 = $f.r1; r1$1 = $f.r1$1; runes = $f.runes; runes$1 = $f.runes$1; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$15 = $f.x$15; x$16 = $f.x$16; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  29605. ok = false;
  29606. ok = true;
  29607. inst = (x = p[0].Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc]));
  29608. if (visitQueue[0].contains(pc)) {
  29609. $s = -1; return ok;
  29610. }
  29611. visitQueue[0].insert(pc);
  29612. _1 = inst.Inst.Op;
  29613. /* */ if ((_1 === (0)) || (_1 === (1))) { $s = 2; continue; }
  29614. /* */ if ((_1 === (2)) || (_1 === (6))) { $s = 3; continue; }
  29615. /* */ if (_1 === (3)) { $s = 4; continue; }
  29616. /* */ if ((_1 === (4)) || (_1 === (5))) { $s = 5; continue; }
  29617. /* */ if (_1 === (7)) { $s = 6; continue; }
  29618. /* */ if (_1 === (8)) { $s = 7; continue; }
  29619. /* */ if (_1 === (9)) { $s = 8; continue; }
  29620. /* */ if (_1 === (10)) { $s = 9; continue; }
  29621. /* */ $s = 10; continue;
  29622. /* if ((_1 === (0)) || (_1 === (1))) { */ case 2:
  29623. _r = check[0](inst.Inst.Out, m); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  29624. if (!(_r)) { _v = false; $s = 11; continue s; }
  29625. _r$1 = check[0](inst.Inst.Arg, m); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  29626. _v = _r$1; case 11:
  29627. ok = _v;
  29628. matchOut = (x$1 = inst.Inst.Out, ((x$1 < 0 || x$1 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$1]));
  29629. matchArg = (x$2 = inst.Inst.Arg, ((x$2 < 0 || x$2 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$2]));
  29630. if (matchOut && matchArg) {
  29631. ok = false;
  29632. /* break; */ $s = 1; continue;
  29633. }
  29634. if (matchArg) {
  29635. _tmp = inst.Inst.Arg;
  29636. _tmp$1 = inst.Inst.Out;
  29637. inst.Inst.Out = _tmp;
  29638. inst.Inst.Arg = _tmp$1;
  29639. _tmp$2 = matchArg;
  29640. _tmp$3 = matchOut;
  29641. matchOut = _tmp$2;
  29642. matchArg = _tmp$3;
  29643. }
  29644. if (matchOut) {
  29645. ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = true);
  29646. inst.Inst.Op = 1;
  29647. }
  29648. _r$2 = mergeRuneSets($indexPtr(onePassRunes[0].$array, onePassRunes[0].$offset + inst.Inst.Out, ptrType$10), $indexPtr(onePassRunes[0].$array, onePassRunes[0].$offset + inst.Inst.Arg, ptrType$10), inst.Inst.Out, inst.Inst.Arg); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  29649. _tuple = _r$2;
  29650. ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = _tuple[0]);
  29651. inst.Next = _tuple[1];
  29652. if (inst.Next.$length > 0 && ((x$3 = inst.Next, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])) === 4294967295)) {
  29653. ok = false;
  29654. /* break; */ $s = 1; continue;
  29655. }
  29656. $s = 10; continue;
  29657. /* } else if ((_1 === (2)) || (_1 === (6))) { */ case 3:
  29658. _r$3 = check[0](inst.Inst.Out, m); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  29659. ok = _r$3;
  29660. ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = (x$4 = inst.Inst.Out, ((x$4 < 0 || x$4 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$4])));
  29661. ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType$1([]), (x$5 = inst.Inst.Out, ((x$5 < 0 || x$5 >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + x$5]))));
  29662. inst.Next = $makeSlice(sliceType$2, ((_q = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0));
  29663. _ref = inst.Next;
  29664. _i = 0;
  29665. while (true) {
  29666. if (!(_i < _ref.$length)) { break; }
  29667. i = _i;
  29668. (x$6 = inst.Next, ((i < 0 || i >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i] = inst.Inst.Out));
  29669. _i++;
  29670. }
  29671. $s = 10; continue;
  29672. /* } else if (_1 === (3)) { */ case 4:
  29673. _r$4 = check[0](inst.Inst.Out, m); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  29674. ok = _r$4;
  29675. ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = (x$7 = inst.Inst.Out, ((x$7 < 0 || x$7 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$7])));
  29676. ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType$1([]), (x$8 = inst.Inst.Out, ((x$8 < 0 || x$8 >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + x$8]))));
  29677. inst.Next = $makeSlice(sliceType$2, ((_q$1 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0));
  29678. _ref$1 = inst.Next;
  29679. _i$1 = 0;
  29680. while (true) {
  29681. if (!(_i$1 < _ref$1.$length)) { break; }
  29682. i$1 = _i$1;
  29683. (x$9 = inst.Next, ((i$1 < 0 || i$1 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + i$1] = inst.Inst.Out));
  29684. _i$1++;
  29685. }
  29686. $s = 10; continue;
  29687. /* } else if ((_1 === (4)) || (_1 === (5))) { */ case 5:
  29688. ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = (inst.Inst.Op === 4));
  29689. $s = 10; continue;
  29690. /* } else if (_1 === (7)) { */ case 6:
  29691. ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false);
  29692. if (inst.Next.$length > 0) {
  29693. /* break; */ $s = 1; continue;
  29694. }
  29695. instQueue[0].insert(inst.Inst.Out);
  29696. if (inst.Inst.Rune.$length === 0) {
  29697. ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = new sliceType$1([]));
  29698. inst.Next = new sliceType$2([inst.Inst.Out]);
  29699. /* break; */ $s = 1; continue;
  29700. }
  29701. runes = $makeSlice(sliceType$1, 0);
  29702. /* */ if ((inst.Inst.Rune.$length === 1) && !((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { $s = 17; continue; }
  29703. /* */ $s = 18; continue;
  29704. /* if ((inst.Inst.Rune.$length === 1) && !((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { */ case 17:
  29705. r0 = (x$10 = inst.Inst.Rune, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0]));
  29706. runes = $append(runes, r0, r0);
  29707. r1 = unicode.SimpleFold(r0);
  29708. while (true) {
  29709. if (!(!((r1 === r0)))) { break; }
  29710. runes = $append(runes, r1, r1);
  29711. r1 = unicode.SimpleFold(r1);
  29712. }
  29713. $r = sort.Sort(($subslice(new runeSlice(runes.$array), runes.$offset, runes.$offset + runes.$length))); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  29714. $s = 19; continue;
  29715. /* } else { */ case 18:
  29716. runes = $appendSlice(runes, inst.Inst.Rune);
  29717. /* } */ case 19:
  29718. ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = runes);
  29719. inst.Next = $makeSlice(sliceType$2, ((_q$2 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0));
  29720. _ref$2 = inst.Next;
  29721. _i$2 = 0;
  29722. while (true) {
  29723. if (!(_i$2 < _ref$2.$length)) { break; }
  29724. i$2 = _i$2;
  29725. (x$11 = inst.Next, ((i$2 < 0 || i$2 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + i$2] = inst.Inst.Out));
  29726. _i$2++;
  29727. }
  29728. inst.Inst.Op = 7;
  29729. $s = 10; continue;
  29730. /* } else if (_1 === (8)) { */ case 7:
  29731. ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false);
  29732. if (inst.Next.$length > 0) {
  29733. /* break; */ $s = 1; continue;
  29734. }
  29735. instQueue[0].insert(inst.Inst.Out);
  29736. runes$1 = new sliceType$1([]);
  29737. /* */ if (!((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { $s = 21; continue; }
  29738. /* */ $s = 22; continue;
  29739. /* if (!((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { */ case 21:
  29740. r0$1 = (x$12 = inst.Inst.Rune, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0]));
  29741. runes$1 = $append(runes$1, r0$1, r0$1);
  29742. r1$1 = unicode.SimpleFold(r0$1);
  29743. while (true) {
  29744. if (!(!((r1$1 === r0$1)))) { break; }
  29745. runes$1 = $append(runes$1, r1$1, r1$1);
  29746. r1$1 = unicode.SimpleFold(r1$1);
  29747. }
  29748. $r = sort.Sort(($subslice(new runeSlice(runes$1.$array), runes$1.$offset, runes$1.$offset + runes$1.$length))); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  29749. $s = 23; continue;
  29750. /* } else { */ case 22:
  29751. runes$1 = $append(runes$1, (x$13 = inst.Inst.Rune, (0 >= x$13.$length ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + 0])), (x$14 = inst.Inst.Rune, (0 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 0])));
  29752. /* } */ case 23:
  29753. ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = runes$1);
  29754. inst.Next = $makeSlice(sliceType$2, ((_q$3 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0));
  29755. _ref$3 = inst.Next;
  29756. _i$3 = 0;
  29757. while (true) {
  29758. if (!(_i$3 < _ref$3.$length)) { break; }
  29759. i$3 = _i$3;
  29760. (x$15 = inst.Next, ((i$3 < 0 || i$3 >= x$15.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + i$3] = inst.Inst.Out));
  29761. _i$3++;
  29762. }
  29763. inst.Inst.Op = 7;
  29764. $s = 10; continue;
  29765. /* } else if (_1 === (9)) { */ case 8:
  29766. ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false);
  29767. if (inst.Next.$length > 0) {
  29768. /* break; */ $s = 1; continue;
  29769. }
  29770. instQueue[0].insert(inst.Inst.Out);
  29771. ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType$1([]), anyRune));
  29772. inst.Next = new sliceType$2([inst.Inst.Out]);
  29773. $s = 10; continue;
  29774. /* } else if (_1 === (10)) { */ case 9:
  29775. ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false);
  29776. if (inst.Next.$length > 0) {
  29777. /* break; */ $s = 1; continue;
  29778. }
  29779. instQueue[0].insert(inst.Inst.Out);
  29780. ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType$1([]), anyRuneNotNL));
  29781. inst.Next = $makeSlice(sliceType$2, ((_q$4 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$4 === _q$4 && _q$4 !== 1/0 && _q$4 !== -1/0) ? _q$4 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0));
  29782. _ref$4 = inst.Next;
  29783. _i$4 = 0;
  29784. while (true) {
  29785. if (!(_i$4 < _ref$4.$length)) { break; }
  29786. i$4 = _i$4;
  29787. (x$16 = inst.Next, ((i$4 < 0 || i$4 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + i$4] = inst.Inst.Out));
  29788. _i$4++;
  29789. }
  29790. /* } */ case 10:
  29791. case 1:
  29792. $s = -1; return ok;
  29793. /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._1 = _1; $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._i$3 = _i$3; $f._i$4 = _i$4; $f._q = _q; $f._q$1 = _q$1; $f._q$2 = _q$2; $f._q$3 = _q$3; $f._q$4 = _q$4; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f._ref$3 = _ref$3; $f._ref$4 = _ref$4; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f._v = _v; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.i$3 = i$3; $f.i$4 = i$4; $f.inst = inst; $f.m = m; $f.matchArg = matchArg; $f.matchOut = matchOut; $f.ok = ok; $f.pc = pc; $f.r0 = r0; $f.r0$1 = r0$1; $f.r1 = r1; $f.r1$1 = r1$1; $f.runes = runes; $f.runes$1 = runes$1; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$15 = x$15; $f.x$16 = x$16; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.$s = $s; $f.$r = $r; return $f;
  29794. }; })(check, instQueue, onePassRunes, p, visitQueue);
  29795. instQueue[0].clear();
  29796. instQueue[0].insert(((p[0].Start >>> 0)));
  29797. m = $makeSlice(sliceType$8, p[0].Inst.$length);
  29798. /* while (true) { */ case 1:
  29799. /* if (!(!instQueue[0].empty())) { break; } */ if(!(!instQueue[0].empty())) { $s = 2; continue; }
  29800. visitQueue[0].clear();
  29801. pc = instQueue[0].next();
  29802. _r = check[0](pc, m); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  29803. /* */ if (!_r) { $s = 3; continue; }
  29804. /* */ $s = 4; continue;
  29805. /* if (!_r) { */ case 3:
  29806. p[0] = ptrType$6.nil;
  29807. /* break; */ $s = 2; continue;
  29808. /* } */ case 4:
  29809. /* } */ $s = 1; continue; case 2:
  29810. if (!(p[0] === ptrType$6.nil)) {
  29811. _ref = p[0].Inst;
  29812. _i = 0;
  29813. while (true) {
  29814. if (!(_i < _ref.$length)) { break; }
  29815. i = _i;
  29816. (x = p[0].Inst, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])).Inst.Rune = ((i < 0 || i >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + i]);
  29817. _i++;
  29818. }
  29819. }
  29820. $s = -1; return p[0];
  29821. /* */ } return; } if ($f === undefined) { $f = { $blk: makeOnePass }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.check = check; $f.i = i; $f.instQueue = instQueue; $f.m = m; $f.onePassRunes = onePassRunes; $f.p = p; $f.pc = pc; $f.visitQueue = visitQueue; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  29822. };
  29823. compileOnePass = function(prog) {
  29824. var _1, _i, _r, _ref, inst, opOut, p, prog, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r;
  29825. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _i = $f._i; _r = $f._r; _ref = $f._ref; inst = $f.inst; opOut = $f.opOut; p = $f.p; prog = $f.prog; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  29826. p = ptrType$6.nil;
  29827. if (prog.Start === 0) {
  29828. p = ptrType$6.nil;
  29829. $s = -1; return p;
  29830. }
  29831. if (!(((x = prog.Inst, x$1 = prog.Start, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op === 3)) || !(((((((x$2 = prog.Inst, x$3 = prog.Start, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])).Arg << 24 >>> 24)) & 4) >>> 0) === 4))) {
  29832. p = ptrType$6.nil;
  29833. $s = -1; return p;
  29834. }
  29835. _ref = prog.Inst;
  29836. _i = 0;
  29837. /* while (true) { */ case 1:
  29838. /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
  29839. inst = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syntax.Inst);
  29840. opOut = (x$4 = prog.Inst, x$5 = inst.Out, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).Op;
  29841. _1 = inst.Op;
  29842. if ((_1 === (0)) || (_1 === (1))) {
  29843. if ((opOut === 4) || ((x$6 = prog.Inst, x$7 = inst.Arg, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])).Op === 4)) {
  29844. p = ptrType$6.nil;
  29845. $s = -1; return p;
  29846. }
  29847. } else if (_1 === (3)) {
  29848. if (opOut === 4) {
  29849. if (((((inst.Arg << 24 >>> 24)) & 8) >>> 0) === 8) {
  29850. _i++;
  29851. /* continue; */ $s = 1; continue;
  29852. }
  29853. p = ptrType$6.nil;
  29854. $s = -1; return p;
  29855. }
  29856. } else if (opOut === 4) {
  29857. p = ptrType$6.nil;
  29858. $s = -1; return p;
  29859. }
  29860. _i++;
  29861. /* } */ $s = 1; continue; case 2:
  29862. p = onePassCopy(prog);
  29863. _r = makeOnePass(p); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  29864. p = _r;
  29865. if (!(p === ptrType$6.nil)) {
  29866. cleanupOnePass(p, prog);
  29867. }
  29868. p = p;
  29869. $s = -1; return p;
  29870. /* */ } return; } if ($f === undefined) { $f = { $blk: compileOnePass }; } $f._1 = _1; $f._i = _i; $f._r = _r; $f._ref = _ref; $f.inst = inst; $f.opOut = opOut; $f.p = p; $f.prog = prog; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.$s = $s; $f.$r = $r; return $f;
  29871. };
  29872. Regexp.ptr.prototype.String = function() {
  29873. var re;
  29874. re = this;
  29875. return re.expr;
  29876. };
  29877. Regexp.prototype.String = function() { return this.$val.String(); };
  29878. Regexp.ptr.prototype.Copy = function() {
  29879. var re, re2;
  29880. re = this;
  29881. re2 = $clone(re, Regexp);
  29882. return re2;
  29883. };
  29884. Regexp.prototype.Copy = function() { return this.$val.Copy(); };
  29885. Compile = function(expr) {
  29886. var _r, expr, $s, $r;
  29887. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; expr = $f.expr; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  29888. _r = compile(expr, 212, false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  29889. $s = -1; return _r;
  29890. /* */ } return; } if ($f === undefined) { $f = { $blk: Compile }; } $f._r = _r; $f.expr = expr; $f.$s = $s; $f.$r = $r; return $f;
  29891. };
  29892. $pkg.Compile = Compile;
  29893. Regexp.ptr.prototype.Longest = function() {
  29894. var re;
  29895. re = this;
  29896. re.longest = true;
  29897. };
  29898. Regexp.prototype.Longest = function() { return this.$val.Longest(); };
  29899. compile = function(expr, mode, longest) {
  29900. var _r, _r$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, capNames, err, expr, i, longest, matchcap, maxCap, mode, n, prog, re, regexp, $s, $r;
  29901. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; capNames = $f.capNames; err = $f.err; expr = $f.expr; i = $f.i; longest = $f.longest; matchcap = $f.matchcap; maxCap = $f.maxCap; mode = $f.mode; n = $f.n; prog = $f.prog; re = $f.re; regexp = $f.regexp; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  29902. _r = syntax.Parse(expr, mode); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  29903. _tuple = _r;
  29904. re = _tuple[0];
  29905. err = _tuple[1];
  29906. if (!($interfaceIsEqual(err, $ifaceNil))) {
  29907. $s = -1; return [ptrType$11.nil, err];
  29908. }
  29909. maxCap = re.MaxCap();
  29910. capNames = re.CapNames();
  29911. re = re.Simplify();
  29912. _tuple$1 = syntax.Compile(re);
  29913. prog = _tuple$1[0];
  29914. err = _tuple$1[1];
  29915. if (!($interfaceIsEqual(err, $ifaceNil))) {
  29916. $s = -1; return [ptrType$11.nil, err];
  29917. }
  29918. matchcap = prog.NumCap;
  29919. if (matchcap < 2) {
  29920. matchcap = 2;
  29921. }
  29922. _r$1 = compileOnePass(prog); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  29923. regexp = new Regexp.ptr(expr, prog, _r$1, maxCap, 0, capNames, "", sliceType$5.nil, 0, 0, 0, matchcap, false, prog.StartCond(), longest);
  29924. if (regexp.onepass === ptrType$6.nil) {
  29925. _tuple$2 = prog.Prefix();
  29926. regexp.prefix = _tuple$2[0];
  29927. regexp.prefixComplete = _tuple$2[1];
  29928. regexp.maxBitStateLen = maxBitStateLen(prog);
  29929. } else {
  29930. _tuple$3 = onePassPrefix(prog);
  29931. regexp.prefix = _tuple$3[0];
  29932. regexp.prefixComplete = _tuple$3[1];
  29933. regexp.prefixEnd = _tuple$3[2];
  29934. }
  29935. if (!(regexp.prefix === "")) {
  29936. regexp.prefixBytes = (new sliceType$5($stringToBytes(regexp.prefix)));
  29937. _tuple$4 = utf8.DecodeRuneInString(regexp.prefix);
  29938. regexp.prefixRune = _tuple$4[0];
  29939. }
  29940. n = prog.Inst.$length;
  29941. i = 0;
  29942. while (true) {
  29943. if (!(!((((i < 0 || i >= matchSize.length) ? ($throwRuntimeError("index out of range"), undefined) : matchSize[i]) === 0)) && ((i < 0 || i >= matchSize.length) ? ($throwRuntimeError("index out of range"), undefined) : matchSize[i]) < n)) { break; }
  29944. i = i + (1) >> 0;
  29945. }
  29946. regexp.mpool = i;
  29947. $s = -1; return [regexp, $ifaceNil];
  29948. /* */ } return; } if ($f === undefined) { $f = { $blk: compile }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f.capNames = capNames; $f.err = err; $f.expr = expr; $f.i = i; $f.longest = longest; $f.matchcap = matchcap; $f.maxCap = maxCap; $f.mode = mode; $f.n = n; $f.prog = prog; $f.re = re; $f.regexp = regexp; $f.$s = $s; $f.$r = $r; return $f;
  29949. };
  29950. Regexp.ptr.prototype.get = function() {
  29951. var _i, _r, _ref, _tuple, m, n, ok, re, t, x, x$1, $s, $r;
  29952. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _tuple = $f._tuple; m = $f.m; n = $f.n; ok = $f.ok; re = $f.re; t = $f.t; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  29953. re = this;
  29954. _r = (x = re.mpool, ((x < 0 || x >= matchPool.length) ? ($throwRuntimeError("index out of range"), undefined) : matchPool[x])).Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  29955. _tuple = $assertType(_r, ptrType$13, true);
  29956. m = _tuple[0];
  29957. ok = _tuple[1];
  29958. if (!ok) {
  29959. m = new machine.ptr(ptrType$11.nil, ptrType$12.nil, new queue.ptr(sliceType$2.nil, sliceType$10.nil), new queue.ptr(sliceType$2.nil, sliceType$10.nil), sliceType$11.nil, false, sliceType$3.nil, new inputs.ptr(new inputBytes.ptr(sliceType$5.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)));
  29960. }
  29961. m.re = re;
  29962. m.p = re.prog;
  29963. if (m.matchcap.$capacity < re.matchcap) {
  29964. m.matchcap = $makeSlice(sliceType$3, re.matchcap);
  29965. _ref = m.pool;
  29966. _i = 0;
  29967. while (true) {
  29968. if (!(_i < _ref.$length)) { break; }
  29969. t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  29970. t.cap = $makeSlice(sliceType$3, re.matchcap);
  29971. _i++;
  29972. }
  29973. }
  29974. n = (x$1 = re.mpool, ((x$1 < 0 || x$1 >= matchSize.length) ? ($throwRuntimeError("index out of range"), undefined) : matchSize[x$1]));
  29975. if (n === 0) {
  29976. n = re.prog.Inst.$length;
  29977. }
  29978. if (m.q0.sparse.$length < n) {
  29979. queue.copy(m.q0, new queue.ptr($makeSlice(sliceType$2, n), $makeSlice(sliceType$10, 0, n)));
  29980. queue.copy(m.q1, new queue.ptr($makeSlice(sliceType$2, n), $makeSlice(sliceType$10, 0, n)));
  29981. }
  29982. $s = -1; return m;
  29983. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.get }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._tuple = _tuple; $f.m = m; $f.n = n; $f.ok = ok; $f.re = re; $f.t = t; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f;
  29984. };
  29985. Regexp.prototype.get = function() { return this.$val.get(); };
  29986. Regexp.ptr.prototype.put = function(m) {
  29987. var m, re, x;
  29988. re = this;
  29989. m.re = ptrType$11.nil;
  29990. m.p = ptrType$12.nil;
  29991. m.inputs.clear();
  29992. (x = re.mpool, ((x < 0 || x >= matchPool.length) ? ($throwRuntimeError("index out of range"), undefined) : matchPool[x])).Put(m);
  29993. };
  29994. Regexp.prototype.put = function(m) { return this.$val.put(m); };
  29995. MustCompile = function(str) {
  29996. var _r, _r$1, _tuple, err, regexp, str, $s, $r;
  29997. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; err = $f.err; regexp = $f.regexp; str = $f.str; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  29998. _r = Compile(str); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  29999. _tuple = _r;
  30000. regexp = _tuple[0];
  30001. err = _tuple[1];
  30002. /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
  30003. /* */ $s = 3; continue;
  30004. /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
  30005. _r$1 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  30006. $panic(new $String("regexp: Compile(" + quote(str) + "): " + _r$1));
  30007. /* } */ case 3:
  30008. $s = -1; return regexp;
  30009. /* */ } return; } if ($f === undefined) { $f = { $blk: MustCompile }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.err = err; $f.regexp = regexp; $f.str = str; $f.$s = $s; $f.$r = $r; return $f;
  30010. };
  30011. $pkg.MustCompile = MustCompile;
  30012. quote = function(s) {
  30013. var s;
  30014. if (strconv.CanBackquote(s)) {
  30015. return "`" + s + "`";
  30016. }
  30017. return strconv.Quote(s);
  30018. };
  30019. Regexp.ptr.prototype.NumSubexp = function() {
  30020. var re;
  30021. re = this;
  30022. return re.numSubexp;
  30023. };
  30024. Regexp.prototype.NumSubexp = function() { return this.$val.NumSubexp(); };
  30025. Regexp.ptr.prototype.SubexpNames = function() {
  30026. var re;
  30027. re = this;
  30028. return re.subexpNames;
  30029. };
  30030. Regexp.prototype.SubexpNames = function() { return this.$val.SubexpNames(); };
  30031. inputString.ptr.prototype.step = function(pos) {
  30032. var c, i, pos;
  30033. i = this;
  30034. if (pos < i.str.length) {
  30035. c = i.str.charCodeAt(pos);
  30036. if (c < 128) {
  30037. return [((c >> 0)), 1];
  30038. }
  30039. return utf8.DecodeRuneInString($substring(i.str, pos));
  30040. }
  30041. return [-1, 0];
  30042. };
  30043. inputString.prototype.step = function(pos) { return this.$val.step(pos); };
  30044. inputString.ptr.prototype.canCheckPrefix = function() {
  30045. var i;
  30046. i = this;
  30047. return true;
  30048. };
  30049. inputString.prototype.canCheckPrefix = function() { return this.$val.canCheckPrefix(); };
  30050. inputString.ptr.prototype.hasPrefix = function(re) {
  30051. var i, re;
  30052. i = this;
  30053. return strings.HasPrefix(i.str, re.prefix);
  30054. };
  30055. inputString.prototype.hasPrefix = function(re) { return this.$val.hasPrefix(re); };
  30056. inputString.ptr.prototype.index = function(re, pos) {
  30057. var i, pos, re;
  30058. i = this;
  30059. return strings.Index($substring(i.str, pos), re.prefix);
  30060. };
  30061. inputString.prototype.index = function(re, pos) { return this.$val.index(re, pos); };
  30062. inputString.ptr.prototype.context = function(pos) {
  30063. var _tmp, _tmp$1, _tuple, _tuple$1, i, pos, r1, r2;
  30064. i = this;
  30065. _tmp = -1;
  30066. _tmp$1 = -1;
  30067. r1 = _tmp;
  30068. r2 = _tmp$1;
  30069. if ((((pos - 1 >> 0) >>> 0)) < ((i.str.length >>> 0))) {
  30070. r1 = ((i.str.charCodeAt((pos - 1 >> 0)) >> 0));
  30071. if (r1 >= 128) {
  30072. _tuple = utf8.DecodeLastRuneInString($substring(i.str, 0, pos));
  30073. r1 = _tuple[0];
  30074. }
  30075. }
  30076. if (((pos >>> 0)) < ((i.str.length >>> 0))) {
  30077. r2 = ((i.str.charCodeAt(pos) >> 0));
  30078. if (r2 >= 128) {
  30079. _tuple$1 = utf8.DecodeRuneInString($substring(i.str, pos));
  30080. r2 = _tuple$1[0];
  30081. }
  30082. }
  30083. return newLazyFlag(r1, r2);
  30084. };
  30085. inputString.prototype.context = function(pos) { return this.$val.context(pos); };
  30086. inputBytes.ptr.prototype.step = function(pos) {
  30087. var c, i, pos, x;
  30088. i = this;
  30089. if (pos < i.str.$length) {
  30090. c = (x = i.str, ((pos < 0 || pos >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pos]));
  30091. if (c < 128) {
  30092. return [((c >> 0)), 1];
  30093. }
  30094. return utf8.DecodeRune($subslice(i.str, pos));
  30095. }
  30096. return [-1, 0];
  30097. };
  30098. inputBytes.prototype.step = function(pos) { return this.$val.step(pos); };
  30099. inputBytes.ptr.prototype.canCheckPrefix = function() {
  30100. var i;
  30101. i = this;
  30102. return true;
  30103. };
  30104. inputBytes.prototype.canCheckPrefix = function() { return this.$val.canCheckPrefix(); };
  30105. inputBytes.ptr.prototype.hasPrefix = function(re) {
  30106. var i, re;
  30107. i = this;
  30108. return bytes.HasPrefix(i.str, re.prefixBytes);
  30109. };
  30110. inputBytes.prototype.hasPrefix = function(re) { return this.$val.hasPrefix(re); };
  30111. inputBytes.ptr.prototype.index = function(re, pos) {
  30112. var i, pos, re;
  30113. i = this;
  30114. return bytes.Index($subslice(i.str, pos), re.prefixBytes);
  30115. };
  30116. inputBytes.prototype.index = function(re, pos) { return this.$val.index(re, pos); };
  30117. inputBytes.ptr.prototype.context = function(pos) {
  30118. var _tmp, _tmp$1, _tuple, _tuple$1, i, pos, r1, r2, x, x$1, x$2;
  30119. i = this;
  30120. _tmp = -1;
  30121. _tmp$1 = -1;
  30122. r1 = _tmp;
  30123. r2 = _tmp$1;
  30124. if ((((pos - 1 >> 0) >>> 0)) < ((i.str.$length >>> 0))) {
  30125. r1 = (((x = i.str, x$1 = pos - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) >> 0));
  30126. if (r1 >= 128) {
  30127. _tuple = utf8.DecodeLastRune($subslice(i.str, 0, pos));
  30128. r1 = _tuple[0];
  30129. }
  30130. }
  30131. if (((pos >>> 0)) < ((i.str.$length >>> 0))) {
  30132. r2 = (((x$2 = i.str, ((pos < 0 || pos >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + pos])) >> 0));
  30133. if (r2 >= 128) {
  30134. _tuple$1 = utf8.DecodeRune($subslice(i.str, pos));
  30135. r2 = _tuple$1[0];
  30136. }
  30137. }
  30138. return newLazyFlag(r1, r2);
  30139. };
  30140. inputBytes.prototype.context = function(pos) { return this.$val.context(pos); };
  30141. inputReader.ptr.prototype.step = function(pos) {
  30142. var _r, _tuple, err, i, pos, r, w, $s, $r;
  30143. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; i = $f.i; pos = $f.pos; r = $f.r; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30144. i = this;
  30145. if (!i.atEOT && !((pos === i.pos))) {
  30146. $s = -1; return [-1, 0];
  30147. }
  30148. _r = i.r.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30149. _tuple = _r;
  30150. r = _tuple[0];
  30151. w = _tuple[1];
  30152. err = _tuple[2];
  30153. if (!($interfaceIsEqual(err, $ifaceNil))) {
  30154. i.atEOT = true;
  30155. $s = -1; return [-1, 0];
  30156. }
  30157. i.pos = i.pos + (w) >> 0;
  30158. $s = -1; return [r, w];
  30159. /* */ } return; } if ($f === undefined) { $f = { $blk: inputReader.ptr.prototype.step }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.i = i; $f.pos = pos; $f.r = r; $f.w = w; $f.$s = $s; $f.$r = $r; return $f;
  30160. };
  30161. inputReader.prototype.step = function(pos) { return this.$val.step(pos); };
  30162. inputReader.ptr.prototype.canCheckPrefix = function() {
  30163. var i;
  30164. i = this;
  30165. return false;
  30166. };
  30167. inputReader.prototype.canCheckPrefix = function() { return this.$val.canCheckPrefix(); };
  30168. inputReader.ptr.prototype.hasPrefix = function(re) {
  30169. var i, re;
  30170. i = this;
  30171. return false;
  30172. };
  30173. inputReader.prototype.hasPrefix = function(re) { return this.$val.hasPrefix(re); };
  30174. inputReader.ptr.prototype.index = function(re, pos) {
  30175. var i, pos, re;
  30176. i = this;
  30177. return -1;
  30178. };
  30179. inputReader.prototype.index = function(re, pos) { return this.$val.index(re, pos); };
  30180. inputReader.ptr.prototype.context = function(pos) {
  30181. var i, pos;
  30182. i = this;
  30183. return new lazyFlag(0, 0);
  30184. };
  30185. inputReader.prototype.context = function(pos) { return this.$val.context(pos); };
  30186. Regexp.ptr.prototype.LiteralPrefix = function() {
  30187. var _tmp, _tmp$1, complete, prefix, re;
  30188. prefix = "";
  30189. complete = false;
  30190. re = this;
  30191. _tmp = re.prefix;
  30192. _tmp$1 = re.prefixComplete;
  30193. prefix = _tmp;
  30194. complete = _tmp$1;
  30195. return [prefix, complete];
  30196. };
  30197. Regexp.prototype.LiteralPrefix = function() { return this.$val.LiteralPrefix(); };
  30198. Regexp.ptr.prototype.MatchReader = function(r) {
  30199. var _r, r, re, $s, $r;
  30200. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; r = $f.r; re = $f.re; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30201. re = this;
  30202. _r = re.doMatch(r, sliceType$5.nil, ""); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30203. $s = -1; return _r;
  30204. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.MatchReader }; } $f._r = _r; $f.r = r; $f.re = re; $f.$s = $s; $f.$r = $r; return $f;
  30205. };
  30206. Regexp.prototype.MatchReader = function(r) { return this.$val.MatchReader(r); };
  30207. Regexp.ptr.prototype.MatchString = function(s) {
  30208. var _r, re, s, $s, $r;
  30209. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; re = $f.re; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30210. re = this;
  30211. _r = re.doMatch($ifaceNil, sliceType$5.nil, s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30212. $s = -1; return _r;
  30213. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.MatchString }; } $f._r = _r; $f.re = re; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  30214. };
  30215. Regexp.prototype.MatchString = function(s) { return this.$val.MatchString(s); };
  30216. Regexp.ptr.prototype.Match = function(b) {
  30217. var _r, b, re, $s, $r;
  30218. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; re = $f.re; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30219. re = this;
  30220. _r = re.doMatch($ifaceNil, b, ""); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30221. $s = -1; return _r;
  30222. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.Match }; } $f._r = _r; $f.b = b; $f.re = re; $f.$s = $s; $f.$r = $r; return $f;
  30223. };
  30224. Regexp.prototype.Match = function(b) { return this.$val.Match(b); };
  30225. Regexp.ptr.prototype.ReplaceAllString = function(src, repl) {
  30226. var _r, b, n, re, repl, src, $s, $r;
  30227. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; n = $f.n; re = $f.re; repl = $f.repl; src = $f.src; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30228. re = [re];
  30229. repl = [repl];
  30230. src = [src];
  30231. re[0] = this;
  30232. n = 2;
  30233. if (strings.Contains(repl[0], "$")) {
  30234. n = $imul(2, ((re[0].numSubexp + 1 >> 0)));
  30235. }
  30236. _r = re[0].replaceAll(sliceType$5.nil, src[0], n, (function(re, repl, src) { return function(dst, match) {
  30237. var dst, match;
  30238. return re[0].expand(dst, repl[0], sliceType$5.nil, src[0], match);
  30239. }; })(re, repl, src)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30240. b = _r;
  30241. $s = -1; return ($bytesToString(b));
  30242. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.ReplaceAllString }; } $f._r = _r; $f.b = b; $f.n = n; $f.re = re; $f.repl = repl; $f.src = src; $f.$s = $s; $f.$r = $r; return $f;
  30243. };
  30244. Regexp.prototype.ReplaceAllString = function(src, repl) { return this.$val.ReplaceAllString(src, repl); };
  30245. Regexp.ptr.prototype.ReplaceAllLiteralString = function(src, repl) {
  30246. var _r, re, repl, src, $s, $r;
  30247. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; re = $f.re; repl = $f.repl; src = $f.src; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30248. repl = [repl];
  30249. re = this;
  30250. _r = re.replaceAll(sliceType$5.nil, src, 2, (function(repl) { return function(dst, match) {
  30251. var dst, match;
  30252. return $appendSlice(dst, repl[0]);
  30253. }; })(repl)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30254. $s = -1; return ($bytesToString(_r));
  30255. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.ReplaceAllLiteralString }; } $f._r = _r; $f.re = re; $f.repl = repl; $f.src = src; $f.$s = $s; $f.$r = $r; return $f;
  30256. };
  30257. Regexp.prototype.ReplaceAllLiteralString = function(src, repl) { return this.$val.ReplaceAllLiteralString(src, repl); };
  30258. Regexp.ptr.prototype.ReplaceAllStringFunc = function(src, repl) {
  30259. var _r, b, re, repl, src, $s, $r;
  30260. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; re = $f.re; repl = $f.repl; src = $f.src; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30261. repl = [repl];
  30262. src = [src];
  30263. re = this;
  30264. _r = re.replaceAll(sliceType$5.nil, src[0], 2, (function(repl, src) { return function $b(dst, match) {
  30265. var _arg, _arg$1, _r, dst, match, $s, $r;
  30266. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; dst = $f.dst; match = $f.match; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30267. _arg = dst;
  30268. _r = repl[0]($substring(src[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30269. _arg$1 = _r;
  30270. $s = -1; return $appendSlice(_arg, _arg$1);
  30271. /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f.dst = dst; $f.match = match; $f.$s = $s; $f.$r = $r; return $f;
  30272. }; })(repl, src)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30273. b = _r;
  30274. $s = -1; return ($bytesToString(b));
  30275. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.ReplaceAllStringFunc }; } $f._r = _r; $f.b = b; $f.re = re; $f.repl = repl; $f.src = src; $f.$s = $s; $f.$r = $r; return $f;
  30276. };
  30277. Regexp.prototype.ReplaceAllStringFunc = function(src, repl) { return this.$val.ReplaceAllStringFunc(src, repl); };
  30278. Regexp.ptr.prototype.replaceAll = function(bsrc, src, nmatch, repl) {
  30279. var _r, _r$1, _tuple, _tuple$1, a, bsrc, buf, dstCap, endPos, lastMatchEnd, nmatch, re, repl, searchPos, src, width, $s, $r;
  30280. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; a = $f.a; bsrc = $f.bsrc; buf = $f.buf; dstCap = $f.dstCap; endPos = $f.endPos; lastMatchEnd = $f.lastMatchEnd; nmatch = $f.nmatch; re = $f.re; repl = $f.repl; searchPos = $f.searchPos; src = $f.src; width = $f.width; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30281. re = this;
  30282. lastMatchEnd = 0;
  30283. searchPos = 0;
  30284. buf = sliceType$5.nil;
  30285. endPos = 0;
  30286. if (!(bsrc === sliceType$5.nil)) {
  30287. endPos = bsrc.$length;
  30288. } else {
  30289. endPos = src.length;
  30290. }
  30291. if (nmatch > re.prog.NumCap) {
  30292. nmatch = re.prog.NumCap;
  30293. }
  30294. dstCap = arrayType$3.zero();
  30295. /* while (true) { */ case 1:
  30296. /* if (!(searchPos <= endPos)) { break; } */ if(!(searchPos <= endPos)) { $s = 2; continue; }
  30297. _r = re.doExecute($ifaceNil, bsrc, src, searchPos, nmatch, $subslice(new sliceType$3(dstCap), 0, 0)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30298. a = _r;
  30299. if (a.$length === 0) {
  30300. /* break; */ $s = 2; continue;
  30301. }
  30302. if (!(bsrc === sliceType$5.nil)) {
  30303. buf = $appendSlice(buf, $subslice(bsrc, lastMatchEnd, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0])));
  30304. } else {
  30305. buf = $appendSlice(buf, $substring(src, lastMatchEnd, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0])));
  30306. }
  30307. /* */ if ((1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]) > lastMatchEnd || ((0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]) === 0)) { $s = 4; continue; }
  30308. /* */ $s = 5; continue;
  30309. /* if ((1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]) > lastMatchEnd || ((0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]) === 0)) { */ case 4:
  30310. _r$1 = repl(buf, a); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  30311. buf = _r$1;
  30312. /* } */ case 5:
  30313. lastMatchEnd = (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]);
  30314. width = 0;
  30315. if (!(bsrc === sliceType$5.nil)) {
  30316. _tuple = utf8.DecodeRune($subslice(bsrc, searchPos));
  30317. width = _tuple[1];
  30318. } else {
  30319. _tuple$1 = utf8.DecodeRuneInString($substring(src, searchPos));
  30320. width = _tuple$1[1];
  30321. }
  30322. if ((searchPos + width >> 0) > (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])) {
  30323. searchPos = searchPos + (width) >> 0;
  30324. } else if ((searchPos + 1 >> 0) > (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])) {
  30325. searchPos = searchPos + (1) >> 0;
  30326. } else {
  30327. searchPos = (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]);
  30328. }
  30329. /* } */ $s = 1; continue; case 2:
  30330. if (!(bsrc === sliceType$5.nil)) {
  30331. buf = $appendSlice(buf, $subslice(bsrc, lastMatchEnd));
  30332. } else {
  30333. buf = $appendSlice(buf, $substring(src, lastMatchEnd));
  30334. }
  30335. $s = -1; return buf;
  30336. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.replaceAll }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.a = a; $f.bsrc = bsrc; $f.buf = buf; $f.dstCap = dstCap; $f.endPos = endPos; $f.lastMatchEnd = lastMatchEnd; $f.nmatch = nmatch; $f.re = re; $f.repl = repl; $f.searchPos = searchPos; $f.src = src; $f.width = width; $f.$s = $s; $f.$r = $r; return $f;
  30337. };
  30338. Regexp.prototype.replaceAll = function(bsrc, src, nmatch, repl) { return this.$val.replaceAll(bsrc, src, nmatch, repl); };
  30339. Regexp.ptr.prototype.ReplaceAll = function(src, repl) {
  30340. var _r, b, n, re, repl, src, srepl, $s, $r;
  30341. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; n = $f.n; re = $f.re; repl = $f.repl; src = $f.src; srepl = $f.srepl; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30342. re = [re];
  30343. repl = [repl];
  30344. src = [src];
  30345. srepl = [srepl];
  30346. re[0] = this;
  30347. n = 2;
  30348. if (bytes.IndexByte(repl[0], 36) >= 0) {
  30349. n = $imul(2, ((re[0].numSubexp + 1 >> 0)));
  30350. }
  30351. srepl[0] = "";
  30352. _r = re[0].replaceAll(src[0], "", n, (function(re, repl, src, srepl) { return function(dst, match) {
  30353. var dst, match;
  30354. if (!((srepl[0].length === repl[0].$length))) {
  30355. srepl[0] = ($bytesToString(repl[0]));
  30356. }
  30357. return re[0].expand(dst, srepl[0], src[0], "", match);
  30358. }; })(re, repl, src, srepl)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30359. b = _r;
  30360. $s = -1; return b;
  30361. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.ReplaceAll }; } $f._r = _r; $f.b = b; $f.n = n; $f.re = re; $f.repl = repl; $f.src = src; $f.srepl = srepl; $f.$s = $s; $f.$r = $r; return $f;
  30362. };
  30363. Regexp.prototype.ReplaceAll = function(src, repl) { return this.$val.ReplaceAll(src, repl); };
  30364. Regexp.ptr.prototype.ReplaceAllLiteral = function(src, repl) {
  30365. var _r, re, repl, src, $s, $r;
  30366. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; re = $f.re; repl = $f.repl; src = $f.src; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30367. repl = [repl];
  30368. re = this;
  30369. _r = re.replaceAll(src, "", 2, (function(repl) { return function(dst, match) {
  30370. var dst, match;
  30371. return $appendSlice(dst, repl[0]);
  30372. }; })(repl)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30373. $s = -1; return _r;
  30374. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.ReplaceAllLiteral }; } $f._r = _r; $f.re = re; $f.repl = repl; $f.src = src; $f.$s = $s; $f.$r = $r; return $f;
  30375. };
  30376. Regexp.prototype.ReplaceAllLiteral = function(src, repl) { return this.$val.ReplaceAllLiteral(src, repl); };
  30377. Regexp.ptr.prototype.ReplaceAllFunc = function(src, repl) {
  30378. var _r, re, repl, src, $s, $r;
  30379. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; re = $f.re; repl = $f.repl; src = $f.src; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30380. repl = [repl];
  30381. src = [src];
  30382. re = this;
  30383. _r = re.replaceAll(src[0], "", 2, (function(repl, src) { return function $b(dst, match) {
  30384. var _arg, _arg$1, _r, dst, match, $s, $r;
  30385. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; dst = $f.dst; match = $f.match; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30386. _arg = dst;
  30387. _r = repl[0]($subslice(src[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30388. _arg$1 = _r;
  30389. $s = -1; return $appendSlice(_arg, _arg$1);
  30390. /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f.dst = dst; $f.match = match; $f.$s = $s; $f.$r = $r; return $f;
  30391. }; })(repl, src)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30392. $s = -1; return _r;
  30393. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.ReplaceAllFunc }; } $f._r = _r; $f.re = re; $f.repl = repl; $f.src = src; $f.$s = $s; $f.$r = $r; return $f;
  30394. };
  30395. Regexp.prototype.ReplaceAllFunc = function(src, repl) { return this.$val.ReplaceAllFunc(src, repl); };
  30396. init = function() {
  30397. var _i, _index, _q, _r, _ref, b, y;
  30398. _ref = (new sliceType$5($stringToBytes("\\.+*?()|[]{}^$")));
  30399. _i = 0;
  30400. while (true) {
  30401. if (!(_i < _ref.$length)) { break; }
  30402. b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  30403. _index = (_r = b % 16, _r === _r ? _r : $throwRuntimeError("integer divide by zero"));
  30404. ((_index < 0 || _index >= specialBytes.length) ? ($throwRuntimeError("index out of range"), undefined) : specialBytes[_index] = ((((_index < 0 || _index >= specialBytes.length) ? ($throwRuntimeError("index out of range"), undefined) : specialBytes[_index]) | (((y = ((_q = b / 16, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) << 24 >>> 24))) >>> 0));
  30405. _i++;
  30406. }
  30407. };
  30408. Regexp.ptr.prototype.pad = function(a) {
  30409. var a, n, re;
  30410. re = this;
  30411. if (a === sliceType$3.nil) {
  30412. return sliceType$3.nil;
  30413. }
  30414. n = $imul(((1 + re.numSubexp >> 0)), 2);
  30415. while (true) {
  30416. if (!(a.$length < n)) { break; }
  30417. a = $append(a, -1);
  30418. }
  30419. return a;
  30420. };
  30421. Regexp.prototype.pad = function(a) { return this.$val.pad(a); };
  30422. Regexp.ptr.prototype.allMatches = function(s, b, n, deliver) {
  30423. var _r, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, accept, b, deliver, end, i, matches, n, pos, prevMatchEnd, re, s, width, $s, $r;
  30424. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; accept = $f.accept; b = $f.b; deliver = $f.deliver; end = $f.end; i = $f.i; matches = $f.matches; n = $f.n; pos = $f.pos; prevMatchEnd = $f.prevMatchEnd; re = $f.re; s = $f.s; width = $f.width; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30425. re = this;
  30426. end = 0;
  30427. if (b === sliceType$5.nil) {
  30428. end = s.length;
  30429. } else {
  30430. end = b.$length;
  30431. }
  30432. _tmp = 0;
  30433. _tmp$1 = 0;
  30434. _tmp$2 = -1;
  30435. pos = _tmp;
  30436. i = _tmp$1;
  30437. prevMatchEnd = _tmp$2;
  30438. /* while (true) { */ case 1:
  30439. /* if (!(i < n && pos <= end)) { break; } */ if(!(i < n && pos <= end)) { $s = 2; continue; }
  30440. _r = re.doExecute($ifaceNil, b, s, pos, re.prog.NumCap, sliceType$3.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30441. matches = _r;
  30442. if (matches.$length === 0) {
  30443. /* break; */ $s = 2; continue;
  30444. }
  30445. accept = true;
  30446. if ((1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1]) === pos) {
  30447. if ((0 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 0]) === prevMatchEnd) {
  30448. accept = false;
  30449. }
  30450. width = 0;
  30451. if (b === sliceType$5.nil) {
  30452. _tuple = utf8.DecodeRuneInString($substring(s, pos, end));
  30453. width = _tuple[1];
  30454. } else {
  30455. _tuple$1 = utf8.DecodeRune($subslice(b, pos, end));
  30456. width = _tuple$1[1];
  30457. }
  30458. if (width > 0) {
  30459. pos = pos + (width) >> 0;
  30460. } else {
  30461. pos = end + 1 >> 0;
  30462. }
  30463. } else {
  30464. pos = (1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1]);
  30465. }
  30466. prevMatchEnd = (1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1]);
  30467. /* */ if (accept) { $s = 4; continue; }
  30468. /* */ $s = 5; continue;
  30469. /* if (accept) { */ case 4:
  30470. $r = deliver(re.pad(matches)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  30471. i = i + (1) >> 0;
  30472. /* } */ case 5:
  30473. /* } */ $s = 1; continue; case 2:
  30474. $s = -1; return;
  30475. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.allMatches }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.accept = accept; $f.b = b; $f.deliver = deliver; $f.end = end; $f.i = i; $f.matches = matches; $f.n = n; $f.pos = pos; $f.prevMatchEnd = prevMatchEnd; $f.re = re; $f.s = s; $f.width = width; $f.$s = $s; $f.$r = $r; return $f;
  30476. };
  30477. Regexp.prototype.allMatches = function(s, b, n, deliver) { return this.$val.allMatches(s, b, n, deliver); };
  30478. Regexp.ptr.prototype.Find = function(b) {
  30479. var _r, a, b, dstCap, re, $s, $r;
  30480. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; b = $f.b; dstCap = $f.dstCap; re = $f.re; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30481. re = this;
  30482. dstCap = arrayType$3.zero();
  30483. _r = re.doExecute($ifaceNil, b, "", 0, 2, $subslice(new sliceType$3(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30484. a = _r;
  30485. if (a === sliceType$3.nil) {
  30486. $s = -1; return sliceType$5.nil;
  30487. }
  30488. $s = -1; return $subslice(b, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]), (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]));
  30489. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.Find }; } $f._r = _r; $f.a = a; $f.b = b; $f.dstCap = dstCap; $f.re = re; $f.$s = $s; $f.$r = $r; return $f;
  30490. };
  30491. Regexp.prototype.Find = function(b) { return this.$val.Find(b); };
  30492. Regexp.ptr.prototype.FindIndex = function(b) {
  30493. var _r, a, b, loc, re, $s, $r;
  30494. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; b = $f.b; loc = $f.loc; re = $f.re; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30495. loc = sliceType$3.nil;
  30496. re = this;
  30497. _r = re.doExecute($ifaceNil, b, "", 0, 2, sliceType$3.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30498. a = _r;
  30499. if (a === sliceType$3.nil) {
  30500. loc = sliceType$3.nil;
  30501. $s = -1; return loc;
  30502. }
  30503. loc = $subslice(a, 0, 2);
  30504. $s = -1; return loc;
  30505. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindIndex }; } $f._r = _r; $f.a = a; $f.b = b; $f.loc = loc; $f.re = re; $f.$s = $s; $f.$r = $r; return $f;
  30506. };
  30507. Regexp.prototype.FindIndex = function(b) { return this.$val.FindIndex(b); };
  30508. Regexp.ptr.prototype.FindString = function(s) {
  30509. var _r, a, dstCap, re, s, $s, $r;
  30510. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; dstCap = $f.dstCap; re = $f.re; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30511. re = this;
  30512. dstCap = arrayType$3.zero();
  30513. _r = re.doExecute($ifaceNil, sliceType$5.nil, s, 0, 2, $subslice(new sliceType$3(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30514. a = _r;
  30515. if (a === sliceType$3.nil) {
  30516. $s = -1; return "";
  30517. }
  30518. $s = -1; return $substring(s, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]), (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]));
  30519. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindString }; } $f._r = _r; $f.a = a; $f.dstCap = dstCap; $f.re = re; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  30520. };
  30521. Regexp.prototype.FindString = function(s) { return this.$val.FindString(s); };
  30522. Regexp.ptr.prototype.FindStringIndex = function(s) {
  30523. var _r, a, loc, re, s, $s, $r;
  30524. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; loc = $f.loc; re = $f.re; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30525. loc = sliceType$3.nil;
  30526. re = this;
  30527. _r = re.doExecute($ifaceNil, sliceType$5.nil, s, 0, 2, sliceType$3.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30528. a = _r;
  30529. if (a === sliceType$3.nil) {
  30530. loc = sliceType$3.nil;
  30531. $s = -1; return loc;
  30532. }
  30533. loc = $subslice(a, 0, 2);
  30534. $s = -1; return loc;
  30535. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindStringIndex }; } $f._r = _r; $f.a = a; $f.loc = loc; $f.re = re; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  30536. };
  30537. Regexp.prototype.FindStringIndex = function(s) { return this.$val.FindStringIndex(s); };
  30538. Regexp.ptr.prototype.FindReaderIndex = function(r) {
  30539. var _r, a, loc, r, re, $s, $r;
  30540. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; loc = $f.loc; r = $f.r; re = $f.re; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30541. loc = sliceType$3.nil;
  30542. re = this;
  30543. _r = re.doExecute(r, sliceType$5.nil, "", 0, 2, sliceType$3.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30544. a = _r;
  30545. if (a === sliceType$3.nil) {
  30546. loc = sliceType$3.nil;
  30547. $s = -1; return loc;
  30548. }
  30549. loc = $subslice(a, 0, 2);
  30550. $s = -1; return loc;
  30551. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindReaderIndex }; } $f._r = _r; $f.a = a; $f.loc = loc; $f.r = r; $f.re = re; $f.$s = $s; $f.$r = $r; return $f;
  30552. };
  30553. Regexp.prototype.FindReaderIndex = function(r) { return this.$val.FindReaderIndex(r); };
  30554. Regexp.ptr.prototype.FindSubmatch = function(b) {
  30555. var _i, _r, _ref, a, b, dstCap, i, re, ret, x, x$1, x$2, $s, $r;
  30556. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; a = $f.a; b = $f.b; dstCap = $f.dstCap; i = $f.i; re = $f.re; ret = $f.ret; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30557. re = this;
  30558. dstCap = arrayType$4.zero();
  30559. _r = re.doExecute($ifaceNil, b, "", 0, re.prog.NumCap, $subslice(new sliceType$3(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30560. a = _r;
  30561. if (a === sliceType$3.nil) {
  30562. $s = -1; return sliceType$12.nil;
  30563. }
  30564. ret = $makeSlice(sliceType$12, (1 + re.numSubexp >> 0));
  30565. _ref = ret;
  30566. _i = 0;
  30567. while (true) {
  30568. if (!(_i < _ref.$length)) { break; }
  30569. i = _i;
  30570. if (($imul(2, i)) < a.$length && (x = $imul(2, i), ((x < 0 || x >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x])) >= 0) {
  30571. ((i < 0 || i >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i] = $subslice(b, (x$1 = $imul(2, i), ((x$1 < 0 || x$1 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$1])), (x$2 = ($imul(2, i)) + 1 >> 0, ((x$2 < 0 || x$2 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$2]))));
  30572. }
  30573. _i++;
  30574. }
  30575. $s = -1; return ret;
  30576. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindSubmatch }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.a = a; $f.b = b; $f.dstCap = dstCap; $f.i = i; $f.re = re; $f.ret = ret; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f;
  30577. };
  30578. Regexp.prototype.FindSubmatch = function(b) { return this.$val.FindSubmatch(b); };
  30579. Regexp.ptr.prototype.Expand = function(dst, template, src, match) {
  30580. var dst, match, re, src, template;
  30581. re = this;
  30582. return re.expand(dst, ($bytesToString(template)), src, "", match);
  30583. };
  30584. Regexp.prototype.Expand = function(dst, template, src, match) { return this.$val.Expand(dst, template, src, match); };
  30585. Regexp.ptr.prototype.ExpandString = function(dst, template, src, match) {
  30586. var dst, match, re, src, template;
  30587. re = this;
  30588. return re.expand(dst, template, sliceType$5.nil, src, match);
  30589. };
  30590. Regexp.prototype.ExpandString = function(dst, template, src, match) { return this.$val.ExpandString(dst, template, src, match); };
  30591. Regexp.ptr.prototype.expand = function(dst, template, bsrc, src, match) {
  30592. var _i, _ref, _tuple, bsrc, dst, i, i$1, match, name, namei, num, ok, re, rest, src, template, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
  30593. re = this;
  30594. while (true) {
  30595. if (!(template.length > 0)) { break; }
  30596. i = strings.Index(template, "$");
  30597. if (i < 0) {
  30598. break;
  30599. }
  30600. dst = $appendSlice(dst, $substring(template, 0, i));
  30601. template = $substring(template, i);
  30602. if (template.length > 1 && (template.charCodeAt(1) === 36)) {
  30603. dst = $append(dst, 36);
  30604. template = $substring(template, 2);
  30605. continue;
  30606. }
  30607. _tuple = extract(template);
  30608. name = _tuple[0];
  30609. num = _tuple[1];
  30610. rest = _tuple[2];
  30611. ok = _tuple[3];
  30612. if (!ok) {
  30613. dst = $append(dst, 36);
  30614. template = $substring(template, 1);
  30615. continue;
  30616. }
  30617. template = rest;
  30618. if (num >= 0) {
  30619. if ((($imul(2, num)) + 1 >> 0) < match.$length && (x = $imul(2, num), ((x < 0 || x >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x])) >= 0) {
  30620. if (!(bsrc === sliceType$5.nil)) {
  30621. dst = $appendSlice(dst, $subslice(bsrc, (x$1 = $imul(2, num), ((x$1 < 0 || x$1 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$1])), (x$2 = ($imul(2, num)) + 1 >> 0, ((x$2 < 0 || x$2 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$2]))));
  30622. } else {
  30623. dst = $appendSlice(dst, $substring(src, (x$3 = $imul(2, num), ((x$3 < 0 || x$3 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$3])), (x$4 = ($imul(2, num)) + 1 >> 0, ((x$4 < 0 || x$4 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$4]))));
  30624. }
  30625. }
  30626. } else {
  30627. _ref = re.subexpNames;
  30628. _i = 0;
  30629. while (true) {
  30630. if (!(_i < _ref.$length)) { break; }
  30631. i$1 = _i;
  30632. namei = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  30633. if (name === namei && (($imul(2, i$1)) + 1 >> 0) < match.$length && (x$5 = $imul(2, i$1), ((x$5 < 0 || x$5 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$5])) >= 0) {
  30634. if (!(bsrc === sliceType$5.nil)) {
  30635. dst = $appendSlice(dst, $subslice(bsrc, (x$6 = $imul(2, i$1), ((x$6 < 0 || x$6 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$6])), (x$7 = ($imul(2, i$1)) + 1 >> 0, ((x$7 < 0 || x$7 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$7]))));
  30636. } else {
  30637. dst = $appendSlice(dst, $substring(src, (x$8 = $imul(2, i$1), ((x$8 < 0 || x$8 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$8])), (x$9 = ($imul(2, i$1)) + 1 >> 0, ((x$9 < 0 || x$9 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$9]))));
  30638. }
  30639. break;
  30640. }
  30641. _i++;
  30642. }
  30643. }
  30644. }
  30645. dst = $appendSlice(dst, template);
  30646. return dst;
  30647. };
  30648. Regexp.prototype.expand = function(dst, template, bsrc, src, match) { return this.$val.expand(dst, template, bsrc, src, match); };
  30649. extract = function(str) {
  30650. var _tuple, brace, i, i$1, name, num, ok, rest, rune, size, str;
  30651. name = "";
  30652. num = 0;
  30653. rest = "";
  30654. ok = false;
  30655. if (str.length < 2 || !((str.charCodeAt(0) === 36))) {
  30656. return [name, num, rest, ok];
  30657. }
  30658. brace = false;
  30659. if (str.charCodeAt(1) === 123) {
  30660. brace = true;
  30661. str = $substring(str, 2);
  30662. } else {
  30663. str = $substring(str, 1);
  30664. }
  30665. i = 0;
  30666. while (true) {
  30667. if (!(i < str.length)) { break; }
  30668. _tuple = utf8.DecodeRuneInString($substring(str, i));
  30669. rune = _tuple[0];
  30670. size = _tuple[1];
  30671. if (!unicode.IsLetter(rune) && !unicode.IsDigit(rune) && !((rune === 95))) {
  30672. break;
  30673. }
  30674. i = i + (size) >> 0;
  30675. }
  30676. if (i === 0) {
  30677. return [name, num, rest, ok];
  30678. }
  30679. name = $substring(str, 0, i);
  30680. if (brace) {
  30681. if (i >= str.length || !((str.charCodeAt(i) === 125))) {
  30682. return [name, num, rest, ok];
  30683. }
  30684. i = i + (1) >> 0;
  30685. }
  30686. num = 0;
  30687. i$1 = 0;
  30688. while (true) {
  30689. if (!(i$1 < name.length)) { break; }
  30690. if (name.charCodeAt(i$1) < 48 || 57 < name.charCodeAt(i$1) || num >= 100000000) {
  30691. num = -1;
  30692. break;
  30693. }
  30694. num = (($imul(num, 10)) + ((name.charCodeAt(i$1) >> 0)) >> 0) - 48 >> 0;
  30695. i$1 = i$1 + (1) >> 0;
  30696. }
  30697. if ((name.charCodeAt(0) === 48) && name.length > 1) {
  30698. num = -1;
  30699. }
  30700. rest = $substring(str, i);
  30701. ok = true;
  30702. return [name, num, rest, ok];
  30703. };
  30704. Regexp.ptr.prototype.FindSubmatchIndex = function(b) {
  30705. var _r, _r$1, b, re, $s, $r;
  30706. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; b = $f.b; re = $f.re; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30707. re = this;
  30708. _r = re.doExecute($ifaceNil, b, "", 0, re.prog.NumCap, sliceType$3.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30709. _r$1 = re.pad(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  30710. $s = -1; return _r$1;
  30711. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindSubmatchIndex }; } $f._r = _r; $f._r$1 = _r$1; $f.b = b; $f.re = re; $f.$s = $s; $f.$r = $r; return $f;
  30712. };
  30713. Regexp.prototype.FindSubmatchIndex = function(b) { return this.$val.FindSubmatchIndex(b); };
  30714. Regexp.ptr.prototype.FindStringSubmatch = function(s) {
  30715. var _i, _r, _ref, a, dstCap, i, re, ret, s, x, x$1, x$2, $s, $r;
  30716. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; a = $f.a; dstCap = $f.dstCap; i = $f.i; re = $f.re; ret = $f.ret; s = $f.s; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30717. re = this;
  30718. dstCap = arrayType$4.zero();
  30719. _r = re.doExecute($ifaceNil, sliceType$5.nil, s, 0, re.prog.NumCap, $subslice(new sliceType$3(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30720. a = _r;
  30721. if (a === sliceType$3.nil) {
  30722. $s = -1; return sliceType$9.nil;
  30723. }
  30724. ret = $makeSlice(sliceType$9, (1 + re.numSubexp >> 0));
  30725. _ref = ret;
  30726. _i = 0;
  30727. while (true) {
  30728. if (!(_i < _ref.$length)) { break; }
  30729. i = _i;
  30730. if (($imul(2, i)) < a.$length && (x = $imul(2, i), ((x < 0 || x >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x])) >= 0) {
  30731. ((i < 0 || i >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i] = $substring(s, (x$1 = $imul(2, i), ((x$1 < 0 || x$1 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$1])), (x$2 = ($imul(2, i)) + 1 >> 0, ((x$2 < 0 || x$2 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$2]))));
  30732. }
  30733. _i++;
  30734. }
  30735. $s = -1; return ret;
  30736. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindStringSubmatch }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.a = a; $f.dstCap = dstCap; $f.i = i; $f.re = re; $f.ret = ret; $f.s = s; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f;
  30737. };
  30738. Regexp.prototype.FindStringSubmatch = function(s) { return this.$val.FindStringSubmatch(s); };
  30739. Regexp.ptr.prototype.FindStringSubmatchIndex = function(s) {
  30740. var _r, _r$1, re, s, $s, $r;
  30741. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; re = $f.re; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30742. re = this;
  30743. _r = re.doExecute($ifaceNil, sliceType$5.nil, s, 0, re.prog.NumCap, sliceType$3.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30744. _r$1 = re.pad(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  30745. $s = -1; return _r$1;
  30746. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindStringSubmatchIndex }; } $f._r = _r; $f._r$1 = _r$1; $f.re = re; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  30747. };
  30748. Regexp.prototype.FindStringSubmatchIndex = function(s) { return this.$val.FindStringSubmatchIndex(s); };
  30749. Regexp.ptr.prototype.FindReaderSubmatchIndex = function(r) {
  30750. var _r, _r$1, r, re, $s, $r;
  30751. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; r = $f.r; re = $f.re; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30752. re = this;
  30753. _r = re.doExecute(r, sliceType$5.nil, "", 0, re.prog.NumCap, sliceType$3.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30754. _r$1 = re.pad(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  30755. $s = -1; return _r$1;
  30756. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindReaderSubmatchIndex }; } $f._r = _r; $f._r$1 = _r$1; $f.r = r; $f.re = re; $f.$s = $s; $f.$r = $r; return $f;
  30757. };
  30758. Regexp.prototype.FindReaderSubmatchIndex = function(r) { return this.$val.FindReaderSubmatchIndex(r); };
  30759. Regexp.ptr.prototype.FindAll = function(b, n) {
  30760. var b, n, re, result, $s, $r;
  30761. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; b = $f.b; n = $f.n; re = $f.re; result = $f.result; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30762. b = [b];
  30763. result = [result];
  30764. re = this;
  30765. if (n < 0) {
  30766. n = b[0].$length + 1 >> 0;
  30767. }
  30768. result[0] = sliceType$12.nil;
  30769. $r = re.allMatches("", b[0], n, (function(b, result) { return function(match) {
  30770. var match;
  30771. if (result[0] === sliceType$12.nil) {
  30772. result[0] = $makeSlice(sliceType$12, 0, 10);
  30773. }
  30774. result[0] = $append(result[0], $subslice(b[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1])));
  30775. }; })(b, result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  30776. $s = -1; return result[0];
  30777. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindAll }; } $f.b = b; $f.n = n; $f.re = re; $f.result = result; $f.$s = $s; $f.$r = $r; return $f;
  30778. };
  30779. Regexp.prototype.FindAll = function(b, n) { return this.$val.FindAll(b, n); };
  30780. Regexp.ptr.prototype.FindAllIndex = function(b, n) {
  30781. var b, n, re, result, $s, $r;
  30782. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; b = $f.b; n = $f.n; re = $f.re; result = $f.result; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30783. result = [result];
  30784. re = this;
  30785. if (n < 0) {
  30786. n = b.$length + 1 >> 0;
  30787. }
  30788. result[0] = sliceType$13.nil;
  30789. $r = re.allMatches("", b, n, (function(result) { return function(match) {
  30790. var match;
  30791. if (result[0] === sliceType$13.nil) {
  30792. result[0] = $makeSlice(sliceType$13, 0, 10);
  30793. }
  30794. result[0] = $append(result[0], $subslice(match, 0, 2));
  30795. }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  30796. $s = -1; return result[0];
  30797. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindAllIndex }; } $f.b = b; $f.n = n; $f.re = re; $f.result = result; $f.$s = $s; $f.$r = $r; return $f;
  30798. };
  30799. Regexp.prototype.FindAllIndex = function(b, n) { return this.$val.FindAllIndex(b, n); };
  30800. Regexp.ptr.prototype.FindAllString = function(s, n) {
  30801. var n, re, result, s, $s, $r;
  30802. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; n = $f.n; re = $f.re; result = $f.result; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30803. result = [result];
  30804. s = [s];
  30805. re = this;
  30806. if (n < 0) {
  30807. n = s[0].length + 1 >> 0;
  30808. }
  30809. result[0] = sliceType$9.nil;
  30810. $r = re.allMatches(s[0], sliceType$5.nil, n, (function(result, s) { return function(match) {
  30811. var match;
  30812. if (result[0] === sliceType$9.nil) {
  30813. result[0] = $makeSlice(sliceType$9, 0, 10);
  30814. }
  30815. result[0] = $append(result[0], $substring(s[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1])));
  30816. }; })(result, s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  30817. $s = -1; return result[0];
  30818. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindAllString }; } $f.n = n; $f.re = re; $f.result = result; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  30819. };
  30820. Regexp.prototype.FindAllString = function(s, n) { return this.$val.FindAllString(s, n); };
  30821. Regexp.ptr.prototype.FindAllStringIndex = function(s, n) {
  30822. var n, re, result, s, $s, $r;
  30823. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; n = $f.n; re = $f.re; result = $f.result; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30824. result = [result];
  30825. re = this;
  30826. if (n < 0) {
  30827. n = s.length + 1 >> 0;
  30828. }
  30829. result[0] = sliceType$13.nil;
  30830. $r = re.allMatches(s, sliceType$5.nil, n, (function(result) { return function(match) {
  30831. var match;
  30832. if (result[0] === sliceType$13.nil) {
  30833. result[0] = $makeSlice(sliceType$13, 0, 10);
  30834. }
  30835. result[0] = $append(result[0], $subslice(match, 0, 2));
  30836. }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  30837. $s = -1; return result[0];
  30838. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindAllStringIndex }; } $f.n = n; $f.re = re; $f.result = result; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  30839. };
  30840. Regexp.prototype.FindAllStringIndex = function(s, n) { return this.$val.FindAllStringIndex(s, n); };
  30841. Regexp.ptr.prototype.FindAllSubmatch = function(b, n) {
  30842. var b, n, re, result, $s, $r;
  30843. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; b = $f.b; n = $f.n; re = $f.re; result = $f.result; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30844. b = [b];
  30845. result = [result];
  30846. re = this;
  30847. if (n < 0) {
  30848. n = b[0].$length + 1 >> 0;
  30849. }
  30850. result[0] = sliceType$14.nil;
  30851. $r = re.allMatches("", b[0], n, (function(b, result) { return function(match) {
  30852. var _i, _q, _ref, j, match, slice, x, x$1, x$2;
  30853. if (result[0] === sliceType$14.nil) {
  30854. result[0] = $makeSlice(sliceType$14, 0, 10);
  30855. }
  30856. slice = $makeSlice(sliceType$12, (_q = match.$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")));
  30857. _ref = slice;
  30858. _i = 0;
  30859. while (true) {
  30860. if (!(_i < _ref.$length)) { break; }
  30861. j = _i;
  30862. if ((x = $imul(2, j), ((x < 0 || x >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x])) >= 0) {
  30863. ((j < 0 || j >= slice.$length) ? ($throwRuntimeError("index out of range"), undefined) : slice.$array[slice.$offset + j] = $subslice(b[0], (x$1 = $imul(2, j), ((x$1 < 0 || x$1 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$1])), (x$2 = ($imul(2, j)) + 1 >> 0, ((x$2 < 0 || x$2 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$2]))));
  30864. }
  30865. _i++;
  30866. }
  30867. result[0] = $append(result[0], slice);
  30868. }; })(b, result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  30869. $s = -1; return result[0];
  30870. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindAllSubmatch }; } $f.b = b; $f.n = n; $f.re = re; $f.result = result; $f.$s = $s; $f.$r = $r; return $f;
  30871. };
  30872. Regexp.prototype.FindAllSubmatch = function(b, n) { return this.$val.FindAllSubmatch(b, n); };
  30873. Regexp.ptr.prototype.FindAllSubmatchIndex = function(b, n) {
  30874. var b, n, re, result, $s, $r;
  30875. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; b = $f.b; n = $f.n; re = $f.re; result = $f.result; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30876. result = [result];
  30877. re = this;
  30878. if (n < 0) {
  30879. n = b.$length + 1 >> 0;
  30880. }
  30881. result[0] = sliceType$13.nil;
  30882. $r = re.allMatches("", b, n, (function(result) { return function(match) {
  30883. var match;
  30884. if (result[0] === sliceType$13.nil) {
  30885. result[0] = $makeSlice(sliceType$13, 0, 10);
  30886. }
  30887. result[0] = $append(result[0], match);
  30888. }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  30889. $s = -1; return result[0];
  30890. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindAllSubmatchIndex }; } $f.b = b; $f.n = n; $f.re = re; $f.result = result; $f.$s = $s; $f.$r = $r; return $f;
  30891. };
  30892. Regexp.prototype.FindAllSubmatchIndex = function(b, n) { return this.$val.FindAllSubmatchIndex(b, n); };
  30893. Regexp.ptr.prototype.FindAllStringSubmatch = function(s, n) {
  30894. var n, re, result, s, $s, $r;
  30895. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; n = $f.n; re = $f.re; result = $f.result; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30896. result = [result];
  30897. s = [s];
  30898. re = this;
  30899. if (n < 0) {
  30900. n = s[0].length + 1 >> 0;
  30901. }
  30902. result[0] = sliceType$15.nil;
  30903. $r = re.allMatches(s[0], sliceType$5.nil, n, (function(result, s) { return function(match) {
  30904. var _i, _q, _ref, j, match, slice, x, x$1, x$2;
  30905. if (result[0] === sliceType$15.nil) {
  30906. result[0] = $makeSlice(sliceType$15, 0, 10);
  30907. }
  30908. slice = $makeSlice(sliceType$9, (_q = match.$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")));
  30909. _ref = slice;
  30910. _i = 0;
  30911. while (true) {
  30912. if (!(_i < _ref.$length)) { break; }
  30913. j = _i;
  30914. if ((x = $imul(2, j), ((x < 0 || x >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x])) >= 0) {
  30915. ((j < 0 || j >= slice.$length) ? ($throwRuntimeError("index out of range"), undefined) : slice.$array[slice.$offset + j] = $substring(s[0], (x$1 = $imul(2, j), ((x$1 < 0 || x$1 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$1])), (x$2 = ($imul(2, j)) + 1 >> 0, ((x$2 < 0 || x$2 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$2]))));
  30916. }
  30917. _i++;
  30918. }
  30919. result[0] = $append(result[0], slice);
  30920. }; })(result, s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  30921. $s = -1; return result[0];
  30922. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindAllStringSubmatch }; } $f.n = n; $f.re = re; $f.result = result; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  30923. };
  30924. Regexp.prototype.FindAllStringSubmatch = function(s, n) { return this.$val.FindAllStringSubmatch(s, n); };
  30925. Regexp.ptr.prototype.FindAllStringSubmatchIndex = function(s, n) {
  30926. var n, re, result, s, $s, $r;
  30927. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; n = $f.n; re = $f.re; result = $f.result; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30928. result = [result];
  30929. re = this;
  30930. if (n < 0) {
  30931. n = s.length + 1 >> 0;
  30932. }
  30933. result[0] = sliceType$13.nil;
  30934. $r = re.allMatches(s, sliceType$5.nil, n, (function(result) { return function(match) {
  30935. var match;
  30936. if (result[0] === sliceType$13.nil) {
  30937. result[0] = $makeSlice(sliceType$13, 0, 10);
  30938. }
  30939. result[0] = $append(result[0], match);
  30940. }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  30941. $s = -1; return result[0];
  30942. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindAllStringSubmatchIndex }; } $f.n = n; $f.re = re; $f.result = result; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  30943. };
  30944. Regexp.prototype.FindAllStringSubmatchIndex = function(s, n) { return this.$val.FindAllStringSubmatchIndex(s, n); };
  30945. Regexp.ptr.prototype.Split = function(s, n) {
  30946. var _i, _r, _ref, beg, end, match, matches, n, re, s, strings$1, $s, $r;
  30947. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; beg = $f.beg; end = $f.end; match = $f.match; matches = $f.matches; n = $f.n; re = $f.re; s = $f.s; strings$1 = $f.strings$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  30948. re = this;
  30949. if (n === 0) {
  30950. $s = -1; return sliceType$9.nil;
  30951. }
  30952. if (re.expr.length > 0 && (s.length === 0)) {
  30953. $s = -1; return new sliceType$9([""]);
  30954. }
  30955. _r = re.FindAllStringIndex(s, n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  30956. matches = _r;
  30957. strings$1 = $makeSlice(sliceType$9, 0, matches.$length);
  30958. beg = 0;
  30959. end = 0;
  30960. _ref = matches;
  30961. _i = 0;
  30962. while (true) {
  30963. if (!(_i < _ref.$length)) { break; }
  30964. match = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  30965. if (n > 0 && strings$1.$length >= (n - 1 >> 0)) {
  30966. break;
  30967. }
  30968. end = (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]);
  30969. if (!(((1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]) === 0))) {
  30970. strings$1 = $append(strings$1, $substring(s, beg, end));
  30971. }
  30972. beg = (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]);
  30973. _i++;
  30974. }
  30975. if (!((end === s.length))) {
  30976. strings$1 = $append(strings$1, $substring(s, beg));
  30977. }
  30978. $s = -1; return strings$1;
  30979. /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.Split }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.beg = beg; $f.end = end; $f.match = match; $f.matches = matches; $f.n = n; $f.re = re; $f.s = s; $f.strings$1 = strings$1; $f.$s = $s; $f.$r = $r; return $f;
  30980. };
  30981. Regexp.prototype.Split = function(s, n) { return this.$val.Split(s, n); };
  30982. ptrType.methods = [{prop: "reset", name: "reset", pkg: "regexp", typ: $funcType([ptrType$12, $Int, $Int], [], false)}, {prop: "shouldVisit", name: "shouldVisit", pkg: "regexp", typ: $funcType([$Uint32, $Int], [$Bool], false)}, {prop: "push", name: "push", pkg: "regexp", typ: $funcType([ptrType$11, $Uint32, $Int, $Bool], [], false)}];
  30983. ptrType$13.methods = [{prop: "init", name: "init", pkg: "regexp", typ: $funcType([$Int], [], false)}, {prop: "alloc", name: "alloc", pkg: "regexp", typ: $funcType([ptrType$2], [ptrType$1], false)}, {prop: "match", name: "match", pkg: "regexp", typ: $funcType([input, $Int], [$Bool], false)}, {prop: "clear", name: "clear", pkg: "regexp", typ: $funcType([ptrType$14], [], false)}, {prop: "step", name: "step", pkg: "regexp", typ: $funcType([ptrType$14, ptrType$14, $Int, $Int, $Int32, ptrType$3], [], false)}, {prop: "add", name: "add", pkg: "regexp", typ: $funcType([ptrType$14, $Uint32, $Int, sliceType$3, ptrType$3, ptrType$1], [ptrType$1], false)}];
  30984. ptrType$15.methods = [{prop: "newBytes", name: "newBytes", pkg: "regexp", typ: $funcType([sliceType$5], [input], false)}, {prop: "newString", name: "newString", pkg: "regexp", typ: $funcType([$String], [input], false)}, {prop: "newReader", name: "newReader", pkg: "regexp", typ: $funcType([io.RuneReader], [input], false)}, {prop: "clear", name: "clear", pkg: "regexp", typ: $funcType([], [], false)}, {prop: "init", name: "init", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$5, $String], [input, $Int], false)}];
  30985. lazyFlag.methods = [{prop: "match", name: "match", pkg: "regexp", typ: $funcType([syntax.EmptyOp], [$Bool], false)}];
  30986. ptrType$8.methods = [{prop: "empty", name: "empty", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "next", name: "next", pkg: "regexp", typ: $funcType([], [$Uint32], false)}, {prop: "clear", name: "clear", pkg: "regexp", typ: $funcType([], [], false)}, {prop: "contains", name: "contains", pkg: "regexp", typ: $funcType([$Uint32], [$Bool], false)}, {prop: "insert", name: "insert", pkg: "regexp", typ: $funcType([$Uint32], [], false)}, {prop: "insertNew", name: "insertNew", pkg: "regexp", typ: $funcType([$Uint32], [], false)}];
  30987. runeSlice.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}];
  30988. ptrType$11.methods = [{prop: "tryBacktrack", name: "tryBacktrack", pkg: "regexp", typ: $funcType([ptrType, input, $Uint32, $Int], [$Bool], false)}, {prop: "backtrack", name: "backtrack", pkg: "regexp", typ: $funcType([sliceType$5, $String, $Int, $Int, sliceType$3], [sliceType$3], false)}, {prop: "doOnePass", name: "doOnePass", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$5, $String, $Int, $Int, sliceType$3], [sliceType$3], false)}, {prop: "doMatch", name: "doMatch", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$5, $String], [$Bool], false)}, {prop: "doExecute", name: "doExecute", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$5, $String, $Int, $Int, sliceType$3], [sliceType$3], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([], [ptrType$11], false)}, {prop: "Longest", name: "Longest", pkg: "", typ: $funcType([], [], false)}, {prop: "get", name: "get", pkg: "regexp", typ: $funcType([], [ptrType$13], false)}, {prop: "put", name: "put", pkg: "regexp", typ: $funcType([ptrType$13], [], false)}, {prop: "NumSubexp", name: "NumSubexp", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "SubexpNames", name: "SubexpNames", pkg: "", typ: $funcType([], [sliceType$9], false)}, {prop: "LiteralPrefix", name: "LiteralPrefix", pkg: "", typ: $funcType([], [$String, $Bool], false)}, {prop: "MatchReader", name: "MatchReader", pkg: "", typ: $funcType([io.RuneReader], [$Bool], false)}, {prop: "MatchString", name: "MatchString", pkg: "", typ: $funcType([$String], [$Bool], false)}, {prop: "Match", name: "Match", pkg: "", typ: $funcType([sliceType$5], [$Bool], false)}, {prop: "ReplaceAllString", name: "ReplaceAllString", pkg: "", typ: $funcType([$String, $String], [$String], false)}, {prop: "ReplaceAllLiteralString", name: "ReplaceAllLiteralString", pkg: "", typ: $funcType([$String, $String], [$String], false)}, {prop: "ReplaceAllStringFunc", name: "ReplaceAllStringFunc", pkg: "", typ: $funcType([$String, funcType], [$String], false)}, {prop: "replaceAll", name: "replaceAll", pkg: "regexp", typ: $funcType([sliceType$5, $String, $Int, funcType$1], [sliceType$5], false)}, {prop: "ReplaceAll", name: "ReplaceAll", pkg: "", typ: $funcType([sliceType$5, sliceType$5], [sliceType$5], false)}, {prop: "ReplaceAllLiteral", name: "ReplaceAllLiteral", pkg: "", typ: $funcType([sliceType$5, sliceType$5], [sliceType$5], false)}, {prop: "ReplaceAllFunc", name: "ReplaceAllFunc", pkg: "", typ: $funcType([sliceType$5, funcType$2], [sliceType$5], false)}, {prop: "pad", name: "pad", pkg: "regexp", typ: $funcType([sliceType$3], [sliceType$3], false)}, {prop: "allMatches", name: "allMatches", pkg: "regexp", typ: $funcType([$String, sliceType$5, $Int, funcType$3], [], false)}, {prop: "Find", name: "Find", pkg: "", typ: $funcType([sliceType$5], [sliceType$5], false)}, {prop: "FindIndex", name: "FindIndex", pkg: "", typ: $funcType([sliceType$5], [sliceType$3], false)}, {prop: "FindString", name: "FindString", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "FindStringIndex", name: "FindStringIndex", pkg: "", typ: $funcType([$String], [sliceType$3], false)}, {prop: "FindReaderIndex", name: "FindReaderIndex", pkg: "", typ: $funcType([io.RuneReader], [sliceType$3], false)}, {prop: "FindSubmatch", name: "FindSubmatch", pkg: "", typ: $funcType([sliceType$5], [sliceType$12], false)}, {prop: "Expand", name: "Expand", pkg: "", typ: $funcType([sliceType$5, sliceType$5, sliceType$5, sliceType$3], [sliceType$5], false)}, {prop: "ExpandString", name: "ExpandString", pkg: "", typ: $funcType([sliceType$5, $String, $String, sliceType$3], [sliceType$5], false)}, {prop: "expand", name: "expand", pkg: "regexp", typ: $funcType([sliceType$5, $String, sliceType$5, $String, sliceType$3], [sliceType$5], false)}, {prop: "FindSubmatchIndex", name: "FindSubmatchIndex", pkg: "", typ: $funcType([sliceType$5], [sliceType$3], false)}, {prop: "FindStringSubmatch", name: "FindStringSubmatch", pkg: "", typ: $funcType([$String], [sliceType$9], false)}, {prop: "FindStringSubmatchIndex", name: "FindStringSubmatchIndex", pkg: "", typ: $funcType([$String], [sliceType$3], false)}, {prop: "FindReaderSubmatchIndex", name: "FindReaderSubmatchIndex", pkg: "", typ: $funcType([io.RuneReader], [sliceType$3], false)}, {prop: "FindAll", name: "FindAll", pkg: "", typ: $funcType([sliceType$5, $Int], [sliceType$12], false)}, {prop: "FindAllIndex", name: "FindAllIndex", pkg: "", typ: $funcType([sliceType$5, $Int], [sliceType$13], false)}, {prop: "FindAllString", name: "FindAllString", pkg: "", typ: $funcType([$String, $Int], [sliceType$9], false)}, {prop: "FindAllStringIndex", name: "FindAllStringIndex", pkg: "", typ: $funcType([$String, $Int], [sliceType$13], false)}, {prop: "FindAllSubmatch", name: "FindAllSubmatch", pkg: "", typ: $funcType([sliceType$5, $Int], [sliceType$14], false)}, {prop: "FindAllSubmatchIndex", name: "FindAllSubmatchIndex", pkg: "", typ: $funcType([sliceType$5, $Int], [sliceType$13], false)}, {prop: "FindAllStringSubmatch", name: "FindAllStringSubmatch", pkg: "", typ: $funcType([$String, $Int], [sliceType$15], false)}, {prop: "FindAllStringSubmatchIndex", name: "FindAllStringSubmatchIndex", pkg: "", typ: $funcType([$String, $Int], [sliceType$13], false)}, {prop: "Split", name: "Split", pkg: "", typ: $funcType([$String, $Int], [sliceType$9], false)}];
  30989. ptrType$16.methods = [{prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}, {prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType$11], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType$11, $Int], [$Int], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [lazyFlag], false)}];
  30990. ptrType$17.methods = [{prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}, {prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType$11], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType$11, $Int], [$Int], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [lazyFlag], false)}];
  30991. ptrType$18.methods = [{prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}, {prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType$11], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType$11, $Int], [$Int], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [lazyFlag], false)}];
  30992. job.init("regexp", [{prop: "pc", name: "pc", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "arg", name: "arg", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: $Int, tag: ""}]);
  30993. bitState.init("regexp", [{prop: "end", name: "end", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "cap", name: "cap", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "jobs", name: "jobs", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "visited", name: "visited", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "inputs", name: "inputs", embedded: false, exported: false, typ: inputs, tag: ""}]);
  30994. queue.init("regexp", [{prop: "sparse", name: "sparse", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "dense", name: "dense", embedded: false, exported: false, typ: sliceType$10, tag: ""}]);
  30995. entry.init("regexp", [{prop: "pc", name: "pc", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "t", name: "t", embedded: false, exported: false, typ: ptrType$1, tag: ""}]);
  30996. thread.init("regexp", [{prop: "inst", name: "inst", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "cap", name: "cap", embedded: false, exported: false, typ: sliceType$3, tag: ""}]);
  30997. machine.init("regexp", [{prop: "re", name: "re", embedded: false, exported: false, typ: ptrType$11, tag: ""}, {prop: "p", name: "p", embedded: false, exported: false, typ: ptrType$12, tag: ""}, {prop: "q0", name: "q0", embedded: false, exported: false, typ: queue, tag: ""}, {prop: "q1", name: "q1", embedded: false, exported: false, typ: queue, tag: ""}, {prop: "pool", name: "pool", embedded: false, exported: false, typ: sliceType$11, tag: ""}, {prop: "matched", name: "matched", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "inputs", name: "inputs", embedded: false, exported: false, typ: inputs, tag: ""}]);
  30998. inputs.init("regexp", [{prop: "bytes", name: "bytes", embedded: false, exported: false, typ: inputBytes, tag: ""}, {prop: "string", name: "string", embedded: false, exported: false, typ: inputString, tag: ""}, {prop: "reader", name: "reader", embedded: false, exported: false, typ: inputReader, tag: ""}]);
  30999. onePassMachine.init("regexp", [{prop: "inputs", name: "inputs", embedded: false, exported: false, typ: inputs, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: sliceType$3, tag: ""}]);
  31000. onePassProg.init("", [{prop: "Inst", name: "Inst", embedded: false, exported: true, typ: sliceType$6, tag: ""}, {prop: "Start", name: "Start", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "NumCap", name: "NumCap", embedded: false, exported: true, typ: $Int, tag: ""}]);
  31001. onePassInst.init("", [{prop: "Inst", name: "Inst", embedded: true, exported: true, typ: syntax.Inst, tag: ""}, {prop: "Next", name: "Next", embedded: false, exported: true, typ: sliceType$2, tag: ""}]);
  31002. queueOnePass.init("regexp", [{prop: "sparse", name: "sparse", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "dense", name: "dense", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "nextIndex", name: "nextIndex", embedded: false, exported: false, typ: $Uint32, tag: ""}]);
  31003. runeSlice.init($Int32);
  31004. Regexp.init("regexp", [{prop: "expr", name: "expr", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "prog", name: "prog", embedded: false, exported: false, typ: ptrType$12, tag: ""}, {prop: "onepass", name: "onepass", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "numSubexp", name: "numSubexp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "maxBitStateLen", name: "maxBitStateLen", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "subexpNames", name: "subexpNames", embedded: false, exported: false, typ: sliceType$9, tag: ""}, {prop: "prefix", name: "prefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "prefixBytes", name: "prefixBytes", embedded: false, exported: false, typ: sliceType$5, tag: ""}, {prop: "prefixRune", name: "prefixRune", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "prefixEnd", name: "prefixEnd", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "mpool", name: "mpool", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "prefixComplete", name: "prefixComplete", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "cond", name: "cond", embedded: false, exported: false, typ: syntax.EmptyOp, tag: ""}, {prop: "longest", name: "longest", embedded: false, exported: false, typ: $Bool, tag: ""}]);
  31005. input.init([{prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [lazyFlag], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType$11], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType$11, $Int], [$Int], false)}, {prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}]);
  31006. inputString.init("regexp", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]);
  31007. inputBytes.init("regexp", [{prop: "str", name: "str", embedded: false, exported: false, typ: sliceType$5, tag: ""}]);
  31008. inputReader.init("regexp", [{prop: "r", name: "r", embedded: false, exported: false, typ: io.RuneReader, tag: ""}, {prop: "atEOT", name: "atEOT", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: $Int, tag: ""}]);
  31009. $init = function() {
  31010. $pkg.$init = function() {};
  31011. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  31012. $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  31013. $r = nosync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  31014. $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  31015. $r = syntax.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  31016. $r = sort.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  31017. $r = strconv.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  31018. $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  31019. $r = unicode.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  31020. $r = utf8.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  31021. bitStatePool = new nosync.Pool.ptr(sliceType.nil, $throwNilPointerError);
  31022. onePassPool = new nosync.Pool.ptr(sliceType.nil, $throwNilPointerError);
  31023. arrayNoInts = arrayType.zero();
  31024. matchPool = arrayType$1.zero();
  31025. specialBytes = arrayType$2.zero();
  31026. noRune = new sliceType$1([]);
  31027. noNext = new sliceType$2([4294967295]);
  31028. anyRuneNotNL = new sliceType$1([0, 9, 11, 1114111]);
  31029. anyRune = new sliceType$1([0, 1114111]);
  31030. matchSize = $toNativeArray($kindInt, [128, 512, 2048, 16384, 0]);
  31031. init();
  31032. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  31033. };
  31034. $pkg.$init = $init;
  31035. return $pkg;
  31036. })();
  31037. $packages["github.com/xiaokangwang/BrowserBridge/vendor/github.com/lunixbochs/struc"] = (function() {
  31038. var $pkg = {}, $init, bytes, binary, errors, fmt, io, math, reflect, regexp, strconv, strings, sync, byteWriter, binaryFallback, Custom, customFallback, Field, Fields, strucTag, Options, Type, Size_t, Off_t, sliceType, sliceType$1, sliceType$2, sliceType$3, ptrType, ptrType$1, sliceType$4, arrayType$1, ptrType$2, ptrType$3, typeLenRe, fieldCache, fieldCacheLock, parseLock, emptyOptions, typeLookup, typeNames, reflectTypeMap, _r, parseStrucTag, parseField, parseFieldsLocked, fieldCacheLookup, parseFields, init, prep, Unpack, UnpackWithOptions, init$1;
  31039. bytes = $packages["bytes"];
  31040. binary = $packages["encoding/binary"];
  31041. errors = $packages["errors"];
  31042. fmt = $packages["fmt"];
  31043. io = $packages["io"];
  31044. math = $packages["math"];
  31045. reflect = $packages["reflect"];
  31046. regexp = $packages["regexp"];
  31047. strconv = $packages["strconv"];
  31048. strings = $packages["strings"];
  31049. sync = $packages["sync"];
  31050. byteWriter = $pkg.byteWriter = $newType(0, $kindStruct, "struc.byteWriter", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/lunixbochs/struc", false, function(buf_, pos_) {
  31051. this.$val = this;
  31052. if (arguments.length === 0) {
  31053. this.buf = sliceType.nil;
  31054. this.pos = 0;
  31055. return;
  31056. }
  31057. this.buf = buf_;
  31058. this.pos = pos_;
  31059. });
  31060. binaryFallback = $pkg.binaryFallback = $newType(0, $kindStruct, "struc.binaryFallback", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/lunixbochs/struc", false, function(typ_, ptr_, flag_) {
  31061. this.$val = this;
  31062. if (arguments.length === 0) {
  31063. this.typ = ptrType.nil;
  31064. this.ptr = 0;
  31065. this.flag = 0;
  31066. return;
  31067. }
  31068. this.typ = typ_;
  31069. this.ptr = ptr_;
  31070. this.flag = flag_;
  31071. });
  31072. Custom = $pkg.Custom = $newType(8, $kindInterface, "struc.Custom", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/lunixbochs/struc", true, null);
  31073. customFallback = $pkg.customFallback = $newType(0, $kindStruct, "struc.customFallback", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/lunixbochs/struc", false, function(custom_) {
  31074. this.$val = this;
  31075. if (arguments.length === 0) {
  31076. this.custom = $ifaceNil;
  31077. return;
  31078. }
  31079. this.custom = custom_;
  31080. });
  31081. Field = $pkg.Field = $newType(0, $kindStruct, "struc.Field", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/lunixbochs/struc", true, function(Name_, Ptr_, Index_, Type_, defType_, Array_, Slice_, Len_, Order_, Sizeof_, Sizefrom_, Fields_, kind_) {
  31082. this.$val = this;
  31083. if (arguments.length === 0) {
  31084. this.Name = "";
  31085. this.Ptr = false;
  31086. this.Index = 0;
  31087. this.Type = 0;
  31088. this.defType = 0;
  31089. this.Array = false;
  31090. this.Slice = false;
  31091. this.Len = 0;
  31092. this.Order = $ifaceNil;
  31093. this.Sizeof = sliceType$2.nil;
  31094. this.Sizefrom = sliceType$2.nil;
  31095. this.Fields = Fields.nil;
  31096. this.kind = 0;
  31097. return;
  31098. }
  31099. this.Name = Name_;
  31100. this.Ptr = Ptr_;
  31101. this.Index = Index_;
  31102. this.Type = Type_;
  31103. this.defType = defType_;
  31104. this.Array = Array_;
  31105. this.Slice = Slice_;
  31106. this.Len = Len_;
  31107. this.Order = Order_;
  31108. this.Sizeof = Sizeof_;
  31109. this.Sizefrom = Sizefrom_;
  31110. this.Fields = Fields_;
  31111. this.kind = kind_;
  31112. });
  31113. Fields = $pkg.Fields = $newType(12, $kindSlice, "struc.Fields", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/lunixbochs/struc", true, null);
  31114. strucTag = $pkg.strucTag = $newType(0, $kindStruct, "struc.strucTag", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/lunixbochs/struc", false, function(Type_, Order_, Sizeof_, Skip_, Sizefrom_) {
  31115. this.$val = this;
  31116. if (arguments.length === 0) {
  31117. this.Type = "";
  31118. this.Order = $ifaceNil;
  31119. this.Sizeof = "";
  31120. this.Skip = false;
  31121. this.Sizefrom = "";
  31122. return;
  31123. }
  31124. this.Type = Type_;
  31125. this.Order = Order_;
  31126. this.Sizeof = Sizeof_;
  31127. this.Skip = Skip_;
  31128. this.Sizefrom = Sizefrom_;
  31129. });
  31130. Options = $pkg.Options = $newType(0, $kindStruct, "struc.Options", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/lunixbochs/struc", true, function(ByteAlign_, PtrSize_, Order_) {
  31131. this.$val = this;
  31132. if (arguments.length === 0) {
  31133. this.ByteAlign = 0;
  31134. this.PtrSize = 0;
  31135. this.Order = $ifaceNil;
  31136. return;
  31137. }
  31138. this.ByteAlign = ByteAlign_;
  31139. this.PtrSize = PtrSize_;
  31140. this.Order = Order_;
  31141. });
  31142. Type = $pkg.Type = $newType(4, $kindInt, "struc.Type", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/lunixbochs/struc", true, null);
  31143. Size_t = $pkg.Size_t = $newType(8, $kindUint64, "struc.Size_t", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/lunixbochs/struc", true, null);
  31144. Off_t = $pkg.Off_t = $newType(8, $kindInt64, "struc.Off_t", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/lunixbochs/struc", true, null);
  31145. sliceType = $sliceType($Uint8);
  31146. sliceType$1 = $sliceType($emptyInterface);
  31147. sliceType$2 = $sliceType($Int);
  31148. sliceType$3 = $sliceType(reflect.Value);
  31149. ptrType = $ptrType(reflect.rtype);
  31150. ptrType$1 = $ptrType(Field);
  31151. sliceType$4 = $sliceType($String);
  31152. arrayType$1 = $arrayType($Uint8, 8);
  31153. ptrType$2 = $ptrType(strucTag);
  31154. ptrType$3 = $ptrType(Options);
  31155. byteWriter.ptr.prototype.Write = function(p) {
  31156. var b, capacity, p;
  31157. b = this;
  31158. capacity = b.buf.$length - b.pos >> 0;
  31159. if (capacity < p.$length) {
  31160. p = $subslice(p, 0, capacity);
  31161. }
  31162. if (p.$length > 0) {
  31163. $copySlice($subslice(b.buf, b.pos), p);
  31164. b.pos = b.pos + (p.$length) >> 0;
  31165. }
  31166. return [p.$length, $ifaceNil];
  31167. };
  31168. byteWriter.prototype.Write = function(p) { return this.$val.Write(p); };
  31169. binaryFallback.ptr.prototype.String = function() {
  31170. var b;
  31171. b = this;
  31172. return $clone(b, binaryFallback).String();
  31173. };
  31174. binaryFallback.prototype.String = function() { return this.$val.String(); };
  31175. binaryFallback.ptr.prototype.Sizeof = function(val, options) {
  31176. var _r$1, _r$2, b, options, val, $s, $r;
  31177. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; _r$2 = $f._r$2; b = $f.b; options = $f.options; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  31178. b = this;
  31179. _r$1 = $clone(val, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  31180. _r$2 = binary.Size(_r$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  31181. $s = -1; return _r$2;
  31182. /* */ } return; } if ($f === undefined) { $f = { $blk: binaryFallback.ptr.prototype.Sizeof }; } $f._r$1 = _r$1; $f._r$2 = _r$2; $f.b = b; $f.options = options; $f.val = val; $f.$s = $s; $f.$r = $r; return $f;
  31183. };
  31184. binaryFallback.prototype.Sizeof = function(val, options) { return this.$val.Sizeof(val, options); };
  31185. binaryFallback.ptr.prototype.Pack = function(buf, val, options) {
  31186. var _arg, _arg$1, _arg$2, _r$1, _r$2, b, buf, err, options, order, tmp, val, x, $s, $r;
  31187. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r$1 = $f._r$1; _r$2 = $f._r$2; b = $f.b; buf = $f.buf; err = $f.err; options = $f.options; order = $f.order; tmp = $f.tmp; val = $f.val; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  31188. b = this;
  31189. tmp = new byteWriter.ptr(buf, 0);
  31190. order = (x = binary.BigEndian, new x.constructor.elem(x));
  31191. if (!($interfaceIsEqual(options.Order, $ifaceNil))) {
  31192. order = options.Order;
  31193. }
  31194. _arg = new tmp.constructor.elem(tmp);
  31195. _arg$1 = order;
  31196. _r$1 = $clone(val, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  31197. _arg$2 = _r$1;
  31198. _r$2 = binary.Write(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  31199. err = _r$2;
  31200. $s = -1; return [tmp.pos, err];
  31201. /* */ } return; } if ($f === undefined) { $f = { $blk: binaryFallback.ptr.prototype.Pack }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.b = b; $f.buf = buf; $f.err = err; $f.options = options; $f.order = order; $f.tmp = tmp; $f.val = val; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  31202. };
  31203. binaryFallback.prototype.Pack = function(buf, val, options) { return this.$val.Pack(buf, val, options); };
  31204. binaryFallback.ptr.prototype.Unpack = function(r, val, options) {
  31205. var _arg, _arg$1, _arg$2, _r$1, _r$2, b, options, order, r, val, x, $s, $r;
  31206. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r$1 = $f._r$1; _r$2 = $f._r$2; b = $f.b; options = $f.options; order = $f.order; r = $f.r; val = $f.val; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  31207. b = this;
  31208. order = (x = binary.BigEndian, new x.constructor.elem(x));
  31209. if (!($interfaceIsEqual(options.Order, $ifaceNil))) {
  31210. order = options.Order;
  31211. }
  31212. _arg = r;
  31213. _arg$1 = order;
  31214. _r$1 = $clone(val, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  31215. _arg$2 = _r$1;
  31216. _r$2 = binary.Read(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  31217. $s = -1; return _r$2;
  31218. /* */ } return; } if ($f === undefined) { $f = { $blk: binaryFallback.ptr.prototype.Unpack }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.b = b; $f.options = options; $f.order = order; $f.r = r; $f.val = val; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  31219. };
  31220. binaryFallback.prototype.Unpack = function(r, val, options) { return this.$val.Unpack(r, val, options); };
  31221. customFallback.ptr.prototype.Pack = function(p, val, opt) {
  31222. var _r$1, c, opt, p, val, $s, $r;
  31223. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; c = $f.c; opt = $f.opt; p = $f.p; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  31224. c = this;
  31225. _r$1 = c.custom.Pack(p, opt); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  31226. $s = -1; return _r$1;
  31227. /* */ } return; } if ($f === undefined) { $f = { $blk: customFallback.ptr.prototype.Pack }; } $f._r$1 = _r$1; $f.c = c; $f.opt = opt; $f.p = p; $f.val = val; $f.$s = $s; $f.$r = $r; return $f;
  31228. };
  31229. customFallback.prototype.Pack = function(p, val, opt) { return this.$val.Pack(p, val, opt); };
  31230. customFallback.ptr.prototype.Unpack = function(r, val, opt) {
  31231. var _r$1, c, opt, r, val, $s, $r;
  31232. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; c = $f.c; opt = $f.opt; r = $f.r; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  31233. c = this;
  31234. _r$1 = c.custom.Unpack(r, 1, opt); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  31235. $s = -1; return _r$1;
  31236. /* */ } return; } if ($f === undefined) { $f = { $blk: customFallback.ptr.prototype.Unpack }; } $f._r$1 = _r$1; $f.c = c; $f.opt = opt; $f.r = r; $f.val = val; $f.$s = $s; $f.$r = $r; return $f;
  31237. };
  31238. customFallback.prototype.Unpack = function(r, val, opt) { return this.$val.Unpack(r, val, opt); };
  31239. customFallback.ptr.prototype.Sizeof = function(val, opt) {
  31240. var _r$1, c, opt, val, $s, $r;
  31241. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; c = $f.c; opt = $f.opt; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  31242. c = this;
  31243. _r$1 = c.custom.Size(opt); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  31244. $s = -1; return _r$1;
  31245. /* */ } return; } if ($f === undefined) { $f = { $blk: customFallback.ptr.prototype.Sizeof }; } $f._r$1 = _r$1; $f.c = c; $f.opt = opt; $f.val = val; $f.$s = $s; $f.$r = $r; return $f;
  31246. };
  31247. customFallback.prototype.Sizeof = function(val, opt) { return this.$val.Sizeof(val, opt); };
  31248. customFallback.ptr.prototype.String = function() {
  31249. var _r$1, c, $s, $r;
  31250. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; c = $f.c; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  31251. c = this;
  31252. _r$1 = c.custom.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  31253. $s = -1; return _r$1;
  31254. /* */ } return; } if ($f === undefined) { $f = { $blk: customFallback.ptr.prototype.String }; } $f._r$1 = _r$1; $f.c = c; $f.$s = $s; $f.$r = $r; return $f;
  31255. };
  31256. customFallback.prototype.String = function() { return this.$val.String(); };
  31257. Field.ptr.prototype.String = function() {
  31258. var _r$1, _r$2, _r$3, _r$4, _r$5, f, out, $s, $r;
  31259. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; f = $f.f; out = $f.out; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  31260. f = this;
  31261. out = "";
  31262. /* */ if (f.Type === 1) { $s = 1; continue; }
  31263. /* */ $s = 2; continue;
  31264. /* if (f.Type === 1) { */ case 1:
  31265. _r$1 = fmt.Sprintf("{type: Pad, len: %d}", new sliceType$1([new $Int(f.Len)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  31266. $s = -1; return _r$1;
  31267. /* } else { */ case 2:
  31268. _r$2 = fmt.Sprintf("type: %s, order: %v", new sliceType$1([new $String(new Type(f.Type).String()), f.Order])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  31269. out = _r$2;
  31270. /* } */ case 3:
  31271. /* */ if (!(f.Sizefrom === sliceType$2.nil)) { $s = 6; continue; }
  31272. /* */ if (f.Len > 0) { $s = 7; continue; }
  31273. /* */ $s = 8; continue;
  31274. /* if (!(f.Sizefrom === sliceType$2.nil)) { */ case 6:
  31275. _r$3 = fmt.Sprintf(", sizefrom: %v", new sliceType$1([f.Sizefrom])); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  31276. out = out + (_r$3);
  31277. $s = 8; continue;
  31278. /* } else if (f.Len > 0) { */ case 7:
  31279. _r$4 = fmt.Sprintf(", len: %d", new sliceType$1([new $Int(f.Len)])); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  31280. out = out + (_r$4);
  31281. /* } */ case 8:
  31282. /* */ if (!(f.Sizeof === sliceType$2.nil)) { $s = 11; continue; }
  31283. /* */ $s = 12; continue;
  31284. /* if (!(f.Sizeof === sliceType$2.nil)) { */ case 11:
  31285. _r$5 = fmt.Sprintf(", sizeof: %v", new sliceType$1([f.Sizeof])); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  31286. out = out + (_r$5);
  31287. /* } */ case 12:
  31288. $s = -1; return "{" + out + "}";
  31289. /* */ } return; } if ($f === undefined) { $f = { $blk: Field.ptr.prototype.String }; } $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f.f = f; $f.out = out; $f.$s = $s; $f.$r = $r; return $f;
  31290. };
  31291. Field.prototype.String = function() { return this.$val.String(); };
  31292. Field.ptr.prototype.Size = function(val, options) {
  31293. var _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, align, f, i, length, options, size, typ, val, val$1, vals, $s, $r;
  31294. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _ref = $f._ref; align = $f.align; f = $f.f; i = $f.i; length = $f.length; options = $f.options; size = $f.size; typ = $f.typ; val = $f.val; val$1 = $f.val$1; vals = $f.vals; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  31295. f = this;
  31296. _r$1 = new Type(f.Type).Resolve(options); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  31297. typ = _r$1;
  31298. size = 0;
  31299. /* */ if (typ === 15) { $s = 2; continue; }
  31300. /* */ if (typ === 1) { $s = 3; continue; }
  31301. /* */ if (f.Slice || (f.kind === 24)) { $s = 4; continue; }
  31302. /* */ if (typ === 19) { $s = 5; continue; }
  31303. /* */ $s = 6; continue;
  31304. /* if (typ === 15) { */ case 2:
  31305. vals = new sliceType$3([$clone(val, reflect.Value)]);
  31306. /* */ if (f.Slice) { $s = 8; continue; }
  31307. /* */ $s = 9; continue;
  31308. /* if (f.Slice) { */ case 8:
  31309. vals = $makeSlice(sliceType$3, $clone(val, reflect.Value).Len());
  31310. i = 0;
  31311. /* while (true) { */ case 10:
  31312. /* if (!(i < $clone(val, reflect.Value).Len())) { break; } */ if(!(i < $clone(val, reflect.Value).Len())) { $s = 11; continue; }
  31313. _r$2 = $clone(val, reflect.Value).Index(i); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  31314. ((i < 0 || i >= vals.$length) ? ($throwRuntimeError("index out of range"), undefined) : vals.$array[vals.$offset + i] = _r$2);
  31315. i = i + (1) >> 0;
  31316. /* } */ $s = 10; continue; case 11:
  31317. /* } */ case 9:
  31318. _ref = vals;
  31319. _i = 0;
  31320. /* while (true) { */ case 13:
  31321. /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 14; continue; }
  31322. val$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  31323. _r$3 = f.Fields.Sizeof($clone(val$1, reflect.Value), options); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  31324. size = size + (_r$3) >> 0;
  31325. _i++;
  31326. /* } */ $s = 13; continue; case 14:
  31327. $s = 7; continue;
  31328. /* } else if (typ === 1) { */ case 3:
  31329. size = f.Len;
  31330. $s = 7; continue;
  31331. /* } else if (f.Slice || (f.kind === 24)) { */ case 4:
  31332. length = $clone(val, reflect.Value).Len();
  31333. if (f.Len > 1) {
  31334. length = f.Len;
  31335. }
  31336. size = $imul(length, new Type(typ).Size());
  31337. $s = 7; continue;
  31338. /* } else if (typ === 19) { */ case 5:
  31339. _r$4 = $clone($clone(val, reflect.Value).Addr(), reflect.Value).Interface(); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  31340. _r$5 = $assertType(_r$4, Custom).Size(options); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  31341. $s = -1; return _r$5;
  31342. /* } else { */ case 6:
  31343. size = new Type(typ).Size();
  31344. /* } */ case 7:
  31345. align = options.ByteAlign;
  31346. if (align > 0 && size < align) {
  31347. size = align;
  31348. }
  31349. $s = -1; return size;
  31350. /* */ } return; } if ($f === undefined) { $f = { $blk: Field.ptr.prototype.Size }; } $f._i = _i; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._ref = _ref; $f.align = align; $f.f = f; $f.i = i; $f.length = length; $f.options = options; $f.size = size; $f.typ = typ; $f.val = val; $f.val$1 = val$1; $f.vals = vals; $f.$s = $s; $f.$r = $r; return $f;
  31351. };
  31352. Field.prototype.Size = function(val, options) { return this.$val.Size(val, options); };
  31353. Field.ptr.prototype.packVal = function(buf, val, length, options) {
  31354. var _1, _2, _3, _4, _5, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, _tuple$1, buf, err, f, length, n, n$1, options, order, size, typ, val, x, $s, $r;
  31355. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _4 = $f._4; _5 = $f._5; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; buf = $f.buf; err = $f.err; f = $f.f; length = $f.length; n = $f.n; n$1 = $f.n$1; options = $f.options; order = $f.order; size = $f.size; typ = $f.typ; val = $f.val; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  31356. size = 0;
  31357. err = $ifaceNil;
  31358. f = this;
  31359. order = f.Order;
  31360. if (!($interfaceIsEqual(options.Order, $ifaceNil))) {
  31361. order = options.Order;
  31362. }
  31363. /* */ if (f.Ptr) { $s = 1; continue; }
  31364. /* */ $s = 2; continue;
  31365. /* if (f.Ptr) { */ case 1:
  31366. _r$1 = $clone(val, reflect.Value).Elem(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  31367. val = _r$1;
  31368. /* } */ case 2:
  31369. _r$2 = new Type(f.Type).Resolve(options); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  31370. typ = _r$2;
  31371. _1 = typ;
  31372. /* */ if (_1 === (15)) { $s = 6; continue; }
  31373. /* */ if ((_1 === (2)) || (_1 === (4)) || (_1 === (6)) || (_1 === (8)) || (_1 === (10)) || (_1 === (5)) || (_1 === (7)) || (_1 === (9)) || (_1 === (11))) { $s = 7; continue; }
  31374. /* */ if ((_1 === (12)) || (_1 === (13))) { $s = 8; continue; }
  31375. /* */ if (_1 === (14)) { $s = 9; continue; }
  31376. /* */ if (_1 === (19)) { $s = 10; continue; }
  31377. /* */ $s = 11; continue;
  31378. /* if (_1 === (15)) { */ case 6:
  31379. _r$3 = f.Fields.Pack(buf, $clone(val, reflect.Value), options); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  31380. _tuple = _r$3;
  31381. size = _tuple[0];
  31382. err = _tuple[1];
  31383. $s = -1; return [size, err];
  31384. /* } else if ((_1 === (2)) || (_1 === (4)) || (_1 === (6)) || (_1 === (8)) || (_1 === (10)) || (_1 === (5)) || (_1 === (7)) || (_1 === (9)) || (_1 === (11))) { */ case 7:
  31385. size = new Type(typ).Size();
  31386. n = new $Uint64(0, 0);
  31387. _2 = f.kind;
  31388. if (_2 === (1)) {
  31389. if ($clone(val, reflect.Value).Bool()) {
  31390. n = new $Uint64(0, 1);
  31391. } else {
  31392. n = new $Uint64(0, 0);
  31393. }
  31394. } else if ((_2 === (2)) || (_2 === (3)) || (_2 === (4)) || (_2 === (5)) || (_2 === (6))) {
  31395. n = ((x = $clone(val, reflect.Value).Int(), new $Uint64(x.$high, x.$low)));
  31396. } else {
  31397. n = $clone(val, reflect.Value).Uint();
  31398. }
  31399. _3 = typ;
  31400. /* */ if (_3 === (2)) { $s = 15; continue; }
  31401. /* */ if ((_3 === (4)) || (_3 === (5))) { $s = 16; continue; }
  31402. /* */ if ((_3 === (6)) || (_3 === (7))) { $s = 17; continue; }
  31403. /* */ if ((_3 === (8)) || (_3 === (9))) { $s = 18; continue; }
  31404. /* */ if ((_3 === (10)) || (_3 === (11))) { $s = 19; continue; }
  31405. /* */ $s = 20; continue;
  31406. /* if (_3 === (2)) { */ case 15:
  31407. if (!((n.$high === 0 && n.$low === 0))) {
  31408. (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0] = 1);
  31409. } else {
  31410. (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0] = 0);
  31411. }
  31412. $s = 20; continue;
  31413. /* } else if ((_3 === (4)) || (_3 === (5))) { */ case 16:
  31414. (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0] = ((n.$low << 24 >>> 24)));
  31415. $s = 20; continue;
  31416. /* } else if ((_3 === (6)) || (_3 === (7))) { */ case 17:
  31417. $r = order.PutUint16(buf, ((n.$low << 16 >>> 16))); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  31418. $s = 20; continue;
  31419. /* } else if ((_3 === (8)) || (_3 === (9))) { */ case 18:
  31420. $r = order.PutUint32(buf, ((n.$low >>> 0))); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  31421. $s = 20; continue;
  31422. /* } else if ((_3 === (10)) || (_3 === (11))) { */ case 19:
  31423. $r = order.PutUint64(buf, (n)); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  31424. /* } */ case 20:
  31425. case 14:
  31426. $s = 12; continue;
  31427. /* } else if ((_1 === (12)) || (_1 === (13))) { */ case 8:
  31428. size = new Type(typ).Size();
  31429. n$1 = $clone(val, reflect.Value).Float();
  31430. _4 = typ;
  31431. /* */ if (_4 === (12)) { $s = 25; continue; }
  31432. /* */ if (_4 === (13)) { $s = 26; continue; }
  31433. /* */ $s = 27; continue;
  31434. /* if (_4 === (12)) { */ case 25:
  31435. $r = order.PutUint32(buf, math.Float32bits(($fround(n$1)))); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  31436. $s = 27; continue;
  31437. /* } else if (_4 === (13)) { */ case 26:
  31438. $r = order.PutUint64(buf, math.Float64bits(n$1)); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  31439. /* } */ case 27:
  31440. case 24:
  31441. $s = 12; continue;
  31442. /* } else if (_1 === (14)) { */ case 9:
  31443. _5 = f.kind;
  31444. /* */ if (_5 === (24)) { $s = 31; continue; }
  31445. /* */ $s = 32; continue;
  31446. /* if (_5 === (24)) { */ case 31:
  31447. size = $clone(val, reflect.Value).Len();
  31448. _r$4 = $clone(val, reflect.Value).String(); /* */ $s = 34; case 34: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  31449. $copySlice(buf, (new sliceType($stringToBytes(_r$4))));
  31450. $s = 33; continue;
  31451. /* } else { */ case 32:
  31452. size = $clone(val, reflect.Value).Len();
  31453. _r$5 = $clone(val, reflect.Value).Bytes(); /* */ $s = 35; case 35: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  31454. $copySlice(buf, _r$5);
  31455. /* } */ case 33:
  31456. case 30:
  31457. $s = 12; continue;
  31458. /* } else if (_1 === (19)) { */ case 10:
  31459. _r$6 = $clone($clone(val, reflect.Value).Addr(), reflect.Value).Interface(); /* */ $s = 36; case 36: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  31460. _r$7 = $assertType(_r$6, Custom).Pack(buf, options); /* */ $s = 37; case 37: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
  31461. _tuple$1 = _r$7;
  31462. size = _tuple$1[0];
  31463. err = _tuple$1[1];
  31464. $s = -1; return [size, err];
  31465. /* } else { */ case 11:
  31466. _r$8 = fmt.Sprintf("no pack handler for type: %s", new sliceType$1([new Type(typ)])); /* */ $s = 38; case 38: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
  31467. $panic(new $String(_r$8));
  31468. /* } */ case 12:
  31469. case 5:
  31470. $s = -1; return [size, err];
  31471. /* */ } return; } if ($f === undefined) { $f = { $blk: Field.ptr.prototype.packVal }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._4 = _4; $f._5 = _5; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.buf = buf; $f.err = err; $f.f = f; $f.length = length; $f.n = n; $f.n$1 = n$1; $f.options = options; $f.order = order; $f.size = size; $f.typ = typ; $f.val = val; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  31472. };
  31473. Field.prototype.packVal = function(buf, val, length, options) { return this.$val.packVal(buf, val, length, options); };
  31474. Field.ptr.prototype.Pack = function(buf, val, length, options) {
  31475. var _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, buf, cur, end, err, f, i, i$1, length, n, options, pos, rep, tmp, typ, val, zero, $s, $r;
  31476. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _tuple = $f._tuple; buf = $f.buf; cur = $f.cur; end = $f.end; err = $f.err; f = $f.f; i = $f.i; i$1 = $f.i$1; length = $f.length; n = $f.n; options = $f.options; pos = $f.pos; rep = $f.rep; tmp = $f.tmp; typ = $f.typ; val = $f.val; zero = $f.zero; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  31477. f = this;
  31478. _r$1 = new Type(f.Type).Resolve(options); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  31479. typ = _r$1;
  31480. if (typ === 1) {
  31481. i = 0;
  31482. while (true) {
  31483. if (!(i < length)) { break; }
  31484. ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 0);
  31485. i = i + (1) >> 0;
  31486. }
  31487. $s = -1; return [length, $ifaceNil];
  31488. }
  31489. /* */ if (f.Slice) { $s = 2; continue; }
  31490. /* */ $s = 3; continue;
  31491. /* if (f.Slice) { */ case 2:
  31492. end = $clone(val, reflect.Value).Len();
  31493. /* */ if (!f.Array && (typ === 5) && ((f.defType === 5) || (f.kind === 24))) { $s = 5; continue; }
  31494. /* */ $s = 6; continue;
  31495. /* if (!f.Array && (typ === 5) && ((f.defType === 5) || (f.kind === 24))) { */ case 5:
  31496. tmp = sliceType.nil;
  31497. /* */ if (f.kind === 24) { $s = 7; continue; }
  31498. /* */ $s = 8; continue;
  31499. /* if (f.kind === 24) { */ case 7:
  31500. _r$2 = $clone(val, reflect.Value).String(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  31501. tmp = (new sliceType($stringToBytes(_r$2)));
  31502. $s = 9; continue;
  31503. /* } else { */ case 8:
  31504. _r$3 = $clone(val, reflect.Value).Bytes(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  31505. tmp = _r$3;
  31506. /* } */ case 9:
  31507. $copySlice(buf, tmp);
  31508. if (end < length) {
  31509. rep = bytes.Repeat(new sliceType([0]), length - end >> 0);
  31510. $copySlice($subslice(buf, end), rep);
  31511. $s = -1; return [length, $ifaceNil];
  31512. }
  31513. $s = -1; return [$clone(val, reflect.Value).Len(), $ifaceNil];
  31514. /* } */ case 6:
  31515. pos = 0;
  31516. zero = new reflect.Value.ptr(ptrType.nil, 0, 0);
  31517. /* */ if (end < length) { $s = 12; continue; }
  31518. /* */ $s = 13; continue;
  31519. /* if (end < length) { */ case 12:
  31520. _r$4 = $clone(val, reflect.Value).Type().Elem(); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  31521. _r$5 = reflect.Zero(_r$4); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  31522. zero = _r$5;
  31523. /* } */ case 13:
  31524. i$1 = 0;
  31525. /* while (true) { */ case 16:
  31526. /* if (!(i$1 < length)) { break; } */ if(!(i$1 < length)) { $s = 17; continue; }
  31527. cur = zero;
  31528. /* */ if (i$1 < end) { $s = 18; continue; }
  31529. /* */ $s = 19; continue;
  31530. /* if (i$1 < end) { */ case 18:
  31531. _r$6 = $clone(val, reflect.Value).Index(i$1); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  31532. cur = _r$6;
  31533. /* } */ case 19:
  31534. _r$7 = f.packVal($subslice(buf, pos), $clone(cur, reflect.Value), 1, options); /* */ $s = 21; case 21: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
  31535. _tuple = _r$7;
  31536. n = _tuple[0];
  31537. err = _tuple[1];
  31538. if (!($interfaceIsEqual(err, $ifaceNil))) {
  31539. $s = -1; return [pos, err];
  31540. } else {
  31541. pos = pos + (n) >> 0;
  31542. }
  31543. i$1 = i$1 + (1) >> 0;
  31544. /* } */ $s = 16; continue; case 17:
  31545. $s = -1; return [pos, $ifaceNil];
  31546. /* } else { */ case 3:
  31547. _r$8 = f.packVal(buf, $clone(val, reflect.Value), length, options); /* */ $s = 22; case 22: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
  31548. $s = -1; return _r$8;
  31549. /* } */ case 4:
  31550. $s = -1; return [0, $ifaceNil];
  31551. /* */ } return; } if ($f === undefined) { $f = { $blk: Field.ptr.prototype.Pack }; } $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._tuple = _tuple; $f.buf = buf; $f.cur = cur; $f.end = end; $f.err = err; $f.f = f; $f.i = i; $f.i$1 = i$1; $f.length = length; $f.n = n; $f.options = options; $f.pos = pos; $f.rep = rep; $f.tmp = tmp; $f.typ = typ; $f.val = val; $f.zero = zero; $f.$s = $s; $f.$r = $r; return $f;
  31552. };
  31553. Field.prototype.Pack = function(buf, val, length, options) { return this.$val.Pack(buf, val, length, options); };
  31554. Field.ptr.prototype.unpackVal = function(buf, val, length, options) {
  31555. var _1, _2, _3, _4, _5, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, buf, f, length, n, n$1, options, order, typ, val, x, x$1, x$2, x$3, x$4, $s, $r;
  31556. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _4 = $f._4; _5 = $f._5; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; buf = $f.buf; f = $f.f; length = $f.length; n = $f.n; n$1 = $f.n$1; options = $f.options; order = $f.order; typ = $f.typ; val = $f.val; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  31557. f = this;
  31558. order = f.Order;
  31559. if (!($interfaceIsEqual(options.Order, $ifaceNil))) {
  31560. order = options.Order;
  31561. }
  31562. /* */ if (f.Ptr) { $s = 1; continue; }
  31563. /* */ $s = 2; continue;
  31564. /* if (f.Ptr) { */ case 1:
  31565. _r$1 = $clone(val, reflect.Value).Elem(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  31566. val = _r$1;
  31567. /* } */ case 2:
  31568. _r$2 = new Type(f.Type).Resolve(options); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  31569. typ = _r$2;
  31570. _1 = typ;
  31571. /* */ if ((_1 === (12)) || (_1 === (13))) { $s = 6; continue; }
  31572. /* */ if ((_1 === (2)) || (_1 === (4)) || (_1 === (6)) || (_1 === (8)) || (_1 === (10)) || (_1 === (5)) || (_1 === (7)) || (_1 === (9)) || (_1 === (11))) { $s = 7; continue; }
  31573. /* */ $s = 8; continue;
  31574. /* if ((_1 === (12)) || (_1 === (13))) { */ case 6:
  31575. n = 0;
  31576. _2 = typ;
  31577. /* */ if (_2 === (12)) { $s = 11; continue; }
  31578. /* */ if (_2 === (13)) { $s = 12; continue; }
  31579. /* */ $s = 13; continue;
  31580. /* if (_2 === (12)) { */ case 11:
  31581. _r$3 = order.Uint32(buf); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  31582. _r$4 = math.Float32frombits(_r$3); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  31583. n = (_r$4);
  31584. $s = 13; continue;
  31585. /* } else if (_2 === (13)) { */ case 12:
  31586. _r$5 = order.Uint64(buf); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  31587. _r$6 = math.Float64frombits(_r$5); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  31588. n = _r$6;
  31589. /* } */ case 13:
  31590. case 10:
  31591. _3 = f.kind;
  31592. /* */ if ((_3 === (13)) || (_3 === (14))) { $s = 19; continue; }
  31593. /* */ $s = 20; continue;
  31594. /* if ((_3 === (13)) || (_3 === (14))) { */ case 19:
  31595. $clone(val, reflect.Value).SetFloat(n);
  31596. $s = 21; continue;
  31597. /* } else { */ case 20:
  31598. _r$7 = fmt.Errorf("struc: refusing to unpack float into field %s of type %s", new sliceType$1([new $String(f.Name), new $String(new reflect.Kind(f.kind).String())])); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
  31599. $s = -1; return _r$7;
  31600. /* } */ case 21:
  31601. case 18:
  31602. $s = 9; continue;
  31603. /* } else if ((_1 === (2)) || (_1 === (4)) || (_1 === (6)) || (_1 === (8)) || (_1 === (10)) || (_1 === (5)) || (_1 === (7)) || (_1 === (9)) || (_1 === (11))) { */ case 7:
  31604. n$1 = new $Uint64(0, 0);
  31605. _4 = typ;
  31606. /* */ if (_4 === (4)) { $s = 24; continue; }
  31607. /* */ if (_4 === (6)) { $s = 25; continue; }
  31608. /* */ if (_4 === (8)) { $s = 26; continue; }
  31609. /* */ if (_4 === (10)) { $s = 27; continue; }
  31610. /* */ if ((_4 === (2)) || (_4 === (5))) { $s = 28; continue; }
  31611. /* */ if (_4 === (7)) { $s = 29; continue; }
  31612. /* */ if (_4 === (9)) { $s = 30; continue; }
  31613. /* */ if (_4 === (11)) { $s = 31; continue; }
  31614. /* */ $s = 32; continue;
  31615. /* if (_4 === (4)) { */ case 24:
  31616. n$1 = ((x = (new $Int64(0, (((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) << 24 >> 24)))), new $Uint64(x.$high, x.$low)));
  31617. $s = 32; continue;
  31618. /* } else if (_4 === (6)) { */ case 25:
  31619. _r$8 = order.Uint16(buf); /* */ $s = 33; case 33: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
  31620. n$1 = ((x$1 = (new $Int64(0, ((_r$8 << 16 >> 16)))), new $Uint64(x$1.$high, x$1.$low)));
  31621. $s = 32; continue;
  31622. /* } else if (_4 === (8)) { */ case 26:
  31623. _r$9 = order.Uint32(buf); /* */ $s = 34; case 34: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  31624. n$1 = ((x$2 = (new $Int64(0, ((_r$9 >> 0)))), new $Uint64(x$2.$high, x$2.$low)));
  31625. $s = 32; continue;
  31626. /* } else if (_4 === (10)) { */ case 27:
  31627. _r$10 = order.Uint64(buf); /* */ $s = 35; case 35: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
  31628. n$1 = ((x$3 = ((x$4 = _r$10, new $Int64(x$4.$high, x$4.$low))), new $Uint64(x$3.$high, x$3.$low)));
  31629. $s = 32; continue;
  31630. /* } else if ((_4 === (2)) || (_4 === (5))) { */ case 28:
  31631. n$1 = (new $Uint64(0, (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0])));
  31632. $s = 32; continue;
  31633. /* } else if (_4 === (7)) { */ case 29:
  31634. _r$11 = order.Uint16(buf); /* */ $s = 36; case 36: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
  31635. n$1 = (new $Uint64(0, _r$11));
  31636. $s = 32; continue;
  31637. /* } else if (_4 === (9)) { */ case 30:
  31638. _r$12 = order.Uint32(buf); /* */ $s = 37; case 37: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
  31639. n$1 = (new $Uint64(0, _r$12));
  31640. $s = 32; continue;
  31641. /* } else if (_4 === (11)) { */ case 31:
  31642. _r$13 = order.Uint64(buf); /* */ $s = 38; case 38: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
  31643. n$1 = (_r$13);
  31644. /* } */ case 32:
  31645. case 23:
  31646. _5 = f.kind;
  31647. if (_5 === (1)) {
  31648. $clone(val, reflect.Value).SetBool(!((n$1.$high === 0 && n$1.$low === 0)));
  31649. } else if ((_5 === (2)) || (_5 === (3)) || (_5 === (4)) || (_5 === (5)) || (_5 === (6))) {
  31650. $clone(val, reflect.Value).SetInt((new $Int64(n$1.$high, n$1.$low)));
  31651. } else {
  31652. $clone(val, reflect.Value).SetUint(n$1);
  31653. }
  31654. $s = 9; continue;
  31655. /* } else { */ case 8:
  31656. _r$14 = fmt.Sprintf("no unpack handler for type: %s", new sliceType$1([new Type(typ)])); /* */ $s = 39; case 39: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
  31657. $panic(new $String(_r$14));
  31658. /* } */ case 9:
  31659. case 5:
  31660. $s = -1; return $ifaceNil;
  31661. /* */ } return; } if ($f === undefined) { $f = { $blk: Field.ptr.prototype.unpackVal }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._4 = _4; $f._5 = _5; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f.buf = buf; $f.f = f; $f.length = length; $f.n = n; $f.n$1 = n$1; $f.options = options; $f.order = order; $f.typ = typ; $f.val = val; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.$s = $s; $f.$r = $r; return $f;
  31662. };
  31663. Field.prototype.unpackVal = function(buf, val, length, options) { return this.$val.unpackVal(buf, val, length, options); };
  31664. Field.ptr.prototype.Unpack = function(buf, val, length, options) {
  31665. var _arg, _arg$1, _arg$2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, buf, err, f, i, length, options, pos, size, typ, val, $s, $r;
  31666. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; buf = $f.buf; err = $f.err; f = $f.f; i = $f.i; length = $f.length; options = $f.options; pos = $f.pos; size = $f.size; typ = $f.typ; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  31667. f = this;
  31668. _r$1 = new Type(f.Type).Resolve(options); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  31669. typ = _r$1;
  31670. /* */ if ((typ === 1) || (f.kind === 24)) { $s = 2; continue; }
  31671. /* */ if (f.Slice) { $s = 3; continue; }
  31672. /* */ $s = 4; continue;
  31673. /* if ((typ === 1) || (f.kind === 24)) { */ case 2:
  31674. if (typ === 1) {
  31675. $s = -1; return $ifaceNil;
  31676. } else {
  31677. $clone(val, reflect.Value).SetString(($bytesToString(buf)));
  31678. $s = -1; return $ifaceNil;
  31679. }
  31680. $s = 5; continue;
  31681. /* } else if (f.Slice) { */ case 3:
  31682. /* */ if ($clone(val, reflect.Value).Cap() < length) { $s = 6; continue; }
  31683. /* */ if ($clone(val, reflect.Value).Len() < length) { $s = 7; continue; }
  31684. /* */ $s = 8; continue;
  31685. /* if ($clone(val, reflect.Value).Cap() < length) { */ case 6:
  31686. _r$2 = reflect.MakeSlice($clone(val, reflect.Value).Type(), length, length); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  31687. $r = $clone(val, reflect.Value).Set($clone(_r$2, reflect.Value)); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  31688. $s = 8; continue;
  31689. /* } else if ($clone(val, reflect.Value).Len() < length) { */ case 7:
  31690. _r$3 = $clone(val, reflect.Value).Slice(0, length); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  31691. $r = $clone(val, reflect.Value).Set($clone(_r$3, reflect.Value)); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  31692. /* } */ case 8:
  31693. /* */ if (!f.Array && (typ === 5) && (f.defType === 5)) { $s = 13; continue; }
  31694. /* */ $s = 14; continue;
  31695. /* if (!f.Array && (typ === 5) && (f.defType === 5)) { */ case 13:
  31696. _r$4 = $clone(val, reflect.Value).Bytes(); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  31697. $copySlice(_r$4, $subslice(buf, 0, length));
  31698. $s = -1; return $ifaceNil;
  31699. /* } */ case 14:
  31700. pos = 0;
  31701. size = new Type(typ).Size();
  31702. i = 0;
  31703. /* while (true) { */ case 16:
  31704. /* if (!(i < length)) { break; } */ if(!(i < length)) { $s = 17; continue; }
  31705. _arg = $subslice(buf, pos, (pos + size >> 0));
  31706. _r$5 = $clone(val, reflect.Value).Index(i); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  31707. _arg$1 = $clone(_r$5, reflect.Value);
  31708. _arg$2 = options;
  31709. _r$6 = f.unpackVal(_arg, _arg$1, 1, _arg$2); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  31710. err = _r$6;
  31711. if (!($interfaceIsEqual(err, $ifaceNil))) {
  31712. $s = -1; return err;
  31713. }
  31714. pos = pos + (size) >> 0;
  31715. i = i + (1) >> 0;
  31716. /* } */ $s = 16; continue; case 17:
  31717. $s = -1; return $ifaceNil;
  31718. /* } else { */ case 4:
  31719. _r$7 = f.unpackVal(buf, $clone(val, reflect.Value), length, options); /* */ $s = 20; case 20: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
  31720. $s = -1; return _r$7;
  31721. /* } */ case 5:
  31722. $s = -1; return $ifaceNil;
  31723. /* */ } return; } if ($f === undefined) { $f = { $blk: Field.ptr.prototype.Unpack }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f.buf = buf; $f.err = err; $f.f = f; $f.i = i; $f.length = length; $f.options = options; $f.pos = pos; $f.size = size; $f.typ = typ; $f.val = val; $f.$s = $s; $f.$r = $r; return $f;
  31724. };
  31725. Field.prototype.Unpack = function(buf, val, length, options) { return this.$val.Unpack(buf, val, length, options); };
  31726. Fields.prototype.SetByteOrder = function(order) {
  31727. var _i, _ref, f, field, order;
  31728. f = this;
  31729. _ref = f;
  31730. _i = 0;
  31731. while (true) {
  31732. if (!(_i < _ref.$length)) { break; }
  31733. field = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  31734. if (!(field === ptrType$1.nil)) {
  31735. field.Order = order;
  31736. }
  31737. _i++;
  31738. }
  31739. };
  31740. $ptrType(Fields).prototype.SetByteOrder = function(order) { return this.$get().SetByteOrder(order); };
  31741. Fields.prototype.String = function() {
  31742. var _i, _r$1, _ref, f, field, fields, i, $s, $r;
  31743. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r$1 = $f._r$1; _ref = $f._ref; f = $f.f; field = $f.field; fields = $f.fields; i = $f.i; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  31744. f = this;
  31745. fields = $makeSlice(sliceType$4, f.$length);
  31746. _ref = f;
  31747. _i = 0;
  31748. /* while (true) { */ case 1:
  31749. /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
  31750. i = _i;
  31751. field = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  31752. /* */ if (!(field === ptrType$1.nil)) { $s = 3; continue; }
  31753. /* */ $s = 4; continue;
  31754. /* if (!(field === ptrType$1.nil)) { */ case 3:
  31755. _r$1 = field.String(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  31756. ((i < 0 || i >= fields.$length) ? ($throwRuntimeError("index out of range"), undefined) : fields.$array[fields.$offset + i] = _r$1);
  31757. /* } */ case 4:
  31758. _i++;
  31759. /* } */ $s = 1; continue; case 2:
  31760. $s = -1; return "{" + strings.Join(fields, ", ") + "}";
  31761. /* */ } return; } if ($f === undefined) { $f = { $blk: Fields.prototype.String }; } $f._i = _i; $f._r$1 = _r$1; $f._ref = _ref; $f.f = f; $f.field = field; $f.fields = fields; $f.i = i; $f.$s = $s; $f.$r = $r; return $f;
  31762. };
  31763. $ptrType(Fields).prototype.String = function() { return this.$get().String(); };
  31764. Fields.prototype.Sizeof = function(val, options) {
  31765. var _i, _r$1, _r$2, _r$3, _ref, f, field, i, options, size, val, $s, $r;
  31766. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _ref = $f._ref; f = $f.f; field = $f.field; i = $f.i; options = $f.options; size = $f.size; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  31767. f = this;
  31768. /* while (true) { */ case 1:
  31769. /* if (!($clone(val, reflect.Value).Kind() === 22)) { break; } */ if(!($clone(val, reflect.Value).Kind() === 22)) { $s = 2; continue; }
  31770. _r$1 = $clone(val, reflect.Value).Elem(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  31771. val = _r$1;
  31772. /* } */ $s = 1; continue; case 2:
  31773. size = 0;
  31774. _ref = f;
  31775. _i = 0;
  31776. /* while (true) { */ case 4:
  31777. /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; }
  31778. i = _i;
  31779. field = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  31780. /* */ if (!(field === ptrType$1.nil)) { $s = 6; continue; }
  31781. /* */ $s = 7; continue;
  31782. /* if (!(field === ptrType$1.nil)) { */ case 6:
  31783. _r$2 = $clone(val, reflect.Value).Field(i); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  31784. _r$3 = field.Size($clone(_r$2, reflect.Value), options); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  31785. size = size + (_r$3) >> 0;
  31786. /* } */ case 7:
  31787. _i++;
  31788. /* } */ $s = 4; continue; case 5:
  31789. $s = -1; return size;
  31790. /* */ } return; } if ($f === undefined) { $f = { $blk: Fields.prototype.Sizeof }; } $f._i = _i; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._ref = _ref; $f.f = f; $f.field = field; $f.i = i; $f.options = options; $f.size = size; $f.val = val; $f.$s = $s; $f.$r = $r; return $f;
  31791. };
  31792. $ptrType(Fields).prototype.Sizeof = function(val, options) { return this.$get().Sizeof(val, options); };
  31793. Fields.prototype.sizefrom = function(val, index) {
  31794. var _1, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, f, field, index, n, name, val, x, $s, $r;
  31795. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _arg = $f._arg; _arg$1 = $f._arg$1; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; f = $f.f; field = $f.field; index = $f.index; n = $f.n; name = $f.name; val = $f.val; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  31796. f = this;
  31797. _r$1 = $clone(val, reflect.Value).FieldByIndex(index); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  31798. field = _r$1;
  31799. _1 = $clone(field, reflect.Value).Kind();
  31800. /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 3; continue; }
  31801. /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11))) { $s = 4; continue; }
  31802. /* */ $s = 5; continue;
  31803. /* if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 3:
  31804. $s = -1; return (((x = $clone(field, reflect.Value).Int(), x.$low + ((x.$high >> 31) * 4294967296)) >> 0));
  31805. /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11))) { */ case 4:
  31806. n = (($clone(field, reflect.Value).Uint().$low >> 0));
  31807. if (n < 0) {
  31808. $s = -1; return 0;
  31809. }
  31810. $s = -1; return n;
  31811. /* } else { */ case 5:
  31812. _r$2 = $clone(val, reflect.Value).Type().FieldByIndex(index); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  31813. name = _r$2.Name;
  31814. _r$3 = $clone(val, reflect.Value).Interface(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  31815. _arg = _r$3;
  31816. _arg$1 = new $String(name);
  31817. _r$4 = fmt.Sprintf("sizeof field %T.%s not an integer type", new sliceType$1([_arg, _arg$1])); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  31818. $panic(new $String(_r$4));
  31819. /* } */ case 6:
  31820. case 2:
  31821. $s = -1; return 0;
  31822. /* */ } return; } if ($f === undefined) { $f = { $blk: Fields.prototype.sizefrom }; } $f._1 = _1; $f._arg = _arg; $f._arg$1 = _arg$1; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f.f = f; $f.field = field; $f.index = index; $f.n = n; $f.name = name; $f.val = val; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  31823. };
  31824. $ptrType(Fields).prototype.sizefrom = function(val, index) { return this.$get().sizefrom(val, index); };
  31825. Fields.prototype.Pack = function(buf, val, options) {
  31826. var _1, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, buf, err, f, field, i, length, length$1, n, options, pos, v, val, $s, $r;
  31827. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _i = $f._i; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _tuple = $f._tuple; buf = $f.buf; err = $f.err; f = $f.f; field = $f.field; i = $f.i; length = $f.length; length$1 = $f.length$1; n = $f.n; options = $f.options; pos = $f.pos; v = $f.v; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  31828. f = this;
  31829. /* while (true) { */ case 1:
  31830. /* if (!($clone(val, reflect.Value).Kind() === 22)) { break; } */ if(!($clone(val, reflect.Value).Kind() === 22)) { $s = 2; continue; }
  31831. _r$1 = $clone(val, reflect.Value).Elem(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  31832. val = _r$1;
  31833. /* } */ $s = 1; continue; case 2:
  31834. pos = 0;
  31835. _ref = f;
  31836. _i = 0;
  31837. /* while (true) { */ case 4:
  31838. /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; }
  31839. i = _i;
  31840. field = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  31841. /* */ if (field === ptrType$1.nil) { $s = 6; continue; }
  31842. /* */ $s = 7; continue;
  31843. /* if (field === ptrType$1.nil) { */ case 6:
  31844. _i++;
  31845. /* continue; */ $s = 4; continue;
  31846. /* } */ case 7:
  31847. _r$2 = $clone(val, reflect.Value).Field(i); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  31848. v = _r$2;
  31849. length = field.Len;
  31850. /* */ if (!(field.Sizefrom === sliceType$2.nil)) { $s = 9; continue; }
  31851. /* */ $s = 10; continue;
  31852. /* if (!(field.Sizefrom === sliceType$2.nil)) { */ case 9:
  31853. _r$3 = f.sizefrom($clone(val, reflect.Value), field.Sizefrom); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  31854. length = _r$3;
  31855. /* } */ case 10:
  31856. if (length <= 0 && field.Slice) {
  31857. length = $clone(v, reflect.Value).Len();
  31858. }
  31859. /* */ if (!(field.Sizeof === sliceType$2.nil)) { $s = 12; continue; }
  31860. /* */ $s = 13; continue;
  31861. /* if (!(field.Sizeof === sliceType$2.nil)) { */ case 12:
  31862. _r$4 = $clone(val, reflect.Value).FieldByIndex(field.Sizeof); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  31863. _r$5 = $clone(_r$4, reflect.Value).Len(); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  31864. length$1 = _r$5;
  31865. _1 = field.kind;
  31866. /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 17; continue; }
  31867. /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11))) { $s = 18; continue; }
  31868. /* */ $s = 19; continue;
  31869. /* if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 17:
  31870. _r$6 = $clone(reflect.New($clone(v, reflect.Value).Type()), reflect.Value).Elem(); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  31871. v = _r$6;
  31872. $clone(v, reflect.Value).SetInt((new $Int64(0, length$1)));
  31873. $s = 20; continue;
  31874. /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11))) { */ case 18:
  31875. _r$7 = $clone(reflect.New($clone(v, reflect.Value).Type()), reflect.Value).Elem(); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
  31876. v = _r$7;
  31877. $clone(v, reflect.Value).SetUint((new $Uint64(0, length$1)));
  31878. $s = 20; continue;
  31879. /* } else { */ case 19:
  31880. _r$8 = fmt.Sprintf("sizeof field is not int or uint type: %s, %s", new sliceType$1([new $String(field.Name), $clone(v, reflect.Value).Type()])); /* */ $s = 23; case 23: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
  31881. $panic(new $String(_r$8));
  31882. /* } */ case 20:
  31883. case 16:
  31884. /* } */ case 13:
  31885. _r$9 = field.Pack($subslice(buf, pos), $clone(v, reflect.Value), length, options); /* */ $s = 24; case 24: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  31886. _tuple = _r$9;
  31887. n = _tuple[0];
  31888. err = _tuple[1];
  31889. if (!($interfaceIsEqual(err, $ifaceNil))) {
  31890. $s = -1; return [n, err];
  31891. } else {
  31892. pos = pos + (n) >> 0;
  31893. }
  31894. _i++;
  31895. /* } */ $s = 4; continue; case 5:
  31896. $s = -1; return [pos, $ifaceNil];
  31897. /* */ } return; } if ($f === undefined) { $f = { $blk: Fields.prototype.Pack }; } $f._1 = _1; $f._i = _i; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._tuple = _tuple; $f.buf = buf; $f.err = err; $f.f = f; $f.field = field; $f.i = i; $f.length = length; $f.length$1 = length$1; $f.n = n; $f.options = options; $f.pos = pos; $f.v = v; $f.val = val; $f.$s = $s; $f.$r = $r; return $f;
  31898. };
  31899. $ptrType(Fields).prototype.Pack = function(buf, val, options) { return this.$get().Pack(buf, val, options); };
  31900. Fields.prototype.Unpack = function(r, val, options) {
  31901. var _i, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, _v, buf, err, err$1, err$2, err$3, err$4, err$5, err$6, f, field, fields, fields$1, i, i$1, length, options, r, size, tmp, typ, v, v$1, val, vals, $s, $r;
  31902. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$16 = $f._r$16; _r$17 = $f._r$17; _r$18 = $f._r$18; _r$19 = $f._r$19; _r$2 = $f._r$2; _r$20 = $f._r$20; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _v = $f._v; buf = $f.buf; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; err$3 = $f.err$3; err$4 = $f.err$4; err$5 = $f.err$5; err$6 = $f.err$6; f = $f.f; field = $f.field; fields = $f.fields; fields$1 = $f.fields$1; i = $f.i; i$1 = $f.i$1; length = $f.length; options = $f.options; r = $f.r; size = $f.size; tmp = $f.tmp; typ = $f.typ; v = $f.v; v$1 = $f.v$1; val = $f.val; vals = $f.vals; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  31903. f = this;
  31904. /* while (true) { */ case 1:
  31905. /* if (!($clone(val, reflect.Value).Kind() === 22)) { break; } */ if(!($clone(val, reflect.Value).Kind() === 22)) { $s = 2; continue; }
  31906. _r$1 = $clone(val, reflect.Value).Elem(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  31907. val = _r$1;
  31908. /* } */ $s = 1; continue; case 2:
  31909. tmp = arrayType$1.zero();
  31910. buf = sliceType.nil;
  31911. _ref = f;
  31912. _i = 0;
  31913. /* while (true) { */ case 4:
  31914. /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; }
  31915. i = _i;
  31916. field = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  31917. /* */ if (field === ptrType$1.nil) { $s = 6; continue; }
  31918. /* */ $s = 7; continue;
  31919. /* if (field === ptrType$1.nil) { */ case 6:
  31920. _i++;
  31921. /* continue; */ $s = 4; continue;
  31922. /* } */ case 7:
  31923. _r$2 = $clone(val, reflect.Value).Field(i); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  31924. v = _r$2;
  31925. length = field.Len;
  31926. /* */ if (!(field.Sizefrom === sliceType$2.nil)) { $s = 9; continue; }
  31927. /* */ $s = 10; continue;
  31928. /* if (!(field.Sizefrom === sliceType$2.nil)) { */ case 9:
  31929. _r$3 = f.sizefrom($clone(val, reflect.Value), field.Sizefrom); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  31930. length = _r$3;
  31931. /* } */ case 10:
  31932. if (!($clone(v, reflect.Value).Kind() === 22)) { _v = false; $s = 14; continue s; }
  31933. _r$4 = $clone(v, reflect.Value).Elem(); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  31934. _r$5 = $clone(_r$4, reflect.Value).IsValid(); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  31935. _v = !_r$5; case 14:
  31936. /* */ if (_v) { $s = 12; continue; }
  31937. /* */ $s = 13; continue;
  31938. /* if (_v) { */ case 12:
  31939. _r$6 = $clone(v, reflect.Value).Type().Elem(); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  31940. _r$7 = reflect.New(_r$6); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
  31941. $r = $clone(v, reflect.Value).Set($clone(_r$7, reflect.Value)); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  31942. /* } */ case 13:
  31943. /* */ if (field.Type === 15) { $s = 20; continue; }
  31944. /* */ $s = 21; continue;
  31945. /* if (field.Type === 15) { */ case 20:
  31946. /* */ if (field.Slice) { $s = 23; continue; }
  31947. /* */ $s = 24; continue;
  31948. /* if (field.Slice) { */ case 23:
  31949. _r$8 = reflect.MakeSlice($clone(v, reflect.Value).Type(), length, length); /* */ $s = 26; case 26: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
  31950. vals = _r$8;
  31951. i$1 = 0;
  31952. /* while (true) { */ case 27:
  31953. /* if (!(i$1 < length)) { break; } */ if(!(i$1 < length)) { $s = 28; continue; }
  31954. _r$9 = $clone(vals, reflect.Value).Index(i$1); /* */ $s = 29; case 29: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  31955. v$1 = _r$9;
  31956. _r$10 = parseFields($clone(v$1, reflect.Value)); /* */ $s = 30; case 30: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
  31957. _tuple = _r$10;
  31958. fields = _tuple[0];
  31959. err = _tuple[1];
  31960. if (!($interfaceIsEqual(err, $ifaceNil))) {
  31961. $s = -1; return err;
  31962. }
  31963. _r$11 = fields.Unpack(r, $clone(v$1, reflect.Value), options); /* */ $s = 31; case 31: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
  31964. err$1 = _r$11;
  31965. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  31966. $s = -1; return err$1;
  31967. }
  31968. i$1 = i$1 + (1) >> 0;
  31969. /* } */ $s = 27; continue; case 28:
  31970. $r = $clone(v, reflect.Value).Set($clone(vals, reflect.Value)); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  31971. $s = 25; continue;
  31972. /* } else { */ case 24:
  31973. _r$12 = parseFields($clone(v, reflect.Value)); /* */ $s = 33; case 33: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
  31974. _tuple$1 = _r$12;
  31975. fields$1 = _tuple$1[0];
  31976. err$2 = _tuple$1[1];
  31977. if (!($interfaceIsEqual(err$2, $ifaceNil))) {
  31978. $s = -1; return err$2;
  31979. }
  31980. _r$13 = fields$1.Unpack(r, $clone(v, reflect.Value), options); /* */ $s = 34; case 34: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
  31981. err$3 = _r$13;
  31982. if (!($interfaceIsEqual(err$3, $ifaceNil))) {
  31983. $s = -1; return err$3;
  31984. }
  31985. /* } */ case 25:
  31986. _i++;
  31987. /* continue; */ $s = 4; continue;
  31988. $s = 22; continue;
  31989. /* } else { */ case 21:
  31990. _r$14 = new Type(field.Type).Resolve(options); /* */ $s = 35; case 35: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
  31991. typ = _r$14;
  31992. /* */ if (typ === 19) { $s = 36; continue; }
  31993. /* */ $s = 37; continue;
  31994. /* if (typ === 19) { */ case 36:
  31995. _r$15 = $clone($clone(v, reflect.Value).Addr(), reflect.Value).Interface(); /* */ $s = 39; case 39: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
  31996. _r$16 = $assertType(_r$15, Custom).Unpack(r, length, options); /* */ $s = 40; case 40: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; }
  31997. err$4 = _r$16;
  31998. if (!($interfaceIsEqual(err$4, $ifaceNil))) {
  31999. $s = -1; return err$4;
  32000. }
  32001. $s = 38; continue;
  32002. /* } else { */ case 37:
  32003. _r$17 = new Type(field.Type).Resolve(options); /* */ $s = 41; case 41: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; }
  32004. _r$18 = new Type(_r$17).Size(); /* */ $s = 42; case 42: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; }
  32005. size = $imul(length, _r$18);
  32006. if (size < 8) {
  32007. buf = $subslice(new sliceType(tmp), 0, size);
  32008. } else {
  32009. buf = $makeSlice(sliceType, size);
  32010. }
  32011. _r$19 = io.ReadFull(r, buf); /* */ $s = 43; case 43: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; }
  32012. _tuple$2 = _r$19;
  32013. err$5 = _tuple$2[1];
  32014. if (!($interfaceIsEqual(err$5, $ifaceNil))) {
  32015. $s = -1; return err$5;
  32016. }
  32017. _r$20 = field.Unpack($subslice(buf, 0, size), $clone(v, reflect.Value), length, options); /* */ $s = 44; case 44: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; }
  32018. err$6 = _r$20;
  32019. if (!($interfaceIsEqual(err$6, $ifaceNil))) {
  32020. $s = -1; return err$6;
  32021. }
  32022. /* } */ case 38:
  32023. /* } */ case 22:
  32024. _i++;
  32025. /* } */ $s = 4; continue; case 5:
  32026. $s = -1; return $ifaceNil;
  32027. /* */ } return; } if ($f === undefined) { $f = { $blk: Fields.prototype.Unpack }; } $f._i = _i; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$16 = _r$16; $f._r$17 = _r$17; $f._r$18 = _r$18; $f._r$19 = _r$19; $f._r$2 = _r$2; $f._r$20 = _r$20; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._v = _v; $f.buf = buf; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.err$3 = err$3; $f.err$4 = err$4; $f.err$5 = err$5; $f.err$6 = err$6; $f.f = f; $f.field = field; $f.fields = fields; $f.fields$1 = fields$1; $f.i = i; $f.i$1 = i$1; $f.length = length; $f.options = options; $f.r = r; $f.size = size; $f.tmp = tmp; $f.typ = typ; $f.v = v; $f.v$1 = v$1; $f.val = val; $f.vals = vals; $f.$s = $s; $f.$r = $r; return $f;
  32028. };
  32029. $ptrType(Fields).prototype.Unpack = function(r, val, options) { return this.$get().Unpack(r, val, options); };
  32030. parseStrucTag = function(tag) {
  32031. var _i, _ref, s, t, tag, tagStr, tmp, tmp$1, x, x$1, x$2;
  32032. t = new strucTag.ptr("", (x = binary.BigEndian, new x.constructor.elem(x)), "", false, "");
  32033. tagStr = new reflect.StructTag(tag).Get("struc");
  32034. if (tagStr === "") {
  32035. tagStr = new reflect.StructTag(tag).Get("struct");
  32036. }
  32037. _ref = strings.Split(tagStr, ",");
  32038. _i = 0;
  32039. while (true) {
  32040. if (!(_i < _ref.$length)) { break; }
  32041. s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  32042. if (strings.HasPrefix(s, "sizeof=")) {
  32043. tmp = strings.SplitN(s, "=", 2);
  32044. t.Sizeof = (1 >= tmp.$length ? ($throwRuntimeError("index out of range"), undefined) : tmp.$array[tmp.$offset + 1]);
  32045. } else if (strings.HasPrefix(s, "sizefrom=")) {
  32046. tmp$1 = strings.SplitN(s, "=", 2);
  32047. t.Sizefrom = (1 >= tmp$1.$length ? ($throwRuntimeError("index out of range"), undefined) : tmp$1.$array[tmp$1.$offset + 1]);
  32048. } else if (s === "big") {
  32049. t.Order = (x$1 = binary.BigEndian, new x$1.constructor.elem(x$1));
  32050. } else if (s === "little") {
  32051. t.Order = (x$2 = binary.LittleEndian, new x$2.constructor.elem(x$2));
  32052. } else if (s === "skip") {
  32053. t.Skip = true;
  32054. } else {
  32055. t.Type = s;
  32056. }
  32057. _i++;
  32058. }
  32059. return t;
  32060. };
  32061. parseField = function(f) {
  32062. var _1, _2, _entry, _entry$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, defTypeOk, err, f, fd, first, match, ok, ok$1, pureType, tag, tmp, x, $s, $r;
  32063. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _entry = $f._entry; _entry$1 = $f._entry$1; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; defTypeOk = $f.defTypeOk; err = $f.err; f = $f.f; fd = $f.fd; first = $f.first; match = $f.match; ok = $f.ok; ok$1 = $f.ok$1; pureType = $f.pureType; tag = $f.tag; tmp = $f.tmp; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  32064. fd = ptrType$1.nil;
  32065. tag = ptrType$2.nil;
  32066. err = $ifaceNil;
  32067. tag = parseStrucTag(f.Tag);
  32068. ok = false;
  32069. _r$1 = f.Type.Kind(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  32070. fd = new Field.ptr(f.Name, false, 0, 0, 0, false, false, 1, tag.Order, sliceType$2.nil, sliceType$2.nil, Fields.nil, _r$1);
  32071. _1 = fd.kind;
  32072. /* */ if (_1 === (17)) { $s = 3; continue; }
  32073. /* */ if (_1 === (23)) { $s = 4; continue; }
  32074. /* */ if (_1 === (22)) { $s = 5; continue; }
  32075. /* */ $s = 6; continue;
  32076. /* if (_1 === (17)) { */ case 3:
  32077. fd.Slice = true;
  32078. fd.Array = true;
  32079. _r$2 = f.Type.Len(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  32080. fd.Len = _r$2;
  32081. _r$3 = f.Type.Elem(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  32082. _r$4 = _r$3.Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  32083. fd.kind = _r$4;
  32084. $s = 6; continue;
  32085. /* } else if (_1 === (23)) { */ case 4:
  32086. fd.Slice = true;
  32087. fd.Len = -1;
  32088. _r$5 = f.Type.Elem(); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  32089. _r$6 = _r$5.Kind(); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  32090. fd.kind = _r$6;
  32091. $s = 6; continue;
  32092. /* } else if (_1 === (22)) { */ case 5:
  32093. fd.Ptr = true;
  32094. _r$7 = f.Type.Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
  32095. _r$8 = _r$7.Kind(); /* */ $s = 13; case 13: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
  32096. fd.kind = _r$8;
  32097. /* } */ case 6:
  32098. case 2:
  32099. tmp = reflect.New(f.Type);
  32100. _r$9 = $clone(tmp, reflect.Value).Interface(); /* */ $s = 14; case 14: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  32101. _tuple = $assertType(_r$9, Custom, true);
  32102. ok$1 = _tuple[1];
  32103. if (ok$1) {
  32104. fd.Type = 19;
  32105. $s = -1; return [fd, tag, err];
  32106. }
  32107. defTypeOk = false;
  32108. _tuple$1 = (_entry = reflectTypeMap[reflect.Kind.keyFor(fd.kind)], _entry !== undefined ? [_entry.v, true] : [0, false]);
  32109. fd.defType = _tuple$1[0];
  32110. defTypeOk = _tuple$1[1];
  32111. _r$10 = typeLenRe.ReplaceAllLiteralString(tag.Type, ""); /* */ $s = 15; case 15: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
  32112. pureType = _r$10;
  32113. _tuple$2 = (_entry$1 = typeLookup[$String.keyFor(pureType)], _entry$1 !== undefined ? [_entry$1.v, true] : [0, false]);
  32114. fd.Type = _tuple$2[0];
  32115. ok = _tuple$2[1];
  32116. /* */ if (ok) { $s = 16; continue; }
  32117. /* */ $s = 17; continue;
  32118. /* if (ok) { */ case 16:
  32119. fd.Len = 1;
  32120. _r$11 = typeLenRe.FindAllStringSubmatch(tag.Type, -1); /* */ $s = 18; case 18: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
  32121. match = _r$11;
  32122. if (match.$length > 0 && (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]).$length > 1) {
  32123. fd.Slice = true;
  32124. first = (x = (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 1]));
  32125. if (first === "") {
  32126. fd.Len = -1;
  32127. } else {
  32128. _tuple$3 = strconv.Atoi(first);
  32129. fd.Len = _tuple$3[0];
  32130. err = _tuple$3[1];
  32131. }
  32132. }
  32133. $s = -1; return [fd, tag, err];
  32134. /* } */ case 17:
  32135. _2 = f.Type;
  32136. /* */ if ($interfaceIsEqual(_2, (reflect.TypeOf(new Size_t(0, 0))))) { $s = 20; continue; }
  32137. /* */ if ($interfaceIsEqual(_2, (reflect.TypeOf(new Off_t(0, 0))))) { $s = 21; continue; }
  32138. /* */ if (defTypeOk) { $s = 22; continue; }
  32139. /* */ $s = 23; continue;
  32140. /* if ($interfaceIsEqual(_2, (reflect.TypeOf(new Size_t(0, 0))))) { */ case 20:
  32141. fd.Type = 17;
  32142. $s = 24; continue;
  32143. /* } else if ($interfaceIsEqual(_2, (reflect.TypeOf(new Off_t(0, 0))))) { */ case 21:
  32144. fd.Type = 18;
  32145. $s = 24; continue;
  32146. /* } else if (defTypeOk) { */ case 22:
  32147. fd.Type = fd.defType;
  32148. $s = 24; continue;
  32149. /* } else { */ case 23:
  32150. _r$12 = fmt.Sprintf("struc: Could not resolve field '%v' type '%v'.", new sliceType$1([new $String(f.Name), f.Type])); /* */ $s = 25; case 25: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
  32151. _r$13 = errors.New(_r$12); /* */ $s = 26; case 26: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
  32152. err = _r$13;
  32153. /* } */ case 24:
  32154. case 19:
  32155. $s = -1; return [fd, tag, err];
  32156. /* */ } return; } if ($f === undefined) { $f = { $blk: parseField }; } $f._1 = _1; $f._2 = _2; $f._entry = _entry; $f._entry$1 = _entry$1; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.defTypeOk = defTypeOk; $f.err = err; $f.f = f; $f.fd = fd; $f.first = first; $f.match = match; $f.ok = ok; $f.ok$1 = ok$1; $f.pureType = pureType; $f.tag = tag; $f.tmp = tmp; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  32157. };
  32158. parseFieldsLocked = function(v) {
  32159. var _entry, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, err, f, field, fields, i, ok, ok$1, ok$2, sizefrom, sizeofMap, source, t, tag, target, typ, v, $s, $r;
  32160. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _key = $f._key; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; err = $f.err; f = $f.f; field = $f.field; fields = $f.fields; i = $f.i; ok = $f.ok; ok$1 = $f.ok$1; ok$2 = $f.ok$2; sizefrom = $f.sizefrom; sizeofMap = $f.sizeofMap; source = $f.source; t = $f.t; tag = $f.tag; target = $f.target; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  32161. /* while (true) { */ case 1:
  32162. /* if (!($clone(v, reflect.Value).Kind() === 22)) { break; } */ if(!($clone(v, reflect.Value).Kind() === 22)) { $s = 2; continue; }
  32163. _r$1 = $clone(v, reflect.Value).Elem(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  32164. v = _r$1;
  32165. /* } */ $s = 1; continue; case 2:
  32166. t = $clone(v, reflect.Value).Type();
  32167. if ($clone(v, reflect.Value).NumField() < 1) {
  32168. $s = -1; return [Fields.nil, errors.New("struc: Struct has no fields.")];
  32169. }
  32170. sizeofMap = {};
  32171. fields = $makeSlice(Fields, $clone(v, reflect.Value).NumField());
  32172. i = 0;
  32173. /* while (true) { */ case 4:
  32174. _r$2 = t.NumField(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  32175. /* if (!(i < _r$2)) { break; } */ if(!(i < _r$2)) { $s = 5; continue; }
  32176. _r$3 = t.Field(i); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  32177. field = $clone(_r$3, reflect.StructField);
  32178. _r$4 = parseField($clone(field, reflect.StructField)); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  32179. _tuple = _r$4;
  32180. f = _tuple[0];
  32181. tag = _tuple[1];
  32182. err = _tuple[2];
  32183. /* */ if (tag.Skip) { $s = 9; continue; }
  32184. /* */ $s = 10; continue;
  32185. /* if (tag.Skip) { */ case 9:
  32186. i = i + (1) >> 0;
  32187. /* continue; */ $s = 4; continue;
  32188. /* } */ case 10:
  32189. if (!($interfaceIsEqual(err, $ifaceNil))) {
  32190. $s = -1; return [Fields.nil, err];
  32191. }
  32192. _r$5 = $clone(v, reflect.Value).Field(i); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  32193. _r$6 = $clone(_r$5, reflect.Value).CanSet(); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  32194. /* */ if (!_r$6) { $s = 11; continue; }
  32195. /* */ $s = 12; continue;
  32196. /* if (!_r$6) { */ case 11:
  32197. i = i + (1) >> 0;
  32198. /* continue; */ $s = 4; continue;
  32199. /* } */ case 12:
  32200. f.Index = i;
  32201. /* */ if (!(tag.Sizeof === "")) { $s = 15; continue; }
  32202. /* */ $s = 16; continue;
  32203. /* if (!(tag.Sizeof === "")) { */ case 15:
  32204. _r$7 = t.FieldByName(tag.Sizeof); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
  32205. _tuple$1 = _r$7;
  32206. target = $clone(_tuple$1[0], reflect.StructField);
  32207. ok = _tuple$1[1];
  32208. /* */ if (!ok) { $s = 18; continue; }
  32209. /* */ $s = 19; continue;
  32210. /* if (!ok) { */ case 18:
  32211. _r$8 = fmt.Errorf("struc: `sizeof=%s` field does not exist", new sliceType$1([new $String(tag.Sizeof)])); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
  32212. $s = -1; return [Fields.nil, _r$8];
  32213. /* } */ case 19:
  32214. f.Sizeof = target.Index;
  32215. _key = tag.Sizeof; (sizeofMap || $throwRuntimeError("assignment to entry in nil map"))[$String.keyFor(_key)] = { k: _key, v: field.Index };
  32216. /* } */ case 16:
  32217. _tuple$2 = (_entry = sizeofMap[$String.keyFor(field.Name)], _entry !== undefined ? [_entry.v, true] : [sliceType$2.nil, false]);
  32218. sizefrom = _tuple$2[0];
  32219. ok$1 = _tuple$2[1];
  32220. if (ok$1) {
  32221. f.Sizefrom = sizefrom;
  32222. }
  32223. /* */ if (!(tag.Sizefrom === "")) { $s = 21; continue; }
  32224. /* */ $s = 22; continue;
  32225. /* if (!(tag.Sizefrom === "")) { */ case 21:
  32226. _r$9 = t.FieldByName(tag.Sizefrom); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  32227. _tuple$3 = _r$9;
  32228. source = $clone(_tuple$3[0], reflect.StructField);
  32229. ok$2 = _tuple$3[1];
  32230. /* */ if (!ok$2) { $s = 24; continue; }
  32231. /* */ $s = 25; continue;
  32232. /* if (!ok$2) { */ case 24:
  32233. _r$10 = fmt.Errorf("struc: `sizefrom=%s` field does not exist", new sliceType$1([new $String(tag.Sizefrom)])); /* */ $s = 26; case 26: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
  32234. $s = -1; return [Fields.nil, _r$10];
  32235. /* } */ case 25:
  32236. f.Sizefrom = source.Index;
  32237. /* } */ case 22:
  32238. /* */ if ((f.Len === -1) && f.Sizefrom === sliceType$2.nil) { $s = 27; continue; }
  32239. /* */ $s = 28; continue;
  32240. /* if ((f.Len === -1) && f.Sizefrom === sliceType$2.nil) { */ case 27:
  32241. _r$11 = fmt.Errorf("struc: field `%s` is a slice with no length or sizeof field", new sliceType$1([new $String(field.Name)])); /* */ $s = 29; case 29: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
  32242. $s = -1; return [Fields.nil, _r$11];
  32243. /* } */ case 28:
  32244. /* */ if (f.Type === 15) { $s = 30; continue; }
  32245. /* */ $s = 31; continue;
  32246. /* if (f.Type === 15) { */ case 30:
  32247. typ = field.Type;
  32248. /* */ if (f.Ptr) { $s = 32; continue; }
  32249. /* */ $s = 33; continue;
  32250. /* if (f.Ptr) { */ case 32:
  32251. _r$12 = typ.Elem(); /* */ $s = 34; case 34: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
  32252. typ = _r$12;
  32253. /* } */ case 33:
  32254. /* */ if (f.Slice) { $s = 35; continue; }
  32255. /* */ $s = 36; continue;
  32256. /* if (f.Slice) { */ case 35:
  32257. _r$13 = typ.Elem(); /* */ $s = 37; case 37: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
  32258. typ = _r$13;
  32259. /* } */ case 36:
  32260. _r$14 = parseFieldsLocked($clone(reflect.New(typ), reflect.Value)); /* */ $s = 38; case 38: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
  32261. _tuple$4 = _r$14;
  32262. f.Fields = _tuple$4[0];
  32263. err = _tuple$4[1];
  32264. if (!($interfaceIsEqual(err, $ifaceNil))) {
  32265. $s = -1; return [Fields.nil, err];
  32266. }
  32267. /* } */ case 31:
  32268. ((i < 0 || i >= fields.$length) ? ($throwRuntimeError("index out of range"), undefined) : fields.$array[fields.$offset + i] = f);
  32269. i = i + (1) >> 0;
  32270. /* } */ $s = 4; continue; case 5:
  32271. $s = -1; return [fields, $ifaceNil];
  32272. /* */ } return; } if ($f === undefined) { $f = { $blk: parseFieldsLocked }; } $f._entry = _entry; $f._key = _key; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f.err = err; $f.f = f; $f.field = field; $f.fields = fields; $f.i = i; $f.ok = ok; $f.ok$1 = ok$1; $f.ok$2 = ok$2; $f.sizefrom = sizefrom; $f.sizeofMap = sizeofMap; $f.source = source; $f.t = t; $f.tag = tag; $f.target = target; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  32273. };
  32274. fieldCacheLookup = function(t) {
  32275. var _entry, _tuple, cached, ok, t, $s, $deferred, $r;
  32276. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _tuple = $f._tuple; cached = $f.cached; ok = $f.ok; t = $f.t; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  32277. $r = fieldCacheLock.RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32278. $deferred.push([$methodVal(fieldCacheLock, "RUnlock"), []]);
  32279. _tuple = (_entry = fieldCache[reflect.Type.keyFor(t)], _entry !== undefined ? [_entry.v, true] : [Fields.nil, false]);
  32280. cached = _tuple[0];
  32281. ok = _tuple[1];
  32282. if (ok) {
  32283. $s = -1; return cached;
  32284. }
  32285. $s = -1; return Fields.nil;
  32286. /* */ } return; } } catch(err) { $err = err; $s = -1; return Fields.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: fieldCacheLookup }; } $f._entry = _entry; $f._tuple = _tuple; $f.cached = cached; $f.ok = ok; $f.t = t; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  32287. };
  32288. parseFields = function(v) {
  32289. var _key, _r$1, _r$2, _r$3, _r$4, _tuple, cached, cached$1, err, fields, t, v, $s, $deferred, $r;
  32290. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _key = $f._key; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; cached = $f.cached; cached$1 = $f.cached$1; err = $f.err; fields = $f.fields; t = $f.t; v = $f.v; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  32291. /* while (true) { */ case 1:
  32292. /* if (!($clone(v, reflect.Value).Kind() === 22)) { break; } */ if(!($clone(v, reflect.Value).Kind() === 22)) { $s = 2; continue; }
  32293. _r$1 = $clone(v, reflect.Value).Elem(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  32294. v = _r$1;
  32295. /* } */ $s = 1; continue; case 2:
  32296. t = $clone(v, reflect.Value).Type();
  32297. _r$2 = fieldCacheLookup(t); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  32298. cached = _r$2;
  32299. if (!(cached === Fields.nil)) {
  32300. $s = -1; return [cached, $ifaceNil];
  32301. }
  32302. $r = parseLock.Lock(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32303. $deferred.push([$methodVal(parseLock, "Unlock"), []]);
  32304. _r$3 = fieldCacheLookup(t); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  32305. cached$1 = _r$3;
  32306. if (!(cached$1 === Fields.nil)) {
  32307. $s = -1; return [cached$1, $ifaceNil];
  32308. }
  32309. _r$4 = parseFieldsLocked($clone(v, reflect.Value)); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  32310. _tuple = _r$4;
  32311. fields = _tuple[0];
  32312. err = _tuple[1];
  32313. if (!($interfaceIsEqual(err, $ifaceNil))) {
  32314. $s = -1; return [Fields.nil, err];
  32315. }
  32316. $r = fieldCacheLock.Lock(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32317. _key = t; (fieldCache || $throwRuntimeError("assignment to entry in nil map"))[reflect.Type.keyFor(_key)] = { k: _key, v: fields };
  32318. $r = fieldCacheLock.Unlock(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32319. $s = -1; return [fields, $ifaceNil];
  32320. /* */ } return; } } catch(err) { $err = err; $s = -1; return [Fields.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: parseFields }; } $f._key = _key; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f.cached = cached; $f.cached$1 = cached$1; $f.err = err; $f.fields = fields; $f.t = t; $f.v = v; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  32321. };
  32322. Options.ptr.prototype.Validate = function() {
  32323. var _1, _r$1, o, $s, $r;
  32324. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r$1 = $f._r$1; o = $f.o; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  32325. o = this;
  32326. /* */ if (o.PtrSize === 0) { $s = 1; continue; }
  32327. /* */ $s = 2; continue;
  32328. /* if (o.PtrSize === 0) { */ case 1:
  32329. o.PtrSize = 32;
  32330. $s = 3; continue;
  32331. /* } else { */ case 2:
  32332. _1 = o.PtrSize;
  32333. /* */ if ((_1 === (8)) || (_1 === (16)) || (_1 === (32)) || (_1 === (64))) { $s = 5; continue; }
  32334. /* */ $s = 6; continue;
  32335. /* if ((_1 === (8)) || (_1 === (16)) || (_1 === (32)) || (_1 === (64))) { */ case 5:
  32336. $s = 7; continue;
  32337. /* } else { */ case 6:
  32338. _r$1 = fmt.Errorf("Invalid Options.PtrSize: %d. Must be in (8, 16, 32, 64)", new sliceType$1([new $Int(o.PtrSize)])); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  32339. $s = -1; return _r$1;
  32340. /* } */ case 7:
  32341. case 4:
  32342. /* } */ case 3:
  32343. $s = -1; return $ifaceNil;
  32344. /* */ } return; } if ($f === undefined) { $f = { $blk: Options.ptr.prototype.Validate }; } $f._1 = _1; $f._r$1 = _r$1; $f.o = o; $f.$s = $s; $f.$r = $r; return $f;
  32345. };
  32346. Options.prototype.Validate = function() { return this.$val.Validate(); };
  32347. init = function() {
  32348. var _r$1, $s, $r;
  32349. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  32350. _r$1 = emptyOptions.Validate(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  32351. _r$1;
  32352. $s = -1; return;
  32353. /* */ } return; } if ($f === undefined) { $f = { $blk: init }; } $f._r$1 = _r$1; $f.$s = $s; $f.$r = $r; return $f;
  32354. };
  32355. prep = function(data) {
  32356. var _1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, c, data, err, fields, next, ok, value, x, x$1, $s, $r;
  32357. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; c = $f.c; data = $f.data; err = $f.err; fields = $f.fields; next = $f.next; ok = $f.ok; value = $f.value; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  32358. _r$1 = reflect.ValueOf(data); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  32359. value = _r$1;
  32360. /* while (true) { */ case 2:
  32361. /* if (!($clone(value, reflect.Value).Kind() === 22)) { break; } */ if(!($clone(value, reflect.Value).Kind() === 22)) { $s = 3; continue; }
  32362. _r$2 = $clone(value, reflect.Value).Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  32363. _r$3 = $clone(_r$2, reflect.Value).Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  32364. next = _r$3;
  32365. /* */ if ((next === 25) || (next === 22)) { $s = 6; continue; }
  32366. /* */ $s = 7; continue;
  32367. /* if ((next === 25) || (next === 22)) { */ case 6:
  32368. _r$4 = $clone(value, reflect.Value).Elem(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  32369. value = _r$4;
  32370. $s = 8; continue;
  32371. /* } else { */ case 7:
  32372. /* break; */ $s = 3; continue;
  32373. /* } */ case 8:
  32374. /* } */ $s = 2; continue; case 3:
  32375. _1 = $clone(value, reflect.Value).Kind();
  32376. /* */ if (_1 === (25)) { $s = 11; continue; }
  32377. /* */ $s = 12; continue;
  32378. /* if (_1 === (25)) { */ case 11:
  32379. _r$5 = parseFields($clone(value, reflect.Value)); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  32380. _tuple = _r$5;
  32381. fields = _tuple[0];
  32382. err = _tuple[1];
  32383. $s = -1; return [value, fields, err];
  32384. /* } else { */ case 12:
  32385. /* */ if (!$clone(value, reflect.Value).IsValid()) { $s = 15; continue; }
  32386. /* */ $s = 16; continue;
  32387. /* if (!$clone(value, reflect.Value).IsValid()) { */ case 15:
  32388. _r$6 = fmt.Errorf("Invalid reflect.Value for %+v", new sliceType$1([data])); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  32389. $s = -1; return [new reflect.Value.ptr(ptrType.nil, 0, 0), $ifaceNil, _r$6];
  32390. /* } */ case 16:
  32391. _tuple$1 = $assertType(data, Custom, true);
  32392. c = _tuple$1[0];
  32393. ok = _tuple$1[1];
  32394. if (ok) {
  32395. $s = -1; return [value, (x = new customFallback.ptr(c), new x.constructor.elem(x)), $ifaceNil];
  32396. }
  32397. $s = -1; return [value, (x$1 = ($clone(value, binaryFallback)), new x$1.constructor.elem(x$1)), $ifaceNil];
  32398. /* } */ case 13:
  32399. case 10:
  32400. $s = -1; return [new reflect.Value.ptr(ptrType.nil, 0, 0), $ifaceNil, $ifaceNil];
  32401. /* */ } return; } if ($f === undefined) { $f = { $blk: prep }; } $f._1 = _1; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.c = c; $f.data = data; $f.err = err; $f.fields = fields; $f.next = next; $f.ok = ok; $f.value = value; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f;
  32402. };
  32403. Unpack = function(r, data) {
  32404. var _r$1, data, r, $s, $r;
  32405. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; data = $f.data; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  32406. _r$1 = UnpackWithOptions(r, data, ptrType$3.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  32407. $s = -1; return _r$1;
  32408. /* */ } return; } if ($f === undefined) { $f = { $blk: Unpack }; } $f._r$1 = _r$1; $f.data = data; $f.r = r; $f.$s = $s; $f.$r = $r; return $f;
  32409. };
  32410. $pkg.Unpack = Unpack;
  32411. UnpackWithOptions = function(r, data, options) {
  32412. var _r$1, _r$2, _r$3, _tuple, data, err, err$1, options, packer, r, val, $s, $r;
  32413. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; data = $f.data; err = $f.err; err$1 = $f.err$1; options = $f.options; packer = $f.packer; r = $f.r; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  32414. if (options === ptrType$3.nil) {
  32415. options = emptyOptions;
  32416. }
  32417. _r$1 = options.Validate(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  32418. err = _r$1;
  32419. if (!($interfaceIsEqual(err, $ifaceNil))) {
  32420. $s = -1; return err;
  32421. }
  32422. _r$2 = prep(data); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  32423. _tuple = _r$2;
  32424. val = _tuple[0];
  32425. packer = _tuple[1];
  32426. err$1 = _tuple[2];
  32427. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  32428. $s = -1; return err$1;
  32429. }
  32430. _r$3 = packer.Unpack(r, $clone(val, reflect.Value), options); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  32431. $s = -1; return _r$3;
  32432. /* */ } return; } if ($f === undefined) { $f = { $blk: UnpackWithOptions }; } $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f.data = data; $f.err = err; $f.err$1 = err$1; $f.options = options; $f.packer = packer; $f.r = r; $f.val = val; $f.$s = $s; $f.$r = $r; return $f;
  32433. };
  32434. $pkg.UnpackWithOptions = UnpackWithOptions;
  32435. Type.prototype.Resolve = function(options) {
  32436. var _1, _2, _3, _r$1, _r$2, options, t, $s, $r;
  32437. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _r$1 = $f._r$1; _r$2 = $f._r$2; options = $f.options; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  32438. t = this.$val;
  32439. _1 = t;
  32440. /* */ if (_1 === (18)) { $s = 2; continue; }
  32441. /* */ if (_1 === (17)) { $s = 3; continue; }
  32442. /* */ $s = 4; continue;
  32443. /* if (_1 === (18)) { */ case 2:
  32444. _2 = options.PtrSize;
  32445. /* */ if (_2 === (8)) { $s = 6; continue; }
  32446. /* */ if (_2 === (16)) { $s = 7; continue; }
  32447. /* */ if (_2 === (32)) { $s = 8; continue; }
  32448. /* */ if (_2 === (64)) { $s = 9; continue; }
  32449. /* */ $s = 10; continue;
  32450. /* if (_2 === (8)) { */ case 6:
  32451. $s = -1; return 4;
  32452. /* } else if (_2 === (16)) { */ case 7:
  32453. $s = -1; return 6;
  32454. /* } else if (_2 === (32)) { */ case 8:
  32455. $s = -1; return 8;
  32456. /* } else if (_2 === (64)) { */ case 9:
  32457. $s = -1; return 10;
  32458. /* } else { */ case 10:
  32459. _r$1 = fmt.Sprintf("unsupported ptr bits: %d", new sliceType$1([new $Int(options.PtrSize)])); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  32460. $panic(new $String(_r$1));
  32461. /* } */ case 11:
  32462. case 5:
  32463. $s = 4; continue;
  32464. /* } else if (_1 === (17)) { */ case 3:
  32465. _3 = options.PtrSize;
  32466. /* */ if (_3 === (8)) { $s = 14; continue; }
  32467. /* */ if (_3 === (16)) { $s = 15; continue; }
  32468. /* */ if (_3 === (32)) { $s = 16; continue; }
  32469. /* */ if (_3 === (64)) { $s = 17; continue; }
  32470. /* */ $s = 18; continue;
  32471. /* if (_3 === (8)) { */ case 14:
  32472. $s = -1; return 5;
  32473. /* } else if (_3 === (16)) { */ case 15:
  32474. $s = -1; return 7;
  32475. /* } else if (_3 === (32)) { */ case 16:
  32476. $s = -1; return 9;
  32477. /* } else if (_3 === (64)) { */ case 17:
  32478. $s = -1; return 11;
  32479. /* } else { */ case 18:
  32480. _r$2 = fmt.Sprintf("unsupported ptr bits: %d", new sliceType$1([new $Int(options.PtrSize)])); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  32481. $panic(new $String(_r$2));
  32482. /* } */ case 19:
  32483. case 13:
  32484. /* } */ case 4:
  32485. case 1:
  32486. $s = -1; return t;
  32487. /* */ } return; } if ($f === undefined) { $f = { $blk: Type.prototype.Resolve }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.options = options; $f.t = t; $f.$s = $s; $f.$r = $r; return $f;
  32488. };
  32489. $ptrType(Type).prototype.Resolve = function(options) { return new Type(this.$get()).Resolve(options); };
  32490. Type.prototype.String = function() {
  32491. var _entry, t;
  32492. t = this.$val;
  32493. return (_entry = typeNames[Type.keyFor(t)], _entry !== undefined ? _entry.v : "");
  32494. };
  32495. $ptrType(Type).prototype.String = function() { return new Type(this.$get()).String(); };
  32496. Type.prototype.Size = function() {
  32497. var _1, t;
  32498. t = this.$val;
  32499. _1 = t;
  32500. if ((_1 === (17)) || (_1 === (18))) {
  32501. $panic(new $String("Size_t/Off_t types must be converted to another type using options.PtrSize"));
  32502. } else if ((_1 === (1)) || (_1 === (14)) || (_1 === (4)) || (_1 === (5)) || (_1 === (2))) {
  32503. return 1;
  32504. } else if ((_1 === (6)) || (_1 === (7))) {
  32505. return 2;
  32506. } else if ((_1 === (8)) || (_1 === (9)) || (_1 === (12))) {
  32507. return 4;
  32508. } else if ((_1 === (10)) || (_1 === (11)) || (_1 === (13))) {
  32509. return 8;
  32510. } else {
  32511. $panic(new $String("Cannot resolve size of type:" + new Type(t).String()));
  32512. }
  32513. };
  32514. $ptrType(Type).prototype.Size = function() { return new Type(this.$get()).Size(); };
  32515. init$1 = function() {
  32516. var _entry, _i, _key, _keys, _ref, enum$1, name;
  32517. _ref = typeLookup;
  32518. _i = 0;
  32519. _keys = $keys(_ref);
  32520. while (true) {
  32521. if (!(_i < _keys.length)) { break; }
  32522. _entry = _ref[_keys[_i]];
  32523. if (_entry === undefined) {
  32524. _i++;
  32525. continue;
  32526. }
  32527. name = _entry.k;
  32528. enum$1 = _entry.v;
  32529. _key = enum$1; (typeNames || $throwRuntimeError("assignment to entry in nil map"))[Type.keyFor(_key)] = { k: _key, v: name };
  32530. _i++;
  32531. }
  32532. };
  32533. byteWriter.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}];
  32534. binaryFallback.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Sizeof", name: "Sizeof", pkg: "", typ: $funcType([reflect.Value, ptrType$3], [$Int], false)}, {prop: "Pack", name: "Pack", pkg: "", typ: $funcType([sliceType, reflect.Value, ptrType$3], [$Int, $error], false)}, {prop: "Unpack", name: "Unpack", pkg: "", typ: $funcType([io.Reader, reflect.Value, ptrType$3], [$error], false)}];
  32535. customFallback.methods = [{prop: "Pack", name: "Pack", pkg: "", typ: $funcType([sliceType, reflect.Value, ptrType$3], [$Int, $error], false)}, {prop: "Unpack", name: "Unpack", pkg: "", typ: $funcType([io.Reader, reflect.Value, ptrType$3], [$error], false)}, {prop: "Sizeof", name: "Sizeof", pkg: "", typ: $funcType([reflect.Value, ptrType$3], [$Int], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
  32536. ptrType$1.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([reflect.Value, ptrType$3], [$Int], false)}, {prop: "packVal", name: "packVal", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/lunixbochs/struc", typ: $funcType([sliceType, reflect.Value, $Int, ptrType$3], [$Int, $error], false)}, {prop: "Pack", name: "Pack", pkg: "", typ: $funcType([sliceType, reflect.Value, $Int, ptrType$3], [$Int, $error], false)}, {prop: "unpackVal", name: "unpackVal", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/lunixbochs/struc", typ: $funcType([sliceType, reflect.Value, $Int, ptrType$3], [$error], false)}, {prop: "Unpack", name: "Unpack", pkg: "", typ: $funcType([sliceType, reflect.Value, $Int, ptrType$3], [$error], false)}];
  32537. Fields.methods = [{prop: "SetByteOrder", name: "SetByteOrder", pkg: "", typ: $funcType([binary.ByteOrder], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Sizeof", name: "Sizeof", pkg: "", typ: $funcType([reflect.Value, ptrType$3], [$Int], false)}, {prop: "sizefrom", name: "sizefrom", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/lunixbochs/struc", typ: $funcType([reflect.Value, sliceType$2], [$Int], false)}, {prop: "Pack", name: "Pack", pkg: "", typ: $funcType([sliceType, reflect.Value, ptrType$3], [$Int, $error], false)}, {prop: "Unpack", name: "Unpack", pkg: "", typ: $funcType([io.Reader, reflect.Value, ptrType$3], [$error], false)}];
  32538. ptrType$3.methods = [{prop: "Validate", name: "Validate", pkg: "", typ: $funcType([], [$error], false)}];
  32539. Type.methods = [{prop: "Resolve", name: "Resolve", pkg: "", typ: $funcType([ptrType$3], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}];
  32540. byteWriter.init("github.com/xiaokangwang/BrowserBridge/vendor/github.com/lunixbochs/struc", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: $Int, tag: ""}]);
  32541. binaryFallback.init("reflect", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "ptr", name: "ptr", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "flag", name: "flag", embedded: true, exported: false, typ: reflect.flag, tag: ""}]);
  32542. Custom.init([{prop: "Pack", name: "Pack", pkg: "", typ: $funcType([sliceType, ptrType$3], [$Int, $error], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([ptrType$3], [$Int], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unpack", name: "Unpack", pkg: "", typ: $funcType([io.Reader, $Int, ptrType$3], [$error], false)}]);
  32543. customFallback.init("github.com/xiaokangwang/BrowserBridge/vendor/github.com/lunixbochs/struc", [{prop: "custom", name: "custom", embedded: false, exported: false, typ: Custom, tag: ""}]);
  32544. Field.init("github.com/xiaokangwang/BrowserBridge/vendor/github.com/lunixbochs/struc", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Ptr", name: "Ptr", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "defType", name: "defType", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "Array", name: "Array", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Slice", name: "Slice", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Len", name: "Len", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Order", name: "Order", embedded: false, exported: true, typ: binary.ByteOrder, tag: ""}, {prop: "Sizeof", name: "Sizeof", embedded: false, exported: true, typ: sliceType$2, tag: ""}, {prop: "Sizefrom", name: "Sizefrom", embedded: false, exported: true, typ: sliceType$2, tag: ""}, {prop: "Fields", name: "Fields", embedded: false, exported: true, typ: Fields, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: reflect.Kind, tag: ""}]);
  32545. Fields.init(ptrType$1);
  32546. strucTag.init("", [{prop: "Type", name: "Type", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Order", name: "Order", embedded: false, exported: true, typ: binary.ByteOrder, tag: ""}, {prop: "Sizeof", name: "Sizeof", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Skip", name: "Skip", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Sizefrom", name: "Sizefrom", embedded: false, exported: true, typ: $String, tag: ""}]);
  32547. Options.init("", [{prop: "ByteAlign", name: "ByteAlign", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "PtrSize", name: "PtrSize", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Order", name: "Order", embedded: false, exported: true, typ: binary.ByteOrder, tag: ""}]);
  32548. $init = function() {
  32549. $pkg.$init = function() {};
  32550. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  32551. $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32552. $r = binary.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32553. $r = errors.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32554. $r = fmt.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32555. $r = io.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32556. $r = math.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32557. $r = reflect.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32558. $r = regexp.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32559. $r = strconv.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32560. $r = strings.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32561. $r = sync.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32562. fieldCacheLock = new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, 0, 0);
  32563. parseLock = new sync.Mutex.ptr(0, 0);
  32564. _r = regexp.MustCompile("^\\[(\\d*)\\]"); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  32565. typeLenRe = _r;
  32566. fieldCache = {};
  32567. emptyOptions = new Options.ptr(0, 0, $ifaceNil);
  32568. typeLookup = $makeMap($String.keyFor, [{ k: "pad", v: 1 }, { k: "bool", v: 2 }, { k: "byte", v: 5 }, { k: "int8", v: 4 }, { k: "uint8", v: 5 }, { k: "int16", v: 6 }, { k: "uint16", v: 7 }, { k: "int32", v: 8 }, { k: "uint32", v: 9 }, { k: "int64", v: 10 }, { k: "uint64", v: 11 }, { k: "float32", v: 12 }, { k: "float64", v: 13 }, { k: "size_t", v: 17 }, { k: "off_t", v: 18 }]);
  32569. typeNames = $makeMap(Type.keyFor, [{ k: 19, v: "Custom" }]);
  32570. reflectTypeMap = $makeMap(reflect.Kind.keyFor, [{ k: 1, v: 2 }, { k: 3, v: 4 }, { k: 4, v: 6 }, { k: 2, v: 8 }, { k: 5, v: 8 }, { k: 6, v: 10 }, { k: 8, v: 5 }, { k: 9, v: 7 }, { k: 7, v: 9 }, { k: 10, v: 9 }, { k: 11, v: 11 }, { k: 13, v: 12 }, { k: 14, v: 13 }, { k: 24, v: 14 }, { k: 25, v: 15 }, { k: 22, v: 16 }]);
  32571. $r = init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32572. init$1();
  32573. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  32574. };
  32575. $pkg.$init = $init;
  32576. return $pkg;
  32577. })();
  32578. $packages["github.com/xiaokangwang/BrowserBridge/proto"] = (function() {
  32579. var $pkg = {}, $init, bytes, struc, io, WebsocketLength, WebsocketConnectionRequest, sliceType, ptrType, ReadRequest;
  32580. bytes = $packages["bytes"];
  32581. struc = $packages["github.com/xiaokangwang/BrowserBridge/vendor/github.com/lunixbochs/struc"];
  32582. io = $packages["io"];
  32583. WebsocketLength = $pkg.WebsocketLength = $newType(0, $kindStruct, "proto.WebsocketLength", true, "github.com/xiaokangwang/BrowserBridge/proto", true, function(Length_, Data_) {
  32584. this.$val = this;
  32585. if (arguments.length === 0) {
  32586. this.Length = 0;
  32587. this.Data = sliceType.nil;
  32588. return;
  32589. }
  32590. this.Length = Length_;
  32591. this.Data = Data_;
  32592. });
  32593. WebsocketConnectionRequest = $pkg.WebsocketConnectionRequest = $newType(0, $kindStruct, "proto.WebsocketConnectionRequest", true, "github.com/xiaokangwang/BrowserBridge/proto", true, function(DestinationSize_, Destination_) {
  32594. this.$val = this;
  32595. if (arguments.length === 0) {
  32596. this.DestinationSize = 0;
  32597. this.Destination = "";
  32598. return;
  32599. }
  32600. this.DestinationSize = DestinationSize_;
  32601. this.Destination = Destination_;
  32602. });
  32603. sliceType = $sliceType($Uint8);
  32604. ptrType = $ptrType(WebsocketConnectionRequest);
  32605. ReadRequest = function(reader) {
  32606. var Request, _r, _r$1, data, err, reader, $s, $r;
  32607. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; Request = $f.Request; _r = $f._r; _r$1 = $f._r$1; data = $f.data; err = $f.err; reader = $f.reader; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  32608. Request = [Request];
  32609. data = [data];
  32610. err = $ifaceNil;
  32611. data[0] = new WebsocketLength.ptr(0, sliceType.nil);
  32612. _r = struc.Unpack(reader, data[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  32613. err = _r;
  32614. if (!($interfaceIsEqual(err, $ifaceNil))) {
  32615. $s = -1; return [err, ptrType.nil];
  32616. }
  32617. Request[0] = new WebsocketConnectionRequest.ptr(0, "");
  32618. _r$1 = struc.Unpack(bytes.NewReader(data[0].Data), Request[0]); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  32619. err = _r$1;
  32620. if (!($interfaceIsEqual(err, $ifaceNil))) {
  32621. $s = -1; return [err, ptrType.nil];
  32622. }
  32623. $s = -1; return [$ifaceNil, Request[0]];
  32624. /* */ } return; } if ($f === undefined) { $f = { $blk: ReadRequest }; } $f.Request = Request; $f._r = _r; $f._r$1 = _r$1; $f.data = data; $f.err = err; $f.reader = reader; $f.$s = $s; $f.$r = $r; return $f;
  32625. };
  32626. $pkg.ReadRequest = ReadRequest;
  32627. WebsocketLength.init("", [{prop: "Length", name: "Length", embedded: false, exported: true, typ: $Uint32, tag: "struc:\"uint32,big,sizeof=Data\""}, {prop: "Data", name: "Data", embedded: false, exported: true, typ: sliceType, tag: ""}]);
  32628. WebsocketConnectionRequest.init("", [{prop: "DestinationSize", name: "DestinationSize", embedded: false, exported: true, typ: $Uint32, tag: "struc:\"uint32,big,sizeof=Destination\""}, {prop: "Destination", name: "Destination", embedded: false, exported: true, typ: $String, tag: ""}]);
  32629. $init = function() {
  32630. $pkg.$init = function() {};
  32631. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  32632. $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32633. $r = struc.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32634. $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32635. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  32636. };
  32637. $pkg.$init = $init;
  32638. return $pkg;
  32639. })();
  32640. $packages["github.com/xiaokangwang/BrowserBridge/vendor/github.com/gopherjs/websocket/websocketjs"] = (function() {
  32641. var $pkg = {}, $init, js, ReadyState, WebSocket, ptrType, ptrType$1, ptrType$2, funcType, New;
  32642. js = $packages["github.com/gopherjs/gopherjs/js"];
  32643. ReadyState = $pkg.ReadyState = $newType(2, $kindUint16, "websocketjs.ReadyState", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/gopherjs/websocket/websocketjs", true, null);
  32644. WebSocket = $pkg.WebSocket = $newType(0, $kindStruct, "websocketjs.WebSocket", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/gopherjs/websocket/websocketjs", true, function(Object_, URL_, ReadyState_, BufferedAmount_, Extensions_, Protocol_, BinaryType_) {
  32645. this.$val = this;
  32646. if (arguments.length === 0) {
  32647. this.Object = null;
  32648. this.URL = "";
  32649. this.ReadyState = 0;
  32650. this.BufferedAmount = 0;
  32651. this.Extensions = "";
  32652. this.Protocol = "";
  32653. this.BinaryType = "";
  32654. return;
  32655. }
  32656. this.Object = Object_;
  32657. this.URL = URL_;
  32658. this.ReadyState = ReadyState_;
  32659. this.BufferedAmount = BufferedAmount_;
  32660. this.Extensions = Extensions_;
  32661. this.Protocol = Protocol_;
  32662. this.BinaryType = BinaryType_;
  32663. });
  32664. ptrType = $ptrType(WebSocket);
  32665. ptrType$1 = $ptrType(js.Error);
  32666. ptrType$2 = $ptrType(js.Object);
  32667. funcType = $funcType([ptrType$2], [], false);
  32668. ReadyState.prototype.String = function() {
  32669. var _1, rs;
  32670. rs = this.$val;
  32671. _1 = rs;
  32672. if (_1 === (0)) {
  32673. return "Connecting";
  32674. } else if (_1 === (1)) {
  32675. return "Open";
  32676. } else if (_1 === (2)) {
  32677. return "Closing";
  32678. } else if (_1 === (3)) {
  32679. return "Closed";
  32680. } else {
  32681. return "Unknown";
  32682. }
  32683. };
  32684. $ptrType(ReadyState).prototype.String = function() { return new ReadyState(this.$get()).String(); };
  32685. New = function(url) {
  32686. var err, object, url, ws, $deferred;
  32687. /* */ var $err = null; try { $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  32688. ws = ptrType.nil;
  32689. err = $ifaceNil;
  32690. $deferred.push([(function() {
  32691. var _tuple, e, jsErr, ok;
  32692. e = $recover();
  32693. if ($interfaceIsEqual(e, $ifaceNil)) {
  32694. return;
  32695. }
  32696. _tuple = $assertType(e, ptrType$1, true);
  32697. jsErr = _tuple[0];
  32698. ok = _tuple[1];
  32699. if (ok && !(jsErr === ptrType$1.nil)) {
  32700. ws = ptrType.nil;
  32701. err = jsErr;
  32702. } else {
  32703. $panic(e);
  32704. }
  32705. }), []]);
  32706. object = new ($global.WebSocket)($externalize(url, $String));
  32707. ws = new WebSocket.ptr(object, "", 0, 0, "", "", "");
  32708. return [ws, err];
  32709. /* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [ws, err]; } }
  32710. };
  32711. $pkg.New = New;
  32712. WebSocket.ptr.prototype.AddEventListener = function(typ, useCapture, listener) {
  32713. var listener, typ, useCapture, ws;
  32714. ws = this;
  32715. ws.Object.addEventListener($externalize(typ, $String), $externalize(listener, funcType), $externalize(useCapture, $Bool));
  32716. };
  32717. WebSocket.prototype.AddEventListener = function(typ, useCapture, listener) { return this.$val.AddEventListener(typ, useCapture, listener); };
  32718. WebSocket.ptr.prototype.RemoveEventListener = function(typ, useCapture, listener) {
  32719. var listener, typ, useCapture, ws;
  32720. ws = this;
  32721. ws.Object.removeEventListener($externalize(typ, $String), $externalize(listener, funcType), $externalize(useCapture, $Bool));
  32722. };
  32723. WebSocket.prototype.RemoveEventListener = function(typ, useCapture, listener) { return this.$val.RemoveEventListener(typ, useCapture, listener); };
  32724. WebSocket.ptr.prototype.Send = function(data) {
  32725. var data, err, ws, $deferred;
  32726. /* */ var $err = null; try { $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  32727. err = $ifaceNil;
  32728. ws = this;
  32729. $deferred.push([(function() {
  32730. var _tuple, e, jsErr, ok;
  32731. e = $recover();
  32732. if ($interfaceIsEqual(e, $ifaceNil)) {
  32733. return;
  32734. }
  32735. _tuple = $assertType(e, ptrType$1, true);
  32736. jsErr = _tuple[0];
  32737. ok = _tuple[1];
  32738. if (ok && !(jsErr === ptrType$1.nil)) {
  32739. err = jsErr;
  32740. } else {
  32741. $panic(e);
  32742. }
  32743. }), []]);
  32744. ws.Object.send($externalize(data, $emptyInterface));
  32745. return err;
  32746. /* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err; } }
  32747. };
  32748. WebSocket.prototype.Send = function(data) { return this.$val.Send(data); };
  32749. WebSocket.ptr.prototype.Close = function() {
  32750. var err, ws, $deferred;
  32751. /* */ var $err = null; try { $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  32752. err = $ifaceNil;
  32753. ws = this;
  32754. $deferred.push([(function() {
  32755. var _tuple, e, jsErr, ok;
  32756. e = $recover();
  32757. if ($interfaceIsEqual(e, $ifaceNil)) {
  32758. return;
  32759. }
  32760. _tuple = $assertType(e, ptrType$1, true);
  32761. jsErr = _tuple[0];
  32762. ok = _tuple[1];
  32763. if (ok && !(jsErr === ptrType$1.nil)) {
  32764. err = jsErr;
  32765. } else {
  32766. $panic(e);
  32767. }
  32768. }), []]);
  32769. ws.Object.close(1000);
  32770. return err;
  32771. /* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err; } }
  32772. };
  32773. WebSocket.prototype.Close = function() { return this.$val.Close(); };
  32774. ReadyState.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
  32775. ptrType.methods = [{prop: "AddEventListener", name: "AddEventListener", pkg: "", typ: $funcType([$String, $Bool, funcType], [], false)}, {prop: "RemoveEventListener", name: "RemoveEventListener", pkg: "", typ: $funcType([$String, $Bool, funcType], [], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([$emptyInterface], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}];
  32776. WebSocket.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "URL", name: "URL", embedded: false, exported: true, typ: $String, tag: "js:\"url\""}, {prop: "ReadyState", name: "ReadyState", embedded: false, exported: true, typ: ReadyState, tag: "js:\"readyState\""}, {prop: "BufferedAmount", name: "BufferedAmount", embedded: false, exported: true, typ: $Uint32, tag: "js:\"bufferedAmount\""}, {prop: "Extensions", name: "Extensions", embedded: false, exported: true, typ: $String, tag: "js:\"extensions\""}, {prop: "Protocol", name: "Protocol", embedded: false, exported: true, typ: $String, tag: "js:\"protocol\""}, {prop: "BinaryType", name: "BinaryType", embedded: false, exported: true, typ: $String, tag: "js:\"binaryType\""}]);
  32777. $init = function() {
  32778. $pkg.$init = function() {};
  32779. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  32780. $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32781. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  32782. };
  32783. $pkg.$init = $init;
  32784. return $pkg;
  32785. })();
  32786. $packages["context"] = (function() {
  32787. var $pkg = {}, $init, errors, fmt, reflect, sync, time, emptyCtx, ptrType, structType, ptrType$1, chanType, background, todo, closedchan, init;
  32788. errors = $packages["errors"];
  32789. fmt = $packages["fmt"];
  32790. reflect = $packages["reflect"];
  32791. sync = $packages["sync"];
  32792. time = $packages["time"];
  32793. emptyCtx = $pkg.emptyCtx = $newType(4, $kindInt, "context.emptyCtx", true, "context", false, null);
  32794. ptrType = $ptrType(emptyCtx);
  32795. structType = $structType("", []);
  32796. ptrType$1 = $ptrType(time.Location);
  32797. chanType = $chanType(structType, false, true);
  32798. $ptrType(emptyCtx).prototype.Deadline = function() {
  32799. var deadline, ok;
  32800. deadline = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$1.nil);
  32801. ok = false;
  32802. return [deadline, ok];
  32803. };
  32804. $ptrType(emptyCtx).prototype.Done = function() {
  32805. return $chanNil;
  32806. };
  32807. $ptrType(emptyCtx).prototype.Err = function() {
  32808. return $ifaceNil;
  32809. };
  32810. $ptrType(emptyCtx).prototype.Value = function(key) {
  32811. var key;
  32812. return $ifaceNil;
  32813. };
  32814. $ptrType(emptyCtx).prototype.String = function() {
  32815. var _1, e;
  32816. e = this;
  32817. _1 = e;
  32818. if (_1 === (background)) {
  32819. return "context.Background";
  32820. } else if (_1 === (todo)) {
  32821. return "context.TODO";
  32822. }
  32823. return "unknown empty Context";
  32824. };
  32825. init = function() {
  32826. $close(closedchan);
  32827. };
  32828. ptrType.methods = [{prop: "Deadline", name: "Deadline", pkg: "", typ: $funcType([], [time.Time, $Bool], false)}, {prop: "Done", name: "Done", pkg: "", typ: $funcType([], [chanType], false)}, {prop: "Err", name: "Err", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
  32829. $init = function() {
  32830. $pkg.$init = function() {};
  32831. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  32832. $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32833. $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32834. $r = reflect.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32835. $r = sync.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32836. $r = time.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32837. $pkg.Canceled = errors.New("context canceled");
  32838. background = $newDataPointer(0, ptrType);
  32839. todo = $newDataPointer(0, ptrType);
  32840. closedchan = new $Chan(structType, 0);
  32841. init();
  32842. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  32843. };
  32844. $pkg.$init = $init;
  32845. return $pkg;
  32846. })();
  32847. $packages["internal/nettrace"] = (function() {
  32848. var $pkg = {}, $init;
  32849. $init = function() {
  32850. $pkg.$init = function() {};
  32851. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  32852. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  32853. };
  32854. $pkg.$init = $init;
  32855. return $pkg;
  32856. })();
  32857. $packages["internal/singleflight"] = (function() {
  32858. var $pkg = {}, $init, sync;
  32859. sync = $packages["sync"];
  32860. $init = function() {
  32861. $pkg.$init = function() {};
  32862. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  32863. $r = sync.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32864. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  32865. };
  32866. $pkg.$init = $init;
  32867. return $pkg;
  32868. })();
  32869. $packages["internal/x/net/dns/dnsmessage"] = (function() {
  32870. var $pkg = {}, $init, errors, errBaseLen, errCalcLen, errReserved, errTooManyPtr, errInvalidPtr, errNilResouceBody, errResourceLen, errSegTooLong, errZeroSegLen, errResTooLong, errTooManyQuestions, errTooManyAnswers, errTooManyAuthorities, errTooManyAdditionals, errNonCanonicalName, errStringTooLong, errCompressedSRV;
  32871. errors = $packages["errors"];
  32872. $init = function() {
  32873. $pkg.$init = function() {};
  32874. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  32875. $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  32876. $pkg.ErrNotStarted = errors.New("parsing/packing of this type isn't available yet");
  32877. $pkg.ErrSectionDone = errors.New("parsing/packing of this section has completed");
  32878. errBaseLen = errors.New("insufficient data for base length type");
  32879. errCalcLen = errors.New("insufficient data for calculated length type");
  32880. errReserved = errors.New("segment prefix is reserved");
  32881. errTooManyPtr = errors.New("too many pointers (>10)");
  32882. errInvalidPtr = errors.New("invalid pointer");
  32883. errNilResouceBody = errors.New("nil resource body");
  32884. errResourceLen = errors.New("insufficient data for resource body length");
  32885. errSegTooLong = errors.New("segment length too long");
  32886. errZeroSegLen = errors.New("zero length segment");
  32887. errResTooLong = errors.New("resource length too long");
  32888. errTooManyQuestions = errors.New("too many Questions to pack (>65535)");
  32889. errTooManyAnswers = errors.New("too many Answers to pack (>65535)");
  32890. errTooManyAuthorities = errors.New("too many Authorities to pack (>65535)");
  32891. errTooManyAdditionals = errors.New("too many Additionals to pack (>65535)");
  32892. errNonCanonicalName = errors.New("name is not in canonical format (it must end with a .)");
  32893. errStringTooLong = errors.New("character string exceeds maximum length (255)");
  32894. errCompressedSRV = errors.New("compressed name in SRV resource data");
  32895. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  32896. };
  32897. $pkg.$init = $init;
  32898. return $pkg;
  32899. })();
  32900. $packages["math/rand"] = (function() {
  32901. var $pkg = {}, $init, nosync, math, Source, Source64, Rand, lockedSource, rngSource, arrayType, ptrType, ptrType$1, sliceType, ptrType$2, ptrType$3, funcType, sliceType$1, ptrType$5, ke, we, fe, kn, wn, fn, globalRand, rngCooked, absInt32, NewSource, New, read, seedrand;
  32902. nosync = $packages["github.com/gopherjs/gopherjs/nosync"];
  32903. math = $packages["math"];
  32904. Source = $pkg.Source = $newType(8, $kindInterface, "rand.Source", true, "math/rand", true, null);
  32905. Source64 = $pkg.Source64 = $newType(8, $kindInterface, "rand.Source64", true, "math/rand", true, null);
  32906. Rand = $pkg.Rand = $newType(0, $kindStruct, "rand.Rand", true, "math/rand", true, function(src_, s64_, readVal_, readPos_) {
  32907. this.$val = this;
  32908. if (arguments.length === 0) {
  32909. this.src = $ifaceNil;
  32910. this.s64 = $ifaceNil;
  32911. this.readVal = new $Int64(0, 0);
  32912. this.readPos = 0;
  32913. return;
  32914. }
  32915. this.src = src_;
  32916. this.s64 = s64_;
  32917. this.readVal = readVal_;
  32918. this.readPos = readPos_;
  32919. });
  32920. lockedSource = $pkg.lockedSource = $newType(0, $kindStruct, "rand.lockedSource", true, "math/rand", false, function(lk_, src_) {
  32921. this.$val = this;
  32922. if (arguments.length === 0) {
  32923. this.lk = new nosync.Mutex.ptr(false);
  32924. this.src = $ifaceNil;
  32925. return;
  32926. }
  32927. this.lk = lk_;
  32928. this.src = src_;
  32929. });
  32930. rngSource = $pkg.rngSource = $newType(0, $kindStruct, "rand.rngSource", true, "math/rand", false, function(tap_, feed_, vec_) {
  32931. this.$val = this;
  32932. if (arguments.length === 0) {
  32933. this.tap = 0;
  32934. this.feed = 0;
  32935. this.vec = arrayType.zero();
  32936. return;
  32937. }
  32938. this.tap = tap_;
  32939. this.feed = feed_;
  32940. this.vec = vec_;
  32941. });
  32942. arrayType = $arrayType($Int64, 607);
  32943. ptrType = $ptrType(lockedSource);
  32944. ptrType$1 = $ptrType($Int8);
  32945. sliceType = $sliceType($Int);
  32946. ptrType$2 = $ptrType($Int64);
  32947. ptrType$3 = $ptrType(Rand);
  32948. funcType = $funcType([$Int, $Int], [], false);
  32949. sliceType$1 = $sliceType($Uint8);
  32950. ptrType$5 = $ptrType(rngSource);
  32951. Rand.ptr.prototype.ExpFloat64 = function() {
  32952. var _r, _r$1, _r$2, _r$3, i, j, r, x, x$1, $s, $r;
  32953. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; i = $f.i; j = $f.j; r = $f.r; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  32954. r = this;
  32955. /* while (true) { */ case 1:
  32956. _r = r.Uint32(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  32957. j = _r;
  32958. i = (j & 255) >>> 0;
  32959. x = (j) * (((i < 0 || i >= we.length) ? ($throwRuntimeError("index out of range"), undefined) : we[i]));
  32960. if (j < ((i < 0 || i >= ke.length) ? ($throwRuntimeError("index out of range"), undefined) : ke[i])) {
  32961. $s = -1; return x;
  32962. }
  32963. /* */ if (i === 0) { $s = 4; continue; }
  32964. /* */ $s = 5; continue;
  32965. /* if (i === 0) { */ case 4:
  32966. _r$1 = r.Float64(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  32967. _r$2 = math.Log(_r$1); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  32968. $s = -1; return 7.69711747013105 - _r$2;
  32969. /* } */ case 5:
  32970. _r$3 = r.Float64(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  32971. /* */ if ($fround(((i < 0 || i >= fe.length) ? ($throwRuntimeError("index out of range"), undefined) : fe[i]) + $fround(($fround(_r$3)) * ($fround((x$1 = i - 1 >>> 0, ((x$1 < 0 || x$1 >= fe.length) ? ($throwRuntimeError("index out of range"), undefined) : fe[x$1])) - ((i < 0 || i >= fe.length) ? ($throwRuntimeError("index out of range"), undefined) : fe[i]))))) < ($fround(math.Exp(-x)))) { $s = 8; continue; }
  32972. /* */ $s = 9; continue;
  32973. /* if ($fround(((i < 0 || i >= fe.length) ? ($throwRuntimeError("index out of range"), undefined) : fe[i]) + $fround(($fround(_r$3)) * ($fround((x$1 = i - 1 >>> 0, ((x$1 < 0 || x$1 >= fe.length) ? ($throwRuntimeError("index out of range"), undefined) : fe[x$1])) - ((i < 0 || i >= fe.length) ? ($throwRuntimeError("index out of range"), undefined) : fe[i]))))) < ($fround(math.Exp(-x)))) { */ case 8:
  32974. $s = -1; return x;
  32975. /* } */ case 9:
  32976. /* } */ $s = 1; continue; case 2:
  32977. $s = -1; return 0;
  32978. /* */ } return; } if ($f === undefined) { $f = { $blk: Rand.ptr.prototype.ExpFloat64 }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f.i = i; $f.j = j; $f.r = r; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f;
  32979. };
  32980. Rand.prototype.ExpFloat64 = function() { return this.$val.ExpFloat64(); };
  32981. absInt32 = function(i) {
  32982. var i;
  32983. if (i < 0) {
  32984. return ((-i >>> 0));
  32985. }
  32986. return ((i >>> 0));
  32987. };
  32988. Rand.ptr.prototype.NormFloat64 = function() {
  32989. var _r, _r$1, _r$2, _r$3, _r$4, _r$5, i, j, r, x, x$1, y, $s, $r;
  32990. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; i = $f.i; j = $f.j; r = $f.r; x = $f.x; x$1 = $f.x$1; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  32991. r = this;
  32992. /* while (true) { */ case 1:
  32993. _r = r.Uint32(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  32994. j = ((_r >> 0));
  32995. i = j & 127;
  32996. x = (j) * (((i < 0 || i >= wn.length) ? ($throwRuntimeError("index out of range"), undefined) : wn[i]));
  32997. if (absInt32(j) < ((i < 0 || i >= kn.length) ? ($throwRuntimeError("index out of range"), undefined) : kn[i])) {
  32998. $s = -1; return x;
  32999. }
  33000. /* */ if (i === 0) { $s = 4; continue; }
  33001. /* */ $s = 5; continue;
  33002. /* if (i === 0) { */ case 4:
  33003. /* while (true) { */ case 6:
  33004. _r$1 = r.Float64(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  33005. _r$2 = math.Log(_r$1); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  33006. x = -_r$2 * 0.29047645161474317;
  33007. _r$3 = r.Float64(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  33008. _r$4 = math.Log(_r$3); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  33009. y = -_r$4;
  33010. if (y + y >= x * x) {
  33011. /* break; */ $s = 7; continue;
  33012. }
  33013. /* } */ $s = 6; continue; case 7:
  33014. if (j > 0) {
  33015. $s = -1; return 3.442619855899 + x;
  33016. }
  33017. $s = -1; return -3.442619855899 - x;
  33018. /* } */ case 5:
  33019. _r$5 = r.Float64(); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  33020. /* */ if ($fround(((i < 0 || i >= fn.length) ? ($throwRuntimeError("index out of range"), undefined) : fn[i]) + $fround(($fround(_r$5)) * ($fround((x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= fn.length) ? ($throwRuntimeError("index out of range"), undefined) : fn[x$1])) - ((i < 0 || i >= fn.length) ? ($throwRuntimeError("index out of range"), undefined) : fn[i]))))) < ($fround(math.Exp(-0.5 * x * x)))) { $s = 12; continue; }
  33021. /* */ $s = 13; continue;
  33022. /* if ($fround(((i < 0 || i >= fn.length) ? ($throwRuntimeError("index out of range"), undefined) : fn[i]) + $fround(($fround(_r$5)) * ($fround((x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= fn.length) ? ($throwRuntimeError("index out of range"), undefined) : fn[x$1])) - ((i < 0 || i >= fn.length) ? ($throwRuntimeError("index out of range"), undefined) : fn[i]))))) < ($fround(math.Exp(-0.5 * x * x)))) { */ case 12:
  33023. $s = -1; return x;
  33024. /* } */ case 13:
  33025. /* } */ $s = 1; continue; case 2:
  33026. $s = -1; return 0;
  33027. /* */ } return; } if ($f === undefined) { $f = { $blk: Rand.ptr.prototype.NormFloat64 }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f.i = i; $f.j = j; $f.r = r; $f.x = x; $f.x$1 = x$1; $f.y = y; $f.$s = $s; $f.$r = $r; return $f;
  33028. };
  33029. Rand.prototype.NormFloat64 = function() { return this.$val.NormFloat64(); };
  33030. NewSource = function(seed) {
  33031. var rng, seed;
  33032. rng = new rngSource.ptr(0, 0, arrayType.zero());
  33033. rng.Seed(seed);
  33034. return rng;
  33035. };
  33036. $pkg.NewSource = NewSource;
  33037. New = function(src) {
  33038. var _tuple, s64, src;
  33039. _tuple = $assertType(src, Source64, true);
  33040. s64 = _tuple[0];
  33041. return new Rand.ptr(src, s64, new $Int64(0, 0), 0);
  33042. };
  33043. $pkg.New = New;
  33044. Rand.ptr.prototype.Seed = function(seed) {
  33045. var _tuple, lk, ok, r, seed, $s, $r;
  33046. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tuple = $f._tuple; lk = $f.lk; ok = $f.ok; r = $f.r; seed = $f.seed; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33047. r = this;
  33048. _tuple = $assertType(r.src, ptrType, true);
  33049. lk = _tuple[0];
  33050. ok = _tuple[1];
  33051. /* */ if (ok) { $s = 1; continue; }
  33052. /* */ $s = 2; continue;
  33053. /* if (ok) { */ case 1:
  33054. $r = lk.seedPos(seed, (r.$ptr_readPos || (r.$ptr_readPos = new ptrType$1(function() { return this.$target.readPos; }, function($v) { this.$target.readPos = $v; }, r)))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  33055. $s = -1; return;
  33056. /* } */ case 2:
  33057. $r = r.src.Seed(seed); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  33058. r.readPos = 0;
  33059. $s = -1; return;
  33060. /* */ } return; } if ($f === undefined) { $f = { $blk: Rand.ptr.prototype.Seed }; } $f._tuple = _tuple; $f.lk = lk; $f.ok = ok; $f.r = r; $f.seed = seed; $f.$s = $s; $f.$r = $r; return $f;
  33061. };
  33062. Rand.prototype.Seed = function(seed) { return this.$val.Seed(seed); };
  33063. Rand.ptr.prototype.Int63 = function() {
  33064. var _r, r, $s, $r;
  33065. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33066. r = this;
  33067. _r = r.src.Int63(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  33068. $s = -1; return _r;
  33069. /* */ } return; } if ($f === undefined) { $f = { $blk: Rand.ptr.prototype.Int63 }; } $f._r = _r; $f.r = r; $f.$s = $s; $f.$r = $r; return $f;
  33070. };
  33071. Rand.prototype.Int63 = function() { return this.$val.Int63(); };
  33072. Rand.ptr.prototype.Uint32 = function() {
  33073. var _r, r, $s, $r;
  33074. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33075. r = this;
  33076. _r = r.Int63(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  33077. $s = -1; return (($shiftRightInt64(_r, 31).$low >>> 0));
  33078. /* */ } return; } if ($f === undefined) { $f = { $blk: Rand.ptr.prototype.Uint32 }; } $f._r = _r; $f.r = r; $f.$s = $s; $f.$r = $r; return $f;
  33079. };
  33080. Rand.prototype.Uint32 = function() { return this.$val.Uint32(); };
  33081. Rand.ptr.prototype.Uint64 = function() {
  33082. var _r, _r$1, _r$2, r, x, x$1, x$2, x$3, $s, $r;
  33083. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; r = $f.r; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33084. r = this;
  33085. /* */ if (!($interfaceIsEqual(r.s64, $ifaceNil))) { $s = 1; continue; }
  33086. /* */ $s = 2; continue;
  33087. /* if (!($interfaceIsEqual(r.s64, $ifaceNil))) { */ case 1:
  33088. _r = r.s64.Uint64(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  33089. $s = -1; return _r;
  33090. /* } */ case 2:
  33091. _r$1 = r.Int63(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  33092. _r$2 = r.Int63(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  33093. $s = -1; return (x = $shiftRightUint64(((x$1 = _r$1, new $Uint64(x$1.$high, x$1.$low))), 31), x$2 = $shiftLeft64(((x$3 = _r$2, new $Uint64(x$3.$high, x$3.$low))), 32), new $Uint64(x.$high | x$2.$high, (x.$low | x$2.$low) >>> 0));
  33094. /* */ } return; } if ($f === undefined) { $f = { $blk: Rand.ptr.prototype.Uint64 }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.r = r; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.$s = $s; $f.$r = $r; return $f;
  33095. };
  33096. Rand.prototype.Uint64 = function() { return this.$val.Uint64(); };
  33097. Rand.ptr.prototype.Int31 = function() {
  33098. var _r, r, x, $s, $r;
  33099. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; r = $f.r; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33100. r = this;
  33101. _r = r.Int63(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  33102. $s = -1; return (((x = $shiftRightInt64(_r, 32), x.$low + ((x.$high >> 31) * 4294967296)) >> 0));
  33103. /* */ } return; } if ($f === undefined) { $f = { $blk: Rand.ptr.prototype.Int31 }; } $f._r = _r; $f.r = r; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  33104. };
  33105. Rand.prototype.Int31 = function() { return this.$val.Int31(); };
  33106. Rand.ptr.prototype.Int = function() {
  33107. var _r, r, u, $s, $r;
  33108. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; r = $f.r; u = $f.u; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33109. r = this;
  33110. _r = r.Int63(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  33111. u = ((_r.$low >>> 0));
  33112. $s = -1; return ((((u << 1 >>> 0) >>> 1 >>> 0) >> 0));
  33113. /* */ } return; } if ($f === undefined) { $f = { $blk: Rand.ptr.prototype.Int }; } $f._r = _r; $f.r = r; $f.u = u; $f.$s = $s; $f.$r = $r; return $f;
  33114. };
  33115. Rand.prototype.Int = function() { return this.$val.Int(); };
  33116. Rand.ptr.prototype.Int63n = function(n) {
  33117. var _r, _r$1, _r$2, max, n, r, v, x, x$1, x$2, x$3, x$4, x$5, $s, $r;
  33118. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; max = $f.max; n = $f.n; r = $f.r; v = $f.v; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33119. r = this;
  33120. if ((n.$high < 0 || (n.$high === 0 && n.$low <= 0))) {
  33121. $panic(new $String("invalid argument to Int63n"));
  33122. }
  33123. /* */ if ((x = (x$1 = new $Int64(n.$high - 0, n.$low - 1), new $Int64(n.$high & x$1.$high, (n.$low & x$1.$low) >>> 0)), (x.$high === 0 && x.$low === 0))) { $s = 1; continue; }
  33124. /* */ $s = 2; continue;
  33125. /* if ((x = (x$1 = new $Int64(n.$high - 0, n.$low - 1), new $Int64(n.$high & x$1.$high, (n.$low & x$1.$low) >>> 0)), (x.$high === 0 && x.$low === 0))) { */ case 1:
  33126. _r = r.Int63(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  33127. $s = -1; return (x$2 = _r, x$3 = new $Int64(n.$high - 0, n.$low - 1), new $Int64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0));
  33128. /* } */ case 2:
  33129. max = ((x$4 = (x$5 = $div64(new $Uint64(2147483648, 0), (new $Uint64(n.$high, n.$low)), true), new $Uint64(2147483647 - x$5.$high, 4294967295 - x$5.$low)), new $Int64(x$4.$high, x$4.$low)));
  33130. _r$1 = r.Int63(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  33131. v = _r$1;
  33132. /* while (true) { */ case 5:
  33133. /* if (!((v.$high > max.$high || (v.$high === max.$high && v.$low > max.$low)))) { break; } */ if(!((v.$high > max.$high || (v.$high === max.$high && v.$low > max.$low)))) { $s = 6; continue; }
  33134. _r$2 = r.Int63(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  33135. v = _r$2;
  33136. /* } */ $s = 5; continue; case 6:
  33137. $s = -1; return $div64(v, n, true);
  33138. /* */ } return; } if ($f === undefined) { $f = { $blk: Rand.ptr.prototype.Int63n }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.max = max; $f.n = n; $f.r = r; $f.v = v; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.$s = $s; $f.$r = $r; return $f;
  33139. };
  33140. Rand.prototype.Int63n = function(n) { return this.$val.Int63n(n); };
  33141. Rand.ptr.prototype.Int31n = function(n) {
  33142. var _r, _r$1, _r$2, _r$3, _r$4, max, n, r, v, $s, $r;
  33143. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; max = $f.max; n = $f.n; r = $f.r; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33144. r = this;
  33145. if (n <= 0) {
  33146. $panic(new $String("invalid argument to Int31n"));
  33147. }
  33148. /* */ if ((n & ((n - 1 >> 0))) === 0) { $s = 1; continue; }
  33149. /* */ $s = 2; continue;
  33150. /* if ((n & ((n - 1 >> 0))) === 0) { */ case 1:
  33151. _r = r.Int31(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  33152. $s = -1; return _r & ((n - 1 >> 0));
  33153. /* } */ case 2:
  33154. max = (((2147483647 - (_r$1 = 2147483648 % ((n >>> 0)), _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) >>> 0) >> 0));
  33155. _r$2 = r.Int31(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  33156. v = _r$2;
  33157. /* while (true) { */ case 5:
  33158. /* if (!(v > max)) { break; } */ if(!(v > max)) { $s = 6; continue; }
  33159. _r$3 = r.Int31(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  33160. v = _r$3;
  33161. /* } */ $s = 5; continue; case 6:
  33162. $s = -1; return (_r$4 = v % n, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero"));
  33163. /* */ } return; } if ($f === undefined) { $f = { $blk: Rand.ptr.prototype.Int31n }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f.max = max; $f.n = n; $f.r = r; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  33164. };
  33165. Rand.prototype.Int31n = function(n) { return this.$val.Int31n(n); };
  33166. Rand.ptr.prototype.int31n = function(n) {
  33167. var _r, _r$1, _r$2, low, n, prod, r, thresh, v, $s, $r;
  33168. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; low = $f.low; n = $f.n; prod = $f.prod; r = $f.r; thresh = $f.thresh; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33169. r = this;
  33170. _r = r.Uint32(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  33171. v = _r;
  33172. prod = $mul64((new $Uint64(0, v)), (new $Uint64(0, n)));
  33173. low = ((prod.$low >>> 0));
  33174. /* */ if (low < ((n >>> 0))) { $s = 2; continue; }
  33175. /* */ $s = 3; continue;
  33176. /* if (low < ((n >>> 0))) { */ case 2:
  33177. thresh = (_r$1 = ((-n >>> 0)) % ((n >>> 0)), _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero"));
  33178. /* while (true) { */ case 4:
  33179. /* if (!(low < thresh)) { break; } */ if(!(low < thresh)) { $s = 5; continue; }
  33180. _r$2 = r.Uint32(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  33181. v = _r$2;
  33182. prod = $mul64((new $Uint64(0, v)), (new $Uint64(0, n)));
  33183. low = ((prod.$low >>> 0));
  33184. /* } */ $s = 4; continue; case 5:
  33185. /* } */ case 3:
  33186. $s = -1; return (($shiftRightUint64(prod, 32).$low >> 0));
  33187. /* */ } return; } if ($f === undefined) { $f = { $blk: Rand.ptr.prototype.int31n }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.low = low; $f.n = n; $f.prod = prod; $f.r = r; $f.thresh = thresh; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  33188. };
  33189. Rand.prototype.int31n = function(n) { return this.$val.int31n(n); };
  33190. Rand.ptr.prototype.Intn = function(n) {
  33191. var _r, _r$1, n, r, x, $s, $r;
  33192. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; n = $f.n; r = $f.r; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33193. r = this;
  33194. if (n <= 0) {
  33195. $panic(new $String("invalid argument to Intn"));
  33196. }
  33197. /* */ if (n <= 2147483647) { $s = 1; continue; }
  33198. /* */ $s = 2; continue;
  33199. /* if (n <= 2147483647) { */ case 1:
  33200. _r = r.Int31n(((n >> 0))); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  33201. $s = -1; return ((_r >> 0));
  33202. /* } */ case 2:
  33203. _r$1 = r.Int63n((new $Int64(0, n))); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  33204. $s = -1; return (((x = _r$1, x.$low + ((x.$high >> 31) * 4294967296)) >> 0));
  33205. /* */ } return; } if ($f === undefined) { $f = { $blk: Rand.ptr.prototype.Intn }; } $f._r = _r; $f._r$1 = _r$1; $f.n = n; $f.r = r; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  33206. };
  33207. Rand.prototype.Intn = function(n) { return this.$val.Intn(n); };
  33208. Rand.ptr.prototype.Float64 = function() {
  33209. var _r, f, r, $s, $r;
  33210. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33211. r = this;
  33212. /* again: */ case 1:
  33213. _r = r.Int63(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  33214. f = ($flatten64(_r)) / 9.223372036854776e+18;
  33215. /* */ if (f === 1) { $s = 3; continue; }
  33216. /* */ $s = 4; continue;
  33217. /* if (f === 1) { */ case 3:
  33218. /* goto again */ $s = 1; continue;
  33219. /* } */ case 4:
  33220. $s = -1; return f;
  33221. /* */ } return; } if ($f === undefined) { $f = { $blk: Rand.ptr.prototype.Float64 }; } $f._r = _r; $f.f = f; $f.r = r; $f.$s = $s; $f.$r = $r; return $f;
  33222. };
  33223. Rand.prototype.Float64 = function() { return this.$val.Float64(); };
  33224. Rand.ptr.prototype.Float32 = function() {
  33225. var _r, f, r, $s, $r;
  33226. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33227. r = this;
  33228. /* again: */ case 1:
  33229. _r = r.Float64(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  33230. f = ($fround(_r));
  33231. /* */ if (f === 1) { $s = 3; continue; }
  33232. /* */ $s = 4; continue;
  33233. /* if (f === 1) { */ case 3:
  33234. /* goto again */ $s = 1; continue;
  33235. /* } */ case 4:
  33236. $s = -1; return f;
  33237. /* */ } return; } if ($f === undefined) { $f = { $blk: Rand.ptr.prototype.Float32 }; } $f._r = _r; $f.f = f; $f.r = r; $f.$s = $s; $f.$r = $r; return $f;
  33238. };
  33239. Rand.prototype.Float32 = function() { return this.$val.Float32(); };
  33240. Rand.ptr.prototype.Perm = function(n) {
  33241. var _r, i, j, m, n, r, $s, $r;
  33242. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; i = $f.i; j = $f.j; m = $f.m; n = $f.n; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33243. r = this;
  33244. m = $makeSlice(sliceType, n);
  33245. i = 0;
  33246. /* while (true) { */ case 1:
  33247. /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 2; continue; }
  33248. _r = r.Intn(i + 1 >> 0); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  33249. j = _r;
  33250. ((i < 0 || i >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + i] = ((j < 0 || j >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + j]));
  33251. ((j < 0 || j >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + j] = i);
  33252. i = i + (1) >> 0;
  33253. /* } */ $s = 1; continue; case 2:
  33254. $s = -1; return m;
  33255. /* */ } return; } if ($f === undefined) { $f = { $blk: Rand.ptr.prototype.Perm }; } $f._r = _r; $f.i = i; $f.j = j; $f.m = m; $f.n = n; $f.r = r; $f.$s = $s; $f.$r = $r; return $f;
  33256. };
  33257. Rand.prototype.Perm = function(n) { return this.$val.Perm(n); };
  33258. Rand.ptr.prototype.Shuffle = function(n, swap) {
  33259. var _r, _r$1, i, j, j$1, n, r, swap, x, $s, $r;
  33260. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; i = $f.i; j = $f.j; j$1 = $f.j$1; n = $f.n; r = $f.r; swap = $f.swap; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33261. r = this;
  33262. if (n < 0) {
  33263. $panic(new $String("invalid argument to Shuffle"));
  33264. }
  33265. i = n - 1 >> 0;
  33266. /* while (true) { */ case 1:
  33267. /* if (!(i > 2147483646)) { break; } */ if(!(i > 2147483646)) { $s = 2; continue; }
  33268. _r = r.Int63n((new $Int64(0, (i + 1 >> 0)))); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  33269. j = (((x = _r, x.$low + ((x.$high >> 31) * 4294967296)) >> 0));
  33270. $r = swap(i, j); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  33271. i = i - (1) >> 0;
  33272. /* } */ $s = 1; continue; case 2:
  33273. /* while (true) { */ case 5:
  33274. /* if (!(i > 0)) { break; } */ if(!(i > 0)) { $s = 6; continue; }
  33275. _r$1 = r.int31n((((i + 1 >> 0) >> 0))); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  33276. j$1 = ((_r$1 >> 0));
  33277. $r = swap(i, j$1); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  33278. i = i - (1) >> 0;
  33279. /* } */ $s = 5; continue; case 6:
  33280. $s = -1; return;
  33281. /* */ } return; } if ($f === undefined) { $f = { $blk: Rand.ptr.prototype.Shuffle }; } $f._r = _r; $f._r$1 = _r$1; $f.i = i; $f.j = j; $f.j$1 = j$1; $f.n = n; $f.r = r; $f.swap = swap; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  33282. };
  33283. Rand.prototype.Shuffle = function(n, swap) { return this.$val.Shuffle(n, swap); };
  33284. Rand.ptr.prototype.Read = function(p) {
  33285. var _r, _r$1, _tuple, _tuple$1, _tuple$2, err, lk, n, ok, p, r, $s, $r;
  33286. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; err = $f.err; lk = $f.lk; n = $f.n; ok = $f.ok; p = $f.p; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33287. n = 0;
  33288. err = $ifaceNil;
  33289. r = this;
  33290. _tuple = $assertType(r.src, ptrType, true);
  33291. lk = _tuple[0];
  33292. ok = _tuple[1];
  33293. /* */ if (ok) { $s = 1; continue; }
  33294. /* */ $s = 2; continue;
  33295. /* if (ok) { */ case 1:
  33296. _r = lk.read(p, (r.$ptr_readVal || (r.$ptr_readVal = new ptrType$2(function() { return this.$target.readVal; }, function($v) { this.$target.readVal = $v; }, r))), (r.$ptr_readPos || (r.$ptr_readPos = new ptrType$1(function() { return this.$target.readPos; }, function($v) { this.$target.readPos = $v; }, r)))); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  33297. _tuple$1 = _r;
  33298. n = _tuple$1[0];
  33299. err = _tuple$1[1];
  33300. $s = -1; return [n, err];
  33301. /* } */ case 2:
  33302. _r$1 = read(p, $methodVal(r, "Int63"), (r.$ptr_readVal || (r.$ptr_readVal = new ptrType$2(function() { return this.$target.readVal; }, function($v) { this.$target.readVal = $v; }, r))), (r.$ptr_readPos || (r.$ptr_readPos = new ptrType$1(function() { return this.$target.readPos; }, function($v) { this.$target.readPos = $v; }, r)))); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  33303. _tuple$2 = _r$1;
  33304. n = _tuple$2[0];
  33305. err = _tuple$2[1];
  33306. $s = -1; return [n, err];
  33307. /* */ } return; } if ($f === undefined) { $f = { $blk: Rand.ptr.prototype.Read }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.err = err; $f.lk = lk; $f.n = n; $f.ok = ok; $f.p = p; $f.r = r; $f.$s = $s; $f.$r = $r; return $f;
  33308. };
  33309. Rand.prototype.Read = function(p) { return this.$val.Read(p); };
  33310. read = function(p, int63, readVal, readPos) {
  33311. var _r, err, int63, n, p, pos, readPos, readVal, val, $s, $r;
  33312. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; int63 = $f.int63; n = $f.n; p = $f.p; pos = $f.pos; readPos = $f.readPos; readVal = $f.readVal; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33313. n = 0;
  33314. err = $ifaceNil;
  33315. pos = readPos.$get();
  33316. val = readVal.$get();
  33317. n = 0;
  33318. /* while (true) { */ case 1:
  33319. /* if (!(n < p.$length)) { break; } */ if(!(n < p.$length)) { $s = 2; continue; }
  33320. /* */ if (pos === 0) { $s = 3; continue; }
  33321. /* */ $s = 4; continue;
  33322. /* if (pos === 0) { */ case 3:
  33323. _r = int63(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  33324. val = _r;
  33325. pos = 7;
  33326. /* } */ case 4:
  33327. ((n < 0 || n >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + n] = ((val.$low << 24 >>> 24)));
  33328. val = $shiftRightInt64(val, (8));
  33329. pos = pos - (1) << 24 >> 24;
  33330. n = n + (1) >> 0;
  33331. /* } */ $s = 1; continue; case 2:
  33332. readPos.$set(pos);
  33333. readVal.$set(val);
  33334. $s = -1; return [n, err];
  33335. /* */ } return; } if ($f === undefined) { $f = { $blk: read }; } $f._r = _r; $f.err = err; $f.int63 = int63; $f.n = n; $f.p = p; $f.pos = pos; $f.readPos = readPos; $f.readVal = readVal; $f.val = val; $f.$s = $s; $f.$r = $r; return $f;
  33336. };
  33337. lockedSource.ptr.prototype.Int63 = function() {
  33338. var _r, n, r, $s, $r;
  33339. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; n = $f.n; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33340. n = new $Int64(0, 0);
  33341. r = this;
  33342. r.lk.Lock();
  33343. _r = r.src.Int63(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  33344. n = _r;
  33345. r.lk.Unlock();
  33346. $s = -1; return n;
  33347. /* */ } return; } if ($f === undefined) { $f = { $blk: lockedSource.ptr.prototype.Int63 }; } $f._r = _r; $f.n = n; $f.r = r; $f.$s = $s; $f.$r = $r; return $f;
  33348. };
  33349. lockedSource.prototype.Int63 = function() { return this.$val.Int63(); };
  33350. lockedSource.ptr.prototype.Uint64 = function() {
  33351. var _r, n, r, $s, $r;
  33352. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; n = $f.n; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33353. n = new $Uint64(0, 0);
  33354. r = this;
  33355. r.lk.Lock();
  33356. _r = r.src.Uint64(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  33357. n = _r;
  33358. r.lk.Unlock();
  33359. $s = -1; return n;
  33360. /* */ } return; } if ($f === undefined) { $f = { $blk: lockedSource.ptr.prototype.Uint64 }; } $f._r = _r; $f.n = n; $f.r = r; $f.$s = $s; $f.$r = $r; return $f;
  33361. };
  33362. lockedSource.prototype.Uint64 = function() { return this.$val.Uint64(); };
  33363. lockedSource.ptr.prototype.Seed = function(seed) {
  33364. var r, seed, $s, $r;
  33365. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; r = $f.r; seed = $f.seed; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33366. r = this;
  33367. r.lk.Lock();
  33368. $r = r.src.Seed(seed); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  33369. r.lk.Unlock();
  33370. $s = -1; return;
  33371. /* */ } return; } if ($f === undefined) { $f = { $blk: lockedSource.ptr.prototype.Seed }; } $f.r = r; $f.seed = seed; $f.$s = $s; $f.$r = $r; return $f;
  33372. };
  33373. lockedSource.prototype.Seed = function(seed) { return this.$val.Seed(seed); };
  33374. lockedSource.ptr.prototype.seedPos = function(seed, readPos) {
  33375. var r, readPos, seed, $s, $r;
  33376. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; r = $f.r; readPos = $f.readPos; seed = $f.seed; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33377. r = this;
  33378. r.lk.Lock();
  33379. $r = r.src.Seed(seed); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  33380. readPos.$set(0);
  33381. r.lk.Unlock();
  33382. $s = -1; return;
  33383. /* */ } return; } if ($f === undefined) { $f = { $blk: lockedSource.ptr.prototype.seedPos }; } $f.r = r; $f.readPos = readPos; $f.seed = seed; $f.$s = $s; $f.$r = $r; return $f;
  33384. };
  33385. lockedSource.prototype.seedPos = function(seed, readPos) { return this.$val.seedPos(seed, readPos); };
  33386. lockedSource.ptr.prototype.read = function(p, readVal, readPos) {
  33387. var _r, _tuple, err, n, p, r, readPos, readVal, $s, $r;
  33388. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; n = $f.n; p = $f.p; r = $f.r; readPos = $f.readPos; readVal = $f.readVal; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33389. n = 0;
  33390. err = $ifaceNil;
  33391. r = this;
  33392. r.lk.Lock();
  33393. _r = read(p, $methodVal(r.src, "Int63"), readVal, readPos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  33394. _tuple = _r;
  33395. n = _tuple[0];
  33396. err = _tuple[1];
  33397. r.lk.Unlock();
  33398. $s = -1; return [n, err];
  33399. /* */ } return; } if ($f === undefined) { $f = { $blk: lockedSource.ptr.prototype.read }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.n = n; $f.p = p; $f.r = r; $f.readPos = readPos; $f.readVal = readVal; $f.$s = $s; $f.$r = $r; return $f;
  33400. };
  33401. lockedSource.prototype.read = function(p, readVal, readPos) { return this.$val.read(p, readVal, readPos); };
  33402. seedrand = function(x) {
  33403. var _q, _r, hi, lo, x;
  33404. hi = (_q = x / 44488, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
  33405. lo = (_r = x % 44488, _r === _r ? _r : $throwRuntimeError("integer divide by zero"));
  33406. x = ($imul(48271, lo)) - ($imul(3399, hi)) >> 0;
  33407. if (x < 0) {
  33408. x = x + (2147483647) >> 0;
  33409. }
  33410. return x;
  33411. };
  33412. rngSource.ptr.prototype.Seed = function(seed) {
  33413. var i, rng, seed, u, x, x$1, x$2, x$3, x$4, x$5;
  33414. rng = this;
  33415. rng.tap = 0;
  33416. rng.feed = 334;
  33417. seed = $div64(seed, new $Int64(0, 2147483647), true);
  33418. if ((seed.$high < 0 || (seed.$high === 0 && seed.$low < 0))) {
  33419. seed = (x = new $Int64(0, 2147483647), new $Int64(seed.$high + x.$high, seed.$low + x.$low));
  33420. }
  33421. if ((seed.$high === 0 && seed.$low === 0)) {
  33422. seed = new $Int64(0, 89482311);
  33423. }
  33424. x$1 = (((seed.$low + ((seed.$high >> 31) * 4294967296)) >> 0));
  33425. i = -20;
  33426. while (true) {
  33427. if (!(i < 607)) { break; }
  33428. x$1 = seedrand(x$1);
  33429. if (i >= 0) {
  33430. u = new $Int64(0, 0);
  33431. u = $shiftLeft64((new $Int64(0, x$1)), 40);
  33432. x$1 = seedrand(x$1);
  33433. u = (x$2 = $shiftLeft64((new $Int64(0, x$1)), 20), new $Int64(u.$high ^ x$2.$high, (u.$low ^ x$2.$low) >>> 0));
  33434. x$1 = seedrand(x$1);
  33435. u = (x$3 = (new $Int64(0, x$1)), new $Int64(u.$high ^ x$3.$high, (u.$low ^ x$3.$low) >>> 0));
  33436. u = (x$4 = ((i < 0 || i >= rngCooked.length) ? ($throwRuntimeError("index out of range"), undefined) : rngCooked[i]), new $Int64(u.$high ^ x$4.$high, (u.$low ^ x$4.$low) >>> 0));
  33437. (x$5 = rng.vec, ((i < 0 || i >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[i] = u));
  33438. }
  33439. i = i + (1) >> 0;
  33440. }
  33441. };
  33442. rngSource.prototype.Seed = function(seed) { return this.$val.Seed(seed); };
  33443. rngSource.ptr.prototype.Int63 = function() {
  33444. var rng, x, x$1;
  33445. rng = this;
  33446. return ((x = (x$1 = rng.Uint64(), new $Uint64(x$1.$high & 2147483647, (x$1.$low & 4294967295) >>> 0)), new $Int64(x.$high, x.$low)));
  33447. };
  33448. rngSource.prototype.Int63 = function() { return this.$val.Int63(); };
  33449. rngSource.ptr.prototype.Uint64 = function() {
  33450. var rng, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8;
  33451. rng = this;
  33452. rng.tap = rng.tap - (1) >> 0;
  33453. if (rng.tap < 0) {
  33454. rng.tap = rng.tap + (607) >> 0;
  33455. }
  33456. rng.feed = rng.feed - (1) >> 0;
  33457. if (rng.feed < 0) {
  33458. rng.feed = rng.feed + (607) >> 0;
  33459. }
  33460. x$6 = (x = (x$1 = rng.vec, x$2 = rng.feed, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2])), x$3 = (x$4 = rng.vec, x$5 = rng.tap, ((x$5 < 0 || x$5 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[x$5])), new $Int64(x.$high + x$3.$high, x.$low + x$3.$low));
  33461. (x$7 = rng.vec, x$8 = rng.feed, ((x$8 < 0 || x$8 >= x$7.length) ? ($throwRuntimeError("index out of range"), undefined) : x$7[x$8] = x$6));
  33462. return (new $Uint64(x$6.$high, x$6.$low));
  33463. };
  33464. rngSource.prototype.Uint64 = function() { return this.$val.Uint64(); };
  33465. ptrType$3.methods = [{prop: "ExpFloat64", name: "ExpFloat64", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "NormFloat64", name: "NormFloat64", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Seed", name: "Seed", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "Int63", name: "Int63", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint32", name: "Uint32", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "Int31", name: "Int31", pkg: "", typ: $funcType([], [$Int32], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Int63n", name: "Int63n", pkg: "", typ: $funcType([$Int64], [$Int64], false)}, {prop: "Int31n", name: "Int31n", pkg: "", typ: $funcType([$Int32], [$Int32], false)}, {prop: "int31n", name: "int31n", pkg: "math/rand", typ: $funcType([$Int32], [$Int32], false)}, {prop: "Intn", name: "Intn", pkg: "", typ: $funcType([$Int], [$Int], false)}, {prop: "Float64", name: "Float64", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Float32", name: "Float32", pkg: "", typ: $funcType([], [$Float32], false)}, {prop: "Perm", name: "Perm", pkg: "", typ: $funcType([$Int], [sliceType], false)}, {prop: "Shuffle", name: "Shuffle", pkg: "", typ: $funcType([$Int, funcType], [], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}];
  33466. ptrType.methods = [{prop: "Int63", name: "Int63", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "Seed", name: "Seed", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "seedPos", name: "seedPos", pkg: "math/rand", typ: $funcType([$Int64, ptrType$1], [], false)}, {prop: "read", name: "read", pkg: "math/rand", typ: $funcType([sliceType$1, ptrType$2, ptrType$1], [$Int, $error], false)}];
  33467. ptrType$5.methods = [{prop: "Seed", name: "Seed", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "Int63", name: "Int63", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}];
  33468. Source.init([{prop: "Int63", name: "Int63", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Seed", name: "Seed", pkg: "", typ: $funcType([$Int64], [], false)}]);
  33469. Source64.init([{prop: "Int63", name: "Int63", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Seed", name: "Seed", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}]);
  33470. Rand.init("math/rand", [{prop: "src", name: "src", embedded: false, exported: false, typ: Source, tag: ""}, {prop: "s64", name: "s64", embedded: false, exported: false, typ: Source64, tag: ""}, {prop: "readVal", name: "readVal", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "readPos", name: "readPos", embedded: false, exported: false, typ: $Int8, tag: ""}]);
  33471. lockedSource.init("math/rand", [{prop: "lk", name: "lk", embedded: false, exported: false, typ: nosync.Mutex, tag: ""}, {prop: "src", name: "src", embedded: false, exported: false, typ: Source64, tag: ""}]);
  33472. rngSource.init("math/rand", [{prop: "tap", name: "tap", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "feed", name: "feed", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "vec", name: "vec", embedded: false, exported: false, typ: arrayType, tag: ""}]);
  33473. $init = function() {
  33474. $pkg.$init = function() {};
  33475. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33476. $r = nosync.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  33477. $r = math.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  33478. ke = $toNativeArray($kindUint32, [3801129273, 0, 2615860924, 3279400049, 3571300752, 3733536696, 3836274812, 3906990442, 3958562475, 3997804264, 4028649213, 4053523342, 4074002619, 4091154507, 4105727352, 4118261130, 4129155133, 4138710916, 4147160435, 4154685009, 4161428406, 4167506077, 4173011791, 4178022498, 4182601930, 4186803325, 4190671498, 4194244443, 4197554582, 4200629752, 4203493986, 4206168142, 4208670408, 4211016720, 4213221098, 4215295924, 4217252177, 4219099625, 4220846988, 4222502074, 4224071896, 4225562770, 4226980400, 4228329951, 4229616109, 4230843138, 4232014925, 4233135020, 4234206673, 4235232866, 4236216336, 4237159604, 4238064994, 4238934652, 4239770563, 4240574564, 4241348362, 4242093539, 4242811568, 4243503822, 4244171579, 4244816032, 4245438297, 4246039419, 4246620374, 4247182079, 4247725394, 4248251127, 4248760037, 4249252839, 4249730206, 4250192773, 4250641138, 4251075867, 4251497493, 4251906522, 4252303431, 4252688672, 4253062674, 4253425844, 4253778565, 4254121205, 4254454110, 4254777611, 4255092022, 4255397640, 4255694750, 4255983622, 4256264513, 4256537670, 4256803325, 4257061702, 4257313014, 4257557464, 4257795244, 4258026541, 4258251531, 4258470383, 4258683258, 4258890309, 4259091685, 4259287526, 4259477966, 4259663135, 4259843154, 4260018142, 4260188212, 4260353470, 4260514019, 4260669958, 4260821380, 4260968374, 4261111028, 4261249421, 4261383632, 4261513736, 4261639802, 4261761900, 4261880092, 4261994441, 4262105003, 4262211835, 4262314988, 4262414513, 4262510454, 4262602857, 4262691764, 4262777212, 4262859239, 4262937878, 4263013162, 4263085118, 4263153776, 4263219158, 4263281289, 4263340187, 4263395872, 4263448358, 4263497660, 4263543789, 4263586755, 4263626565, 4263663224, 4263696735, 4263727099, 4263754314, 4263778377, 4263799282, 4263817020, 4263831582, 4263842955, 4263851124, 4263856071, 4263857776, 4263856218, 4263851370, 4263843206, 4263831695, 4263816804, 4263798497, 4263776735, 4263751476, 4263722676, 4263690284, 4263654251, 4263614520, 4263571032, 4263523724, 4263472530, 4263417377, 4263358192, 4263294892, 4263227394, 4263155608, 4263079437, 4262998781, 4262913534, 4262823581, 4262728804, 4262629075, 4262524261, 4262414220, 4262298801, 4262177846, 4262051187, 4261918645, 4261780032, 4261635148, 4261483780, 4261325704, 4261160681, 4260988457, 4260808763, 4260621313, 4260425802, 4260221905, 4260009277, 4259787550, 4259556329, 4259315195, 4259063697, 4258801357, 4258527656, 4258242044, 4257943926, 4257632664, 4257307571, 4256967906, 4256612870, 4256241598, 4255853155, 4255446525, 4255020608, 4254574202, 4254106002, 4253614578, 4253098370, 4252555662, 4251984571, 4251383021, 4250748722, 4250079132, 4249371435, 4248622490, 4247828790, 4246986404, 4246090910, 4245137315, 4244119963, 4243032411, 4241867296, 4240616155, 4239269214, 4237815118, 4236240596, 4234530035, 4232664930, 4230623176, 4228378137, 4225897409, 4223141146, 4220059768, 4216590757, 4212654085, 4208145538, 4202926710, 4196809522, 4189531420, 4180713890, 4169789475, 4155865042, 4137444620, 4111806704, 4073393724, 4008685917, 3873074895]);
  33479. we = $toNativeArray($kindFloat32, [2.0249555365836613e-09, 1.4866739783681027e-11, 2.4409616689036184e-11, 3.1968806074589295e-11, 3.844677007314168e-11, 4.42282044321729e-11, 4.951644302919611e-11, 5.443358958023836e-11, 5.905943789574764e-11, 6.34494193296753e-11, 6.764381416113352e-11, 7.167294535648239e-11, 7.556032188826833e-11, 7.932458162551725e-11, 8.298078890689453e-11, 8.654132271912474e-11, 9.001651507523079e-11, 9.341507428706208e-11, 9.674443190998971e-11, 1.0001099254308699e-10, 1.0322031424037093e-10, 1.0637725422757427e-10, 1.0948611461891744e-10, 1.1255067711157807e-10, 1.1557434870246297e-10, 1.1856014781042035e-10, 1.2151082917633005e-10, 1.2442885610752796e-10, 1.2731647680563896e-10, 1.3017574518325858e-10, 1.330085347417409e-10, 1.3581656632677408e-10, 1.386014220061682e-10, 1.413645728254309e-10, 1.4410737880776736e-10, 1.4683107507629245e-10, 1.4953686899854546e-10, 1.522258291641876e-10, 1.5489899640730442e-10, 1.575573282952547e-10, 1.6020171300645814e-10, 1.628330109637588e-10, 1.6545202707884954e-10, 1.68059510752272e-10, 1.7065616975120435e-10, 1.73242697965037e-10, 1.758197337720091e-10, 1.783878739169964e-10, 1.8094774290045024e-10, 1.834998542005195e-10, 1.8604476292871652e-10, 1.8858298256319017e-10, 1.9111498494872592e-10, 1.9364125580789704e-10, 1.9616222535212557e-10, 1.9867835154840918e-10, 2.011900368525943e-10, 2.0369768372052732e-10, 2.062016807302669e-10, 2.0870240258208383e-10, 2.1120022397624894e-10, 2.136955057352452e-10, 2.1618855317040442e-10, 2.1867974098199738e-10, 2.2116936060356807e-10, 2.2365774510202385e-10, 2.2614519978869652e-10, 2.2863201609713002e-10, 2.3111849933865614e-10, 2.3360494094681883e-10, 2.3609159072179864e-10, 2.3857874009713953e-10, 2.4106666662859766e-10, 2.4355562011635357e-10, 2.460458781161634e-10, 2.485376904282077e-10, 2.5103127909709144e-10, 2.5352694943414633e-10, 2.560248957284017e-10, 2.585253955356137e-10, 2.610286709003873e-10, 2.6353494386732734e-10, 2.6604446423661443e-10, 2.6855745405285347e-10, 2.71074163116225e-10, 2.7359478571575835e-10, 2.7611959940720965e-10, 2.786487707240326e-10, 2.8118254946640775e-10, 2.8372118543451563e-10, 2.8626484516180994e-10, 2.8881380620404684e-10, 2.9136826285025563e-10, 2.9392840938946563e-10, 2.96494523377433e-10, 2.990667713476114e-10, 3.016454031001814e-10, 3.042306406797479e-10, 3.068226783753403e-10, 3.09421765987139e-10, 3.12028125559749e-10, 3.1464195138219964e-10, 3.17263521010247e-10, 3.1989300097734485e-10, 3.225306410836737e-10, 3.2517669112941405e-10, 3.2783134540359526e-10, 3.3049485370639786e-10, 3.3316743808242677e-10, 3.3584937608743815e-10, 3.385408342548857e-10, 3.4124211789610115e-10, 3.4395342130011386e-10, 3.4667499426710435e-10, 3.494071143528288e-10, 3.521500313574677e-10, 3.54903967325626e-10, 3.576691720574843e-10, 3.6044595086437425e-10, 3.632345535464765e-10, 3.660352021483959e-10, 3.688482297370399e-10, 3.716738583570134e-10, 3.7451239331964814e-10, 3.773641121807003e-10, 3.802292924959261e-10, 3.831082673322328e-10, 3.8600128648980103e-10, 3.8890865527996255e-10, 3.9183070676962473e-10, 3.9476774627011935e-10, 3.977200790927782e-10, 4.006880383045086e-10, 4.0367195697221803e-10, 4.066721681628138e-10, 4.0968900494320337e-10, 4.127228558914453e-10, 4.15774054074447e-10, 4.188429603146915e-10, 4.2192993543466173e-10, 4.25035395767992e-10, 4.2815970213716525e-10, 4.313032986313914e-10, 4.3446651831757777e-10, 4.376498607960855e-10, 4.408536868893975e-10, 4.4407846844229937e-10, 4.4732464954400086e-10, 4.5059267428371186e-10, 4.538830145062178e-10, 4.5719619756745544e-10, 4.605326675566346e-10, 4.638929240741163e-10, 4.672775499869886e-10, 4.706869893844612e-10, 4.74121908400349e-10, 4.775827511238617e-10, 4.810701836888143e-10, 4.845848167178701e-10, 4.881271498113904e-10, 4.916979601254923e-10, 4.952977472605369e-10, 4.989272883726414e-10, 5.025872495956207e-10, 5.062783525744408e-10, 5.100013189540675e-10, 5.13756870379467e-10, 5.175458395179078e-10, 5.21369003525507e-10, 5.252272505806843e-10, 5.29121357839557e-10, 5.330522134805449e-10, 5.3702081670437e-10, 5.41028055689452e-10, 5.450749851476644e-10, 5.491624932574268e-10, 5.532918012640664e-10, 5.574638528571541e-10, 5.616799247931681e-10, 5.659410717839819e-10, 5.702485705860738e-10, 5.746036979559221e-10, 5.790077306500052e-10, 5.83462111958255e-10, 5.879682296594524e-10, 5.925275825546805e-10, 5.971417249561739e-10, 6.01812211176167e-10, 6.065408175714992e-10, 6.113292094767075e-10, 6.16179329782085e-10, 6.21092954844471e-10, 6.260721940876124e-10, 6.311191569352559e-10, 6.362359528111483e-10, 6.414249686947926e-10, 6.466885360545405e-10, 6.520292639144998e-10, 6.574497612987784e-10, 6.629528592760892e-10, 6.685415554485985e-10, 6.742187919073217e-10, 6.799880103436351e-10, 6.858525969377638e-10, 6.918161599145378e-10, 6.978825850545434e-10, 7.040559801829716e-10, 7.103406751696184e-10, 7.167412219288849e-10, 7.232625609532306e-10, 7.2990985477972e-10, 7.366885990123251e-10, 7.436047333442275e-10, 7.506645305355164e-10, 7.57874762946642e-10, 7.652426470272644e-10, 7.727759543385559e-10, 7.804830115532013e-10, 7.883728114777e-10, 7.964550685635174e-10, 8.047402189070851e-10, 8.132396422944055e-10, 8.219657177122031e-10, 8.309318788590758e-10, 8.401527806789488e-10, 8.496445214056791e-10, 8.594246980742071e-10, 8.695127395874636e-10, 8.799300732498239e-10, 8.90700457834015e-10, 9.01850316648023e-10, 9.134091816243028e-10, 9.254100818978372e-10, 9.37890431984556e-10, 9.508922538259412e-10, 9.64463842123564e-10, 9.78660263939446e-10, 9.935448019859905e-10, 1.0091912860943353e-09, 1.0256859805934937e-09, 1.0431305819125214e-09, 1.0616465484503124e-09, 1.0813799855569073e-09, 1.1025096391392708e-09, 1.1252564435793033e-09, 1.149898620766976e-09, 1.176793218427008e-09, 1.2064089727203964e-09, 1.2393785997488749e-09, 1.2765849488616254e-09, 1.319313880365769e-09, 1.36954347862428e-09, 1.4305497897382224e-09, 1.5083649884672923e-09, 1.6160853766322703e-09, 1.7921247819074893e-09]);
  33480. fe = $toNativeArray($kindFloat32, [1, 0.9381436705589294, 0.900469958782196, 0.8717043399810791, 0.847785472869873, 0.8269932866096497, 0.8084216713905334, 0.7915276288986206, 0.7759568691253662, 0.7614634037017822, 0.7478685975074768, 0.7350381016731262, 0.7228676676750183, 0.7112747430801392, 0.7001926302909851, 0.6895664930343628, 0.6793505549430847, 0.669506311416626, 0.6600008606910706, 0.6508058309555054, 0.6418967247009277, 0.633251965045929, 0.62485271692276, 0.6166821718215942, 0.608725368976593, 0.6009689569473267, 0.5934008955955505, 0.5860103368759155, 0.5787873864173889, 0.5717230439186096, 0.5648092031478882, 0.5580382943153381, 0.5514034032821655, 0.5448982119560242, 0.5385168790817261, 0.5322538614273071, 0.526104211807251, 0.5200631618499756, 0.5141264200210571, 0.5082897543907166, 0.5025495290756226, 0.4969019889831543, 0.4913438558578491, 0.4858720004558563, 0.48048335313796997, 0.4751752018928528, 0.4699448347091675, 0.4647897481918335, 0.4597076177597046, 0.4546961486339569, 0.4497532546520233, 0.44487687945365906, 0.4400651156902313, 0.4353161156177521, 0.4306281507015228, 0.42599955201148987, 0.42142874002456665, 0.4169141948223114, 0.4124544560909271, 0.40804818272590637, 0.4036940038204193, 0.39939069747924805, 0.3951369822025299, 0.39093172550201416, 0.38677382469177246, 0.38266217708587646, 0.378595769405365, 0.37457355856895447, 0.37059465050697327, 0.366658091545105, 0.362762987613678, 0.358908474445343, 0.35509374737739563, 0.35131800174713135, 0.3475804924964905, 0.34388044476509094, 0.34021714329719543, 0.33658990263938904, 0.3329980671405792, 0.3294409513473511, 0.32591795921325684, 0.32242849469184875, 0.3189719021320343, 0.3155476748943329, 0.31215524673461914, 0.3087940812110901, 0.30546361207962036, 0.30216339230537415, 0.29889291524887085, 0.29565170407295227, 0.2924392819404602, 0.2892552316188812, 0.28609907627105713, 0.2829704284667969, 0.27986884117126465, 0.2767939269542694, 0.2737452983856201, 0.2707225978374481, 0.26772540807724, 0.26475343108177185, 0.2618062496185303, 0.258883535861969, 0.2559850215911865, 0.25311028957366943, 0.25025907158851624, 0.24743106961250305, 0.2446259707212448, 0.24184346199035645, 0.23908329010009766, 0.23634515702724457, 0.2336287796497345, 0.23093391954898834, 0.22826029360294342, 0.22560766339302063, 0.22297576069831848, 0.22036437690258026, 0.21777324378490448, 0.21520215272903442, 0.212650865316391, 0.21011915802955627, 0.20760682225227356, 0.20511364936828613, 0.20263944566249847, 0.20018397271633148, 0.19774706661701202, 0.1953285187482834, 0.19292815029621124, 0.19054576754570007, 0.18818120658397675, 0.18583425879478455, 0.18350479006767273, 0.18119260668754578, 0.17889754474163055, 0.17661945521831512, 0.17435817420482635, 0.1721135377883911, 0.16988539695739746, 0.16767361760139465, 0.16547803580760956, 0.16329853236675262, 0.16113494336605072, 0.1589871346950531, 0.15685498714447021, 0.15473836660385132, 0.15263713896274567, 0.1505511850118637, 0.1484803706407547, 0.14642459154129028, 0.1443837285041809, 0.14235764741897583, 0.1403462439775467, 0.13834942877292633, 0.136367067694664, 0.13439907133579254, 0.1324453204870224, 0.1305057406425476, 0.12858019769191742, 0.12666863203048706, 0.12477091699838638, 0.12288697808980942, 0.1210167184472084, 0.11916005611419678, 0.11731690168380737, 0.11548716574907303, 0.11367076635360718, 0.11186762899160385, 0.11007767915725708, 0.1083008274435997, 0.10653700679540634, 0.10478614270687103, 0.1030481606721878, 0.10132300108671188, 0.0996105819940567, 0.09791085124015808, 0.09622374176979065, 0.09454918652772903, 0.09288713335990906, 0.09123751521110535, 0.08960027992725372, 0.08797537535429001, 0.08636274188756943, 0.0847623273730278, 0.08317409455776215, 0.08159798383712769, 0.08003395050764084, 0.07848194986581802, 0.07694194465875626, 0.07541389018297195, 0.07389774918556213, 0.07239348441362381, 0.070901058614254, 0.06942043453454971, 0.06795158982276917, 0.06649449467658997, 0.06504911929368973, 0.06361543387174606, 0.06219341605901718, 0.06078304722905159, 0.0593843050301075, 0.05799717456102371, 0.05662164092063904, 0.05525768920779228, 0.05390531197190285, 0.05256449431180954, 0.05123523622751236, 0.04991753399372101, 0.04861138388514519, 0.047316793352365494, 0.04603376239538193, 0.044762298464775085, 0.04350241273641586, 0.04225412383675575, 0.04101744294166565, 0.039792392402887344, 0.03857899457216263, 0.03737728297710419, 0.03618728369474411, 0.03500903770327568, 0.03384258225560188, 0.0326879620552063, 0.031545232981443405, 0.030414443463087082, 0.0292956605553627, 0.028188949450850487, 0.027094384655356407, 0.02601204626262188, 0.024942025542259216, 0.023884421214461327, 0.022839335724711418, 0.021806888282299042, 0.020787203684449196, 0.019780423492193222, 0.018786700442433357, 0.017806200310587883, 0.016839107498526573, 0.015885621309280396, 0.014945968054234982, 0.01402039173990488, 0.013109165243804455, 0.012212592177093029, 0.011331013403832912, 0.010464809834957123, 0.009614413604140282, 0.008780314587056637, 0.007963077165186405, 0.007163353264331818, 0.0063819061033427715, 0.005619642324745655, 0.004877655766904354, 0.004157294984906912, 0.003460264764726162, 0.0027887988835573196, 0.0021459676790982485, 0.001536299823783338, 0.0009672692976891994, 0.0004541343660093844]);
  33481. kn = $toNativeArray($kindUint32, [1991057938, 0, 1611602771, 1826899878, 1918584482, 1969227037, 2001281515, 2023368125, 2039498179, 2051788381, 2061460127, 2069267110, 2075699398, 2081089314, 2085670119, 2089610331, 2093034710, 2096037586, 2098691595, 2101053571, 2103168620, 2105072996, 2106796166, 2108362327, 2109791536, 2111100552, 2112303493, 2113412330, 2114437283, 2115387130, 2116269447, 2117090813, 2117856962, 2118572919, 2119243101, 2119871411, 2120461303, 2121015852, 2121537798, 2122029592, 2122493434, 2122931299, 2123344971, 2123736059, 2124106020, 2124456175, 2124787725, 2125101763, 2125399283, 2125681194, 2125948325, 2126201433, 2126441213, 2126668298, 2126883268, 2127086657, 2127278949, 2127460589, 2127631985, 2127793506, 2127945490, 2128088244, 2128222044, 2128347141, 2128463758, 2128572095, 2128672327, 2128764606, 2128849065, 2128925811, 2128994934, 2129056501, 2129110560, 2129157136, 2129196237, 2129227847, 2129251929, 2129268426, 2129277255, 2129278312, 2129271467, 2129256561, 2129233410, 2129201800, 2129161480, 2129112170, 2129053545, 2128985244, 2128906855, 2128817916, 2128717911, 2128606255, 2128482298, 2128345305, 2128194452, 2128028813, 2127847342, 2127648860, 2127432031, 2127195339, 2126937058, 2126655214, 2126347546, 2126011445, 2125643893, 2125241376, 2124799783, 2124314271, 2123779094, 2123187386, 2122530867, 2121799464, 2120980787, 2120059418, 2119015917, 2117825402, 2116455471, 2114863093, 2112989789, 2110753906, 2108037662, 2104664315, 2100355223, 2094642347, 2086670106, 2074676188, 2054300022, 2010539237]);
  33482. wn = $toNativeArray($kindFloat32, [1.7290404663583558e-09, 1.2680928529462676e-10, 1.689751810696194e-10, 1.9862687883343e-10, 2.223243117382978e-10, 2.4244936613904144e-10, 2.601613091623989e-10, 2.761198769629658e-10, 2.9073962681813725e-10, 3.042996965518796e-10, 3.169979556627567e-10, 3.289802041894774e-10, 3.4035738116777736e-10, 3.5121602848242617e-10, 3.61625090983253e-10, 3.7164057942185025e-10, 3.813085680537398e-10, 3.906675816178762e-10, 3.997501218933053e-10, 4.0858399996679395e-10, 4.1719308563337165e-10, 4.255982233303257e-10, 4.3381759295968436e-10, 4.4186720948857783e-10, 4.497613115272969e-10, 4.57512583373898e-10, 4.6513240481438345e-10, 4.726310454117311e-10, 4.800177477726209e-10, 4.873009773476156e-10, 4.944885056978876e-10, 5.015873272284921e-10, 5.086040477664255e-10, 5.155446070048697e-10, 5.224146670812502e-10, 5.292193350214802e-10, 5.359634958068682e-10, 5.426517013518151e-10, 5.492881705038144e-10, 5.558769555769061e-10, 5.624218868405251e-10, 5.689264614971989e-10, 5.75394121238304e-10, 5.818281967329142e-10, 5.882316855831959e-10, 5.946076964136182e-10, 6.009590047817426e-10, 6.072883862451306e-10, 6.135985053390414e-10, 6.19892026598734e-10, 6.261713370037114e-10, 6.324390455780815e-10, 6.386973727678935e-10, 6.449488165749528e-10, 6.511955974453087e-10, 6.574400468473129e-10, 6.636843297158634e-10, 6.699307220081607e-10, 6.761814441702541e-10, 6.824387166481927e-10, 6.887046488657234e-10, 6.949815167800466e-10, 7.012714853260604e-10, 7.075767749498141e-10, 7.13899661608508e-10, 7.202424212593428e-10, 7.266072743483676e-10, 7.329966078550854e-10, 7.394128087589991e-10, 7.458582640396116e-10, 7.523354716987285e-10, 7.588469852493063e-10, 7.653954137154528e-10, 7.719834771435785e-10, 7.786139510912449e-10, 7.852897221383159e-10, 7.920137878869582e-10, 7.987892014504894e-10, 8.056192379868321e-10, 8.125072836762115e-10, 8.194568912323064e-10, 8.264716688799467e-10, 8.3355555791087e-10, 8.407127216614185e-10, 8.479473234679347e-10, 8.552640262671218e-10, 8.626675485068347e-10, 8.701631637464402e-10, 8.777562010564566e-10, 8.854524335966119e-10, 8.932581896381464e-10, 9.011799639857543e-10, 9.092249730890956e-10, 9.174008219758889e-10, 9.25715837318819e-10, 9.341788453909317e-10, 9.42799727177146e-10, 9.515889187738935e-10, 9.605578554783278e-10, 9.697193048552322e-10, 9.790869226478094e-10, 9.886760299337993e-10, 9.985036131254788e-10, 1.008588212947359e-09, 1.0189509236369076e-09, 1.0296150598776421e-09, 1.040606933955246e-09, 1.0519566329136865e-09, 1.0636980185552147e-09, 1.0758701707302976e-09, 1.0885182755160372e-09, 1.101694735439196e-09, 1.115461056855338e-09, 1.1298901814171813e-09, 1.1450695946990663e-09, 1.1611052119775422e-09, 1.178127595480305e-09, 1.1962995039027646e-09, 1.2158286599728285e-09, 1.2369856250415978e-09, 1.2601323318151003e-09, 1.2857697129220469e-09, 1.3146201904845611e-09, 1.3477839955200466e-09, 1.3870635751089821e-09, 1.43574030442295e-09, 1.5008658760251592e-09, 1.6030947680434338e-09]);
  33483. fn = $toNativeArray($kindFloat32, [1, 0.963599681854248, 0.9362826943397522, 0.9130436182022095, 0.8922816514968872, 0.8732430338859558, 0.8555005788803101, 0.8387836217880249, 0.8229072093963623, 0.8077383041381836, 0.7931770086288452, 0.7791460752487183, 0.7655841708183289, 0.7524415850639343, 0.7396772503852844, 0.7272568941116333, 0.7151514887809753, 0.7033361196517944, 0.6917891502380371, 0.6804918646812439, 0.6694276928901672, 0.6585819721221924, 0.6479418277740479, 0.6374954581260681, 0.6272324919700623, 0.6171433925628662, 0.6072195172309875, 0.5974531769752502, 0.5878370404243469, 0.5783646702766418, 0.5690299868583679, 0.5598273873329163, 0.550751805305481, 0.5417983531951904, 0.5329626798629761, 0.5242405533790588, 0.5156282186508179, 0.5071220397949219, 0.49871864914894104, 0.4904148280620575, 0.48220765590667725, 0.47409430146217346, 0.466072142124176, 0.45813870429992676, 0.45029163360595703, 0.44252872467041016, 0.4348478317260742, 0.42724698781967163, 0.41972434520721436, 0.41227802634239197, 0.40490642189979553, 0.39760786294937134, 0.3903807997703552, 0.3832238018512726, 0.3761354684829712, 0.3691144585609436, 0.36215949058532715, 0.3552693724632263, 0.3484429717063904, 0.3416791558265686, 0.33497685194015503, 0.32833510637283325, 0.3217529058456421, 0.3152293860912323, 0.30876362323760986, 0.3023548424243927, 0.2960021495819092, 0.2897048592567444, 0.28346219658851624, 0.2772735059261322, 0.271138072013855, 0.2650552988052368, 0.25902456045150757, 0.25304529070854187, 0.24711695313453674, 0.24123899638652802, 0.23541094362735748, 0.22963231801986694, 0.22390270233154297, 0.21822164952754974, 0.21258877217769623, 0.20700371265411377, 0.20146611332893372, 0.1959756463766098, 0.19053204357624054, 0.18513499200344086, 0.17978426814079285, 0.1744796335697174, 0.16922089457511902, 0.16400785744190216, 0.1588403731584549, 0.15371830761432648, 0.14864157140254974, 0.14361007511615753, 0.13862377405166626, 0.13368265330791473, 0.12878671288490295, 0.12393598258495331, 0.11913054436445236, 0.11437050998210907, 0.10965602099895477, 0.1049872562289238, 0.10036443918943405, 0.09578784555196762, 0.09125780314207077, 0.08677466958761215, 0.08233889937400818, 0.07795098423957825, 0.07361150532960892, 0.06932111829519272, 0.06508058309555054, 0.06089077144861221, 0.05675266310572624, 0.05266740173101425, 0.048636294901371, 0.044660862535238266, 0.040742866694927216, 0.03688438981771469, 0.03308788686990738, 0.029356317594647408, 0.025693291798233986, 0.02210330404341221, 0.018592102453112602, 0.015167297795414925, 0.011839478276669979, 0.0086244847625494, 0.005548994988203049, 0.0026696291752159595]);
  33484. rngCooked = $toNativeArray($kindInt64, [new $Int64(-973649357, 3952672746), new $Int64(-1065661887, 3130416987), new $Int64(324977939, 3414273807), new $Int64(1241840476, 2806224363), new $Int64(-1477934308, 1997590414), new $Int64(2103305448, 2402795971), new $Int64(1663160183, 1140819369), new $Int64(1120601685, 1788868961), new $Int64(1848035537, 1089001426), new $Int64(1235702047, 873593504), new $Int64(1911387977, 581324885), new $Int64(-1654874170, 1609182556), new $Int64(1069394745, 1241596776), new $Int64(1895445337, 1771189259), new $Int64(-1374618802, 3467012610), new $Int64(-140526423, 2344407434), new $Int64(-1745367887, 782467244), new $Int64(26335124, 3404933915), new $Int64(1063924276, 618867887), new $Int64(-968700782, 520164395), new $Int64(-1591572833, 1341358184), new $Int64(-1515085039, 665794848), new $Int64(1527227641, 3183648150), new $Int64(1781176124, 696329606), new $Int64(1789146075, 4151988961), new $Int64(-2087444114, 998951326), new $Int64(-612324923, 1364957564), new $Int64(63173359, 4090230633), new $Int64(-1498029007, 4009697548), new $Int64(248009524, 2569622517), new $Int64(778703922, 3742421481), new $Int64(-1109106023, 1506914633), new $Int64(1738099768, 1983412561), new $Int64(236311649, 1436266083), new $Int64(-1111517500, 3922894967), new $Int64(-1336974714, 1792680179), new $Int64(563141142, 1188796351), new $Int64(1349617468, 405968250), new $Int64(1044074554, 433754187), new $Int64(870549669, 4073162024), new $Int64(-1094251604, 433121399), new $Int64(2451824, 4162580594), new $Int64(-137262572, 4132415622), new $Int64(-1536231048, 3033822028), new $Int64(2016407895, 824682382), new $Int64(2366218, 3583765414), new $Int64(-624604839, 535386927), new $Int64(1637219058, 2286693689), new $Int64(1453075389, 2968466525), new $Int64(193683513, 1351410206), new $Int64(-283806096, 1412813499), new $Int64(492736522, 4126267639), new $Int64(512765208, 2105529399), new $Int64(2132966268, 2413882233), new $Int64(947457634, 32226200), new $Int64(1149341356, 2032329073), new $Int64(106485445, 1356518208), new $Int64(-2067810156, 3430061722), new $Int64(-1484435135, 3820169661), new $Int64(-1665985194, 2981816134), new $Int64(1017155588, 4184371017), new $Int64(206574701, 2119206761), new $Int64(-852109057, 2472200560), new $Int64(-560457548, 2853524696), new $Int64(1307803389, 1681119904), new $Int64(-174986835, 95608918), new $Int64(392686347, 3690479145), new $Int64(-1205570926, 1397922290), new $Int64(-1159314025, 1516129515), new $Int64(-320178155, 1547420459), new $Int64(1311333971, 1470949486), new $Int64(-1953469798, 1336785672), new $Int64(-45086614, 4131677129), new $Int64(-1392278100, 4246329084), new $Int64(-1142500187, 3788585631), new $Int64(-66478285, 3080389532), new $Int64(-646438364, 2215402037), new $Int64(391002300, 1171593935), new $Int64(1408774047, 1423855166), new $Int64(-519177718, 2276716302), new $Int64(-368453140, 2068027241), new $Int64(1369359303, 3427553297), new $Int64(189241615, 3289637845), new $Int64(1057480830, 3486407650), new $Int64(-1512910664, 3071877822), new $Int64(1159653919, 3363620705), new $Int64(-934256930, 4159821533), new $Int64(-76621938, 1894661), new $Int64(-674493898, 1156868282), new $Int64(348271067, 776219088), new $Int64(-501428838, 2425634259), new $Int64(1716021749, 680510161), new $Int64(-574263456, 1310101429), new $Int64(1095885995, 2964454134), new $Int64(-325695512, 3467098407), new $Int64(1990672920, 2109628894), new $Int64(-2139648704, 1232604732), new $Int64(-1838070714, 3261916179), new $Int64(1699175360, 434597899), new $Int64(235436061, 1624796439), new $Int64(-1626402839, 3589632480), new $Int64(1198416575, 864579159), new $Int64(-1938748161, 1380889830), new $Int64(619206309, 2654509477), new $Int64(1419738251, 1468209306), new $Int64(-1744284772, 100794388), new $Int64(-1191421458, 2991674471), new $Int64(-208666741, 2224662036), new $Int64(-173659161, 977097250), new $Int64(1351320195, 726419512), new $Int64(-183459897, 1747974366), new $Int64(-753095183, 1556430604), new $Int64(-1049492215, 1080776742), new $Int64(-385846958, 280794874), new $Int64(117767733, 919835643), new $Int64(-967009426, 3434019658), new $Int64(-1951414480, 2461941785), new $Int64(133215641, 3615001066), new $Int64(417204809, 3103414427), new $Int64(790056561, 3380809712), new $Int64(-1267681408, 2724693469), new $Int64(547796833, 598827710), new $Int64(-1846559452, 3452273442), new $Int64(-75778224, 649274915), new $Int64(-801301329, 2585724112), new $Int64(-1510934263, 3165579553), new $Int64(1185578221, 2635894283), new $Int64(-52910178, 2053289721), new $Int64(985976581, 3169337108), new $Int64(1170569632, 144717764), new $Int64(1079216270, 1383666384), new $Int64(-124804942, 681540375), new $Int64(1375448925, 537050586), new $Int64(-1964768344, 315246468), new $Int64(226402871, 849323088), new $Int64(-885062465, 45543944), new $Int64(-946445250, 2319052083), new $Int64(-40708194, 3613090841), new $Int64(560472520, 2992171180), new $Int64(-381863169, 2068244785), new $Int64(917538188, 4239862634), new $Int64(-1369555809, 3892253031), new $Int64(720683925, 958186149), new $Int64(-423297785, 1877702262), new $Int64(1357886971, 837674867), new $Int64(1837048883, 1507589294), new $Int64(1905518400, 873336795), new $Int64(-1879761037, 2764496274), new $Int64(-1806480530, 4196182374), new $Int64(-1066765755, 550964545), new $Int64(818747069, 420611474), new $Int64(-1924830376, 204265180), new $Int64(1549974541, 1787046383), new $Int64(1215581865, 3102292318), new $Int64(418321538, 1552199393), new $Int64(1243493047, 980542004), new $Int64(267284263, 3293718720), new $Int64(1179528763, 3771917473), new $Int64(599484404, 2195808264), new $Int64(252818753, 3894702887), new $Int64(-1367475956, 2099949527), new $Int64(1424094358, 338442522), new $Int64(490737398, 637158004), new $Int64(-1727621530, 281976339), new $Int64(574970164, 3619802330), new $Int64(-431930823, 3084554784), new $Int64(-1264611183, 4129772886), new $Int64(-2104399043, 1680378557), new $Int64(-1621962591, 3339087776), new $Int64(1680500332, 4220317857), new $Int64(-1935828963, 2959322499), new $Int64(1675600481, 1488354890), new $Int64(-834863562, 3958162143), new $Int64(-1226511573, 2773705983), new $Int64(1876039582, 225908689), new $Int64(-1183735113, 908216283), new $Int64(-605696219, 3574646075), new $Int64(-1827723091, 1936937569), new $Int64(1519770881, 75492235), new $Int64(816689472, 1935193178), new $Int64(2142521206, 2018250883), new $Int64(455141620, 3943126022), new $Int64(-601399488, 3066544345), new $Int64(1932392669, 2793082663), new $Int64(-1239009361, 3297036421), new $Int64(1640597065, 2206987825), new $Int64(-553246738, 807894872), new $Int64(-1781325307, 766252117), new $Int64(2060649606, 3833114345), new $Int64(845619743, 1255067973), new $Int64(1201145605, 741697208), new $Int64(-1476242608, 2810093753), new $Int64(1109032642, 4229340371), new $Int64(1462188720, 1361684224), new $Int64(-1159399429, 1906263026), new $Int64(475781207, 3904421704), new $Int64(-623537128, 1769075545), new $Int64(1062308525, 2621599764), new $Int64(1279509432, 3431891480), new $Int64(-1742751146, 1871896503), new $Int64(128756421, 1412808876), new $Int64(1605404688, 952876175), new $Int64(-230443691, 1824438899), new $Int64(1662295856, 1005035476), new $Int64(-156574141, 527508597), new $Int64(1288873303, 3066806859), new $Int64(565995893, 3244940914), new $Int64(-889746188, 209092916), new $Int64(-247669406, 1242699167), new $Int64(-713830396, 456723774), new $Int64(1776978905, 1001252870), new $Int64(1468772157, 2026725874), new $Int64(857254202, 2137562569), new $Int64(765939740, 3183366709), new $Int64(1533887628, 2612072960), new $Int64(56977098, 1727148468), new $Int64(-1197583895, 3803658212), new $Int64(1883670356, 479946959), new $Int64(685713571, 1562982345), new $Int64(-1946242443, 1766109365), new $Int64(700596547, 3257093788), new $Int64(-184714929, 2365720207), new $Int64(93384808, 3742754173), new $Int64(-458385235, 2878193673), new $Int64(1096135042, 2174002182), new $Int64(-834260953, 3573511231), new $Int64(-754572527, 1760299077), new $Int64(-1375627191, 2260779833), new $Int64(-866019274, 1452805722), new $Int64(-1229671918, 2940011802), new $Int64(1890251082, 1886183802), new $Int64(893897673, 2514369088), new $Int64(1644345561, 3924317791), new $Int64(-1974867432, 500935732), new $Int64(1403501753, 676580929), new $Int64(-1565912283, 1184984890), new $Int64(-691968413, 1271474274), new $Int64(-1828754738, 3163791473), new $Int64(2051027584, 2842487377), new $Int64(1511537551, 2170968612), new $Int64(573262976, 3535856740), new $Int64(-2053227187, 1488599718), new $Int64(-1180531831, 3408913763), new $Int64(-2086531912, 2501050084), new $Int64(-875130448, 1639124157), new $Int64(-2009482504, 4088176393), new $Int64(1574896563, 3989947576), new $Int64(-165243708, 3414355209), new $Int64(-792329287, 2275136352), new $Int64(-2057774345, 2151835223), new $Int64(-931144933, 1654534827), new $Int64(-679921451, 377892833), new $Int64(-482716010, 660204544), new $Int64(85706799, 390828249), new $Int64(-1422172693, 3402783878), new $Int64(-1468634160, 3717936603), new $Int64(1113532086, 2211058823), new $Int64(1564224320, 2692150867), new $Int64(1952770442, 1928910388), new $Int64(788716862, 3931011137), new $Int64(1083670504, 1112701047), new $Int64(-68150572, 2452299106), new $Int64(-896164822, 2337204777), new $Int64(1774877857, 273889282), new $Int64(1798719843, 1462008793), new $Int64(2138834788, 1554494002), new $Int64(-1194967131, 182675323), new $Int64(-1598554764, 1882802136), new $Int64(589279648, 3700220025), new $Int64(381039426, 3083431543), new $Int64(-851859191, 3622207527), new $Int64(338126939, 432729309), new $Int64(-1667470126, 2391914317), new $Int64(-1849558151, 235747924), new $Int64(2120733629, 3088823825), new $Int64(-745079795, 2314658321), new $Int64(1165929723, 2957634338), new $Int64(501323675, 4117056981), new $Int64(1564699815, 1482500298), new $Int64(-740826490, 840489337), new $Int64(799522364, 3483178565), new $Int64(532129761, 2074004656), new $Int64(724246478, 3643392642), new $Int64(-665153481, 1583624461), new $Int64(-885822954, 287473085), new $Int64(1667835381, 3136843981), new $Int64(1138806821, 1266970974), new $Int64(135185781, 1998688839), new $Int64(392094735, 1492900209), new $Int64(1031326774, 1538112737), new $Int64(-2070568842, 2207265429), new $Int64(-1886797613, 963263315), new $Int64(1671145500, 2295892134), new $Int64(1068469660, 2002560897), new $Int64(-356250305, 1369254035), new $Int64(33436120, 3353312708), new $Int64(57507843, 947771099), new $Int64(-1945755145, 1747061399), new $Int64(1507240140, 2047354631), new $Int64(720000810, 4165367136), new $Int64(479265078, 3388864963), new $Int64(-952181250, 286492130), new $Int64(2045622690, 2795735007), new $Int64(-715730566, 3703961339), new $Int64(-148436487, 1797825479), new $Int64(1429039600, 1116589674), new $Int64(-1665420098, 2593309206), new $Int64(1329049334, 3404995677), new $Int64(-750579440, 3453462936), new $Int64(1014767077, 3016498634), new $Int64(75698599, 1650371545), new $Int64(1592007860, 212344364), new $Int64(1127766888, 3843932156), new $Int64(-748019856, 3573129983), new $Int64(-890581831, 665897820), new $Int64(1071492673, 1675628772), new $Int64(243225682, 2831752928), new $Int64(2120298836, 1486294219), new $Int64(-1954407413, 268782709), new $Int64(-1002123503, 4186179080), new $Int64(624342951, 1613720397), new $Int64(857179861, 2703686015), new $Int64(-911618704, 2205342611), new $Int64(-672703993, 1411666394), new $Int64(-1528454899, 677744900), new $Int64(-1876628533, 4172867247), new $Int64(135494707, 2163418403), new $Int64(849547544, 2841526879), new $Int64(-1117516959, 1082141470), new $Int64(-1770111792, 4046134367), new $Int64(51415528, 2142943655), new $Int64(-249824333, 3124627521), new $Int64(998228909, 219992939), new $Int64(-1078790951, 1756846531), new $Int64(1283749206, 1225118210), new $Int64(-525858006, 1647770243), new $Int64(-2035959705, 444807907), new $Int64(2036369448, 3952076173), new $Int64(53201823, 1461839639), new $Int64(315761893, 3699250910), new $Int64(702974850, 1373688981), new $Int64(734022261, 147523747), new $Int64(-2047330906, 1211276581), new $Int64(1294440951, 2548832680), new $Int64(1144696256, 1995631888), new $Int64(-1992983070, 2011457303), new $Int64(-1351022674, 3057425772), new $Int64(667839456, 81484597), new $Int64(-1681980888, 3646681560), new $Int64(-1372462725, 635548515), new $Int64(602489502, 2508044581), new $Int64(-1794220117, 1014917157), new $Int64(719992433, 3214891315), new $Int64(-1294799037, 959582252), new $Int64(226415134, 3347040449), new $Int64(-362868096, 4102971975), new $Int64(397887437, 4078022210), new $Int64(-536803826, 2851767182), new $Int64(-1398321012, 1540160644), new $Int64(-1549098876, 1057290595), new $Int64(-112592988, 3907769253), new $Int64(579300318, 4248952684), new $Int64(-1054576049, 132554364), new $Int64(-1085862414, 1029351092), new $Int64(697840928, 2583007416), new $Int64(298619124, 1486185789), new $Int64(55905697, 2871589073), new $Int64(2017643612, 723203291), new $Int64(146250550, 2494333952), new $Int64(-1082993397, 2230939180), new $Int64(-1804568072, 3943232912), new $Int64(1768732449, 2181367922), new $Int64(-729261111, 2889274791), new $Int64(1824032949, 2046728161), new $Int64(1653899792, 1376052477), new $Int64(1022327048, 381236993), new $Int64(-1113097690, 3188942166), new $Int64(-74480109, 350070824), new $Int64(144881592, 61758415), new $Int64(-741824226, 3492950336), new $Int64(-2030042720, 3093818430), new $Int64(-453590535, 2962480613), new $Int64(-1912050708, 3154871160), new $Int64(-1636478569, 3228564679), new $Int64(610731502, 888276216), new $Int64(-946702974, 3574998604), new $Int64(-1277068380, 1967526716), new $Int64(-1556147941, 1554691298), new $Int64(-1573024234, 339944798), new $Int64(1223764147, 1154515356), new $Int64(1825645307, 967516237), new $Int64(1546195135, 596588202), new $Int64(-1867600880, 3764362170), new $Int64(-1655392592, 266611402), new $Int64(-393255880, 2047856075), new $Int64(-1000726433, 21444105), new $Int64(-949424754, 3065563181), new $Int64(-232418803, 1140663212), new $Int64(633187674, 2323741028), new $Int64(2126290159, 3103873707), new $Int64(1008658319, 2766828349), new $Int64(-485587503, 1970872996), new $Int64(1628585413, 3766615585), new $Int64(-595148528, 2036813414), new $Int64(-1994877121, 3105536507), new $Int64(13954645, 3396176938), new $Int64(-721402003, 1377154485), new $Int64(-61839181, 3807014186), new $Int64(543009040, 3710110597), new $Int64(-1751425519, 916420443), new $Int64(734556788, 2103831255), new $Int64(-1766161494, 717331943), new $Int64(-1574598896, 3550505941), new $Int64(45939673, 378749927), new $Int64(-1997615719, 611017331), new $Int64(592130075, 758907650), new $Int64(1012992349, 154266815), new $Int64(-1040454942, 1407468696), new $Int64(-1678191250, 970098704), new $Int64(-285057486, 1971660656), new $Int64(998365243, 3332747885), new $Int64(1947089649, 1935189867), new $Int64(1510248801, 203520055), new $Int64(-1305165746, 3916463034), new $Int64(-388598655, 3474113316), new $Int64(1036101639, 316544223), new $Int64(-1773744891, 1650844677), new $Int64(-907191419, 4267565603), new $Int64(-1070275024, 2501167616), new $Int64(-1520651863, 3929401789), new $Int64(-2091360852, 337170252), new $Int64(-960502090, 2061966842), new $Int64(-304190848, 2508461464), new $Int64(-1941471116, 2791377107), new $Int64(1240791848, 1227227588), new $Int64(1813978778, 1709681848), new $Int64(1153692192, 3768820575), new $Int64(-1002297449, 2887126398), new $Int64(-1447111334, 296561685), new $Int64(700300844, 3729960077), new $Int64(-1572311344, 372833036), new $Int64(2078875613, 2409779288), new $Int64(1829161290, 555274064), new $Int64(-1105595719, 4239804901), new $Int64(1839403216, 3723486978), new $Int64(-1649093095, 2145871984), new $Int64(-1582765715, 3565480803), new $Int64(-1568653827, 2197313814), new $Int64(974785092, 3613674566), new $Int64(438638731, 3042093666), new $Int64(-96556264, 3324034321), new $Int64(869420878, 3708873369), new $Int64(946682149, 1698090092), new $Int64(1618900382, 4213940712), new $Int64(-1843479747, 2087477361), new $Int64(-1766167800, 2407950639), new $Int64(-1296225558, 3942568569), new $Int64(-1223900450, 4088074412), new $Int64(723260036, 2964773675), new $Int64(-673921829, 1539178386), new $Int64(1062961552, 2694849566), new $Int64(460977733, 2120273838), new $Int64(-1604570740, 2484608657), new $Int64(880846449, 2956190677), new $Int64(1970902366, 4223313749), new $Int64(662161910, 3502682327), new $Int64(705634754, 4133891139), new $Int64(-1031359300, 1166449596), new $Int64(1038247601, 3362705993), new $Int64(93734798, 3892921029), new $Int64(1876124043, 786869787), new $Int64(1057490746, 1046342263), new $Int64(242763728, 493777327), new $Int64(-853573201, 3304827646), new $Int64(616460742, 125356352), new $Int64(499300063, 74094113), new $Int64(-795586925, 2500816079), new $Int64(-490248444, 514015239), new $Int64(1377565129, 543520454), new $Int64(-2039776725, 3614531153), new $Int64(2056746300, 2356753985), new $Int64(1390062617, 2018141668), new $Int64(131272971, 2087974891), new $Int64(-1502927041, 3166972343), new $Int64(372256200, 1517638666), new $Int64(-935275664, 173466846), new $Int64(-695774461, 4241513471), new $Int64(-1413550842, 2783126920), new $Int64(1972004134, 4167264826), new $Int64(29260506, 3907395640), new $Int64(-910901561, 1539634186), new $Int64(-595957298, 178241987), new $Int64(-113277636, 182168164), new $Int64(-1102530459, 2386154934), new $Int64(1379126408, 4077374341), new $Int64(-2114679722, 1732699140), new $Int64(-421057745, 1041306002), new $Int64(1860414813, 2068001749), new $Int64(1005320202, 3208962910), new $Int64(844054010, 697710380), new $Int64(-1509359403, 2228431183), new $Int64(-810313977, 3554678728), new $Int64(-750989047, 173470263), new $Int64(-85886265, 3848297795), new $Int64(-926936977, 246236185), new $Int64(-1984190461, 2066374846), new $Int64(1771673660, 312890749), new $Int64(703378057, 3573310289), new $Int64(-598851901, 143166754), new $Int64(613554316, 2081511079), new $Int64(1197802104, 486038032), new $Int64(-1906483789, 2982218564), new $Int64(364901986, 1000939191), new $Int64(1902782651, 2750454885), new $Int64(-671844857, 3375313137), new $Int64(-1643868040, 881302957), new $Int64(-1508784745, 2514186393), new $Int64(-1703622845, 360024739), new $Int64(1399671872, 292500025), new $Int64(1381210821, 2276300752), new $Int64(521803381, 4069087683), new $Int64(-1938982667, 1637778212), new $Int64(720490469, 1676670893), new $Int64(1067262482, 3855174429), new $Int64(2114075974, 2067248671), new $Int64(-89426259, 2884561259), new $Int64(-805741095, 2456511185), new $Int64(983726246, 561175414), new $Int64(-1719489563, 432588903), new $Int64(885133709, 4059399550), new $Int64(-93096266, 1075014784), new $Int64(-1733832628, 2728058415), new $Int64(1839142064, 1299703678), new $Int64(1262333188, 2347583393), new $Int64(1285481956, 2468164145), new $Int64(-1158354011, 1140014346), new $Int64(2033889184, 1936972070), new $Int64(-1737578993, 3870530098), new $Int64(-484494257, 1717789158), new $Int64(-232997156, 1153452491), new $Int64(-990424416, 3948827651), new $Int64(-1357145630, 2101413152), new $Int64(1495744672, 3854091229), new $Int64(83644069, 4215565463), new $Int64(-1385277313, 1202710438), new $Int64(-564909037, 2072216740), new $Int64(705690639, 2066751068), new $Int64(-2113583312, 173902580), new $Int64(-741983806, 142459001), new $Int64(172391592, 1889151926), new $Int64(-498943125, 3034199774), new $Int64(1618587731, 516490102), new $Int64(93114264, 3692577783), new $Int64(-2078821353, 2953948865), new $Int64(-320938673, 4041040923), new $Int64(-1942517976, 592046130), new $Int64(-705643640, 384297211), new $Int64(-2051649464, 265863924), new $Int64(2101717619, 1333136237), new $Int64(1499611781, 1406273556), new $Int64(1074670496, 426305476), new $Int64(125704633, 2750898176), new $Int64(488068495, 1633944332), new $Int64(2037723464, 3236349343), new $Int64(-1703423246, 4013676611), new $Int64(1718532237, 2265047407), new $Int64(1433593806, 875071080), new $Int64(-343047503, 1418843655), new $Int64(2009228711, 451657300), new $Int64(1229446621, 1866374663), new $Int64(1653472867, 1551455622), new $Int64(577191481, 3560962459), new $Int64(1669204077, 3347903778), new $Int64(-298327194, 2675874918), new $Int64(-1831355577, 2762991672), new $Int64(530492383, 3689068477), new $Int64(844089962, 4071997905), new $Int64(1508155730, 1381702441), new $Int64(2089931018, 2373284878), new $Int64(-864267462, 2143983064), new $Int64(308739063, 1938207195), new $Int64(1754949306, 1188152253), new $Int64(1272345009, 615870490), new $Int64(742653194, 2662252621), new $Int64(1477718295, 3839976789), new $Int64(-2091334213, 306752547), new $Int64(-1426688067, 2162363077), new $Int64(-57052633, 2767224719), new $Int64(-1471624099, 2628837712), new $Int64(1678405918, 2967771969), new $Int64(1694285728, 499792248), new $Int64(-1744131281, 4285253508), new $Int64(962357072, 2856511070), new $Int64(679471692, 2526409716), new $Int64(-1793706473, 1240875658), new $Int64(-914893422, 2577342868), new $Int64(-1001298215, 4136853496), new $Int64(-1477114974, 2403540137), new $Int64(1372824515, 1371410668), new $Int64(-176562048, 371758825), new $Int64(-441063112, 1528834084), new $Int64(-71688630, 1504757260), new $Int64(-1461820072, 699052551), new $Int64(-505543539, 3347789870), new $Int64(1951619734, 3430604759), new $Int64(2119672219, 1935601723), new $Int64(966789690, 834676166)]);
  33485. globalRand = New(new lockedSource.ptr(new nosync.Mutex.ptr(false), $assertType(NewSource(new $Int64(0, 1)), Source64)));
  33486. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  33487. };
  33488. $pkg.$init = $init;
  33489. return $pkg;
  33490. })();
  33491. $packages["net"] = (function() {
  33492. var $pkg = {}, $init, context, errors, js, bytealg, nettrace, poll, singleflight, dnsmessage, io, rand, os, runtime, sort, sync, atomic, syscall, time, policyTableEntry, policyTable, byMaskLength, Interface, Flags, ipv6ZoneCache, IP, IPMask, IPNet, IPAddr, HardwareAddr, Addr, OpError, timeout, temporary, ParseError, AddrError, file, sockaddr, ptrType, sliceType, sliceType$1, ptrType$5, ptrType$9, ptrType$13, ptrType$18, ptrType$22, ptrType$23, sliceType$7, sliceType$8, ptrType$24, ptrType$25, arrayType$2, ptrType$31, ptrType$32, arrayType$6, ptrType$48, mapType$1, mapType$2, ptrType$49, ptrType$52, rfc6724policyTable, errLameReferral, errCannotUnmarshalDNSMessage, errCannotMarshalDNSMessage, errServerMisbehaving, errInvalidDNSResponse, errNoAnswerFromDNSServer, errServerTemporarlyMisbehaving, testHookLookupIP, errInvalidInterface, errInvalidInterfaceIndex, errInvalidInterfaceName, errNoSuchInterface, errNoSuchMulticastInterface, flagNames, zoneCache, v4InV6Prefix, classAMask, classBMask, classCMask, netGo, errNoSuitableAddress, errMissingAddress, errCanceled, aLongTimeAgo, errNoSuchHost, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, init, mustCIDR, init$1, isConnError, interfaceByIndex, interfaceTable, newLink, linkFlags, interfaceAddrTable, addrTable, newAddr, interfaceMulticastAddrTable, parseProcNetIGMP, parseProcNetIGMP6, IPv4, IPv4Mask, CIDRMask, isZeros, allFF, ubtoa, hexString, ipEmptyString, simpleMaskLength, networkNumberAndMask, parseIPv4, parseIPv6, ParseIP, ParseCIDR, open, countAnyByte, splitAtBytes, dtoi, xtoi, xtoi2, uitoa, appendHex;
  33493. context = $packages["context"];
  33494. errors = $packages["errors"];
  33495. js = $packages["github.com/gopherjs/gopherjs/js"];
  33496. bytealg = $packages["internal/bytealg"];
  33497. nettrace = $packages["internal/nettrace"];
  33498. poll = $packages["internal/poll"];
  33499. singleflight = $packages["internal/singleflight"];
  33500. dnsmessage = $packages["internal/x/net/dns/dnsmessage"];
  33501. io = $packages["io"];
  33502. rand = $packages["math/rand"];
  33503. os = $packages["os"];
  33504. runtime = $packages["runtime"];
  33505. sort = $packages["sort"];
  33506. sync = $packages["sync"];
  33507. atomic = $packages["sync/atomic"];
  33508. syscall = $packages["syscall"];
  33509. time = $packages["time"];
  33510. policyTableEntry = $pkg.policyTableEntry = $newType(0, $kindStruct, "net.policyTableEntry", true, "net", false, function(Prefix_, Precedence_, Label_) {
  33511. this.$val = this;
  33512. if (arguments.length === 0) {
  33513. this.Prefix = ptrType$5.nil;
  33514. this.Precedence = 0;
  33515. this.Label = 0;
  33516. return;
  33517. }
  33518. this.Prefix = Prefix_;
  33519. this.Precedence = Precedence_;
  33520. this.Label = Label_;
  33521. });
  33522. policyTable = $pkg.policyTable = $newType(12, $kindSlice, "net.policyTable", true, "net", false, null);
  33523. byMaskLength = $pkg.byMaskLength = $newType(12, $kindSlice, "net.byMaskLength", true, "net", false, null);
  33524. Interface = $pkg.Interface = $newType(0, $kindStruct, "net.Interface", true, "net", true, function(Index_, MTU_, Name_, HardwareAddr_, Flags_) {
  33525. this.$val = this;
  33526. if (arguments.length === 0) {
  33527. this.Index = 0;
  33528. this.MTU = 0;
  33529. this.Name = "";
  33530. this.HardwareAddr = HardwareAddr.nil;
  33531. this.Flags = 0;
  33532. return;
  33533. }
  33534. this.Index = Index_;
  33535. this.MTU = MTU_;
  33536. this.Name = Name_;
  33537. this.HardwareAddr = HardwareAddr_;
  33538. this.Flags = Flags_;
  33539. });
  33540. Flags = $pkg.Flags = $newType(4, $kindUint, "net.Flags", true, "net", true, null);
  33541. ipv6ZoneCache = $pkg.ipv6ZoneCache = $newType(0, $kindStruct, "net.ipv6ZoneCache", true, "net", false, function(RWMutex_, lastFetched_, toIndex_, toName_) {
  33542. this.$val = this;
  33543. if (arguments.length === 0) {
  33544. this.RWMutex = new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, 0, 0);
  33545. this.lastFetched = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil);
  33546. this.toIndex = false;
  33547. this.toName = false;
  33548. return;
  33549. }
  33550. this.RWMutex = RWMutex_;
  33551. this.lastFetched = lastFetched_;
  33552. this.toIndex = toIndex_;
  33553. this.toName = toName_;
  33554. });
  33555. IP = $pkg.IP = $newType(12, $kindSlice, "net.IP", true, "net", true, null);
  33556. IPMask = $pkg.IPMask = $newType(12, $kindSlice, "net.IPMask", true, "net", true, null);
  33557. IPNet = $pkg.IPNet = $newType(0, $kindStruct, "net.IPNet", true, "net", true, function(IP_, Mask_) {
  33558. this.$val = this;
  33559. if (arguments.length === 0) {
  33560. this.IP = IP.nil;
  33561. this.Mask = IPMask.nil;
  33562. return;
  33563. }
  33564. this.IP = IP_;
  33565. this.Mask = Mask_;
  33566. });
  33567. IPAddr = $pkg.IPAddr = $newType(0, $kindStruct, "net.IPAddr", true, "net", true, function(IP_, Zone_) {
  33568. this.$val = this;
  33569. if (arguments.length === 0) {
  33570. this.IP = IP.nil;
  33571. this.Zone = "";
  33572. return;
  33573. }
  33574. this.IP = IP_;
  33575. this.Zone = Zone_;
  33576. });
  33577. HardwareAddr = $pkg.HardwareAddr = $newType(12, $kindSlice, "net.HardwareAddr", true, "net", true, null);
  33578. Addr = $pkg.Addr = $newType(8, $kindInterface, "net.Addr", true, "net", true, null);
  33579. OpError = $pkg.OpError = $newType(0, $kindStruct, "net.OpError", true, "net", true, function(Op_, Net_, Source_, Addr_, Err_) {
  33580. this.$val = this;
  33581. if (arguments.length === 0) {
  33582. this.Op = "";
  33583. this.Net = "";
  33584. this.Source = $ifaceNil;
  33585. this.Addr = $ifaceNil;
  33586. this.Err = $ifaceNil;
  33587. return;
  33588. }
  33589. this.Op = Op_;
  33590. this.Net = Net_;
  33591. this.Source = Source_;
  33592. this.Addr = Addr_;
  33593. this.Err = Err_;
  33594. });
  33595. timeout = $pkg.timeout = $newType(8, $kindInterface, "net.timeout", true, "net", false, null);
  33596. temporary = $pkg.temporary = $newType(8, $kindInterface, "net.temporary", true, "net", false, null);
  33597. ParseError = $pkg.ParseError = $newType(0, $kindStruct, "net.ParseError", true, "net", true, function(Type_, Text_) {
  33598. this.$val = this;
  33599. if (arguments.length === 0) {
  33600. this.Type = "";
  33601. this.Text = "";
  33602. return;
  33603. }
  33604. this.Type = Type_;
  33605. this.Text = Text_;
  33606. });
  33607. AddrError = $pkg.AddrError = $newType(0, $kindStruct, "net.AddrError", true, "net", true, function(Err_, Addr_) {
  33608. this.$val = this;
  33609. if (arguments.length === 0) {
  33610. this.Err = "";
  33611. this.Addr = "";
  33612. return;
  33613. }
  33614. this.Err = Err_;
  33615. this.Addr = Addr_;
  33616. });
  33617. file = $pkg.file = $newType(0, $kindStruct, "net.file", true, "net", false, function(file_, data_, atEOF_) {
  33618. this.$val = this;
  33619. if (arguments.length === 0) {
  33620. this.file = ptrType$18.nil;
  33621. this.data = sliceType$1.nil;
  33622. this.atEOF = false;
  33623. return;
  33624. }
  33625. this.file = file_;
  33626. this.data = data_;
  33627. this.atEOF = atEOF_;
  33628. });
  33629. sockaddr = $pkg.sockaddr = $newType(8, $kindInterface, "net.sockaddr", true, "net", false, null);
  33630. ptrType = $ptrType(time.Location);
  33631. sliceType = $sliceType($String);
  33632. sliceType$1 = $sliceType($Uint8);
  33633. ptrType$5 = $ptrType(IPNet);
  33634. ptrType$9 = $ptrType(IPAddr);
  33635. ptrType$13 = $ptrType(OpError);
  33636. ptrType$18 = $ptrType(os.File);
  33637. ptrType$22 = $ptrType(file);
  33638. ptrType$23 = $ptrType(Interface);
  33639. sliceType$7 = $sliceType(Addr);
  33640. sliceType$8 = $sliceType(Interface);
  33641. ptrType$24 = $ptrType(syscall.IfInfomsg);
  33642. ptrType$25 = $ptrType(syscall.IfAddrmsg);
  33643. arrayType$2 = $arrayType($Uint8, 4);
  33644. ptrType$31 = $ptrType(os.SyscallError);
  33645. ptrType$32 = $ptrType(AddrError);
  33646. arrayType$6 = $arrayType($Uint8, 20);
  33647. ptrType$48 = $ptrType(ipv6ZoneCache);
  33648. mapType$1 = $mapType($String, $Int);
  33649. mapType$2 = $mapType($Int, $String);
  33650. ptrType$49 = $ptrType(IP);
  33651. ptrType$52 = $ptrType(ParseError);
  33652. init = function() {
  33653. var $s, $r;
  33654. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33655. $r = sort.Sort(sort.Reverse(($subslice(new byMaskLength(rfc6724policyTable.$array), rfc6724policyTable.$offset, rfc6724policyTable.$offset + rfc6724policyTable.$length)))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  33656. $s = -1; return;
  33657. /* */ } return; } if ($f === undefined) { $f = { $blk: init }; } $f.$s = $s; $f.$r = $r; return $f;
  33658. };
  33659. byMaskLength.prototype.Len = function() {
  33660. var s;
  33661. s = this;
  33662. return s.$length;
  33663. };
  33664. $ptrType(byMaskLength).prototype.Len = function() { return this.$get().Len(); };
  33665. byMaskLength.prototype.Swap = function(i, j) {
  33666. var _tmp, _tmp$1, i, j, s;
  33667. s = this;
  33668. _tmp = $clone(((j < 0 || j >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + j]), policyTableEntry);
  33669. _tmp$1 = $clone(((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]), policyTableEntry);
  33670. policyTableEntry.copy(((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]), _tmp);
  33671. policyTableEntry.copy(((j < 0 || j >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + j]), _tmp$1);
  33672. };
  33673. $ptrType(byMaskLength).prototype.Swap = function(i, j) { return this.$get().Swap(i, j); };
  33674. byMaskLength.prototype.Less = function(i, j) {
  33675. var _tuple, _tuple$1, i, isize, j, jsize, s;
  33676. s = this;
  33677. _tuple = ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]).Prefix.Mask.Size();
  33678. isize = _tuple[0];
  33679. _tuple$1 = ((j < 0 || j >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + j]).Prefix.Mask.Size();
  33680. jsize = _tuple$1[0];
  33681. return isize < jsize;
  33682. };
  33683. $ptrType(byMaskLength).prototype.Less = function(i, j) { return this.$get().Less(i, j); };
  33684. mustCIDR = function(s) {
  33685. var _r$9, _tuple, err, ip, ipNet, s, $s, $r;
  33686. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$9 = $f._r$9; _tuple = $f._tuple; err = $f.err; ip = $f.ip; ipNet = $f.ipNet; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33687. _tuple = ParseCIDR(s);
  33688. ip = _tuple[0];
  33689. ipNet = _tuple[1];
  33690. err = _tuple[2];
  33691. /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; }
  33692. /* */ $s = 2; continue;
  33693. /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1:
  33694. _r$9 = err.Error(); /* */ $s = 3; case 3: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  33695. $panic(new $String(_r$9));
  33696. /* } */ case 2:
  33697. if (!((ip.$length === 16))) {
  33698. $panic(new $String("unexpected IP length"));
  33699. }
  33700. $s = -1; return ipNet;
  33701. /* */ } return; } if ($f === undefined) { $f = { $blk: mustCIDR }; } $f._r$9 = _r$9; $f._tuple = _tuple; $f.err = err; $f.ip = ip; $f.ipNet = ipNet; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  33702. };
  33703. policyTable.prototype.Classify = function(ip) {
  33704. var _i, _ref, ent, ip, t;
  33705. t = this;
  33706. _ref = t;
  33707. _i = 0;
  33708. while (true) {
  33709. if (!(_i < _ref.$length)) { break; }
  33710. ent = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), policyTableEntry);
  33711. if (ent.Prefix.Contains(ip)) {
  33712. return ent;
  33713. }
  33714. _i++;
  33715. }
  33716. return new policyTableEntry.ptr(ptrType$5.nil, 0, 0);
  33717. };
  33718. $ptrType(policyTable).prototype.Classify = function(ip) { return this.$get().Classify(ip); };
  33719. init$1 = function() {
  33720. netGo = true;
  33721. };
  33722. isConnError = function(err) {
  33723. var _tuple, err, ok, se;
  33724. _tuple = $assertType(err, syscall.Errno, true);
  33725. se = _tuple[0];
  33726. ok = _tuple[1];
  33727. if (ok) {
  33728. return (se === 104) || (se === 103);
  33729. }
  33730. return false;
  33731. };
  33732. Flags.prototype.String = function() {
  33733. var _i, _ref, f, i, name, s, y;
  33734. f = this.$val;
  33735. s = "";
  33736. _ref = flagNames;
  33737. _i = 0;
  33738. while (true) {
  33739. if (!(_i < _ref.$length)) { break; }
  33740. i = _i;
  33741. name = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  33742. if (!((((f & (((y = ((i >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) {
  33743. if (!(s === "")) {
  33744. s = s + ("|");
  33745. }
  33746. s = s + (name);
  33747. }
  33748. _i++;
  33749. }
  33750. if (s === "") {
  33751. s = "0";
  33752. }
  33753. return s;
  33754. };
  33755. $ptrType(Flags).prototype.String = function() { return new Flags(this.$get()).String(); };
  33756. Interface.ptr.prototype.Addrs = function() {
  33757. var _r$9, _tuple, err, ifat, ifi, $s, $r;
  33758. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$9 = $f._r$9; _tuple = $f._tuple; err = $f.err; ifat = $f.ifat; ifi = $f.ifi; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33759. ifi = this;
  33760. if (ifi === ptrType$23.nil) {
  33761. $s = -1; return [sliceType$7.nil, new OpError.ptr("route", "ip+net", $ifaceNil, $ifaceNil, errInvalidInterface)];
  33762. }
  33763. _r$9 = interfaceAddrTable(ifi); /* */ $s = 1; case 1: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  33764. _tuple = _r$9;
  33765. ifat = _tuple[0];
  33766. err = _tuple[1];
  33767. if (!($interfaceIsEqual(err, $ifaceNil))) {
  33768. err = new OpError.ptr("route", "ip+net", $ifaceNil, $ifaceNil, err);
  33769. }
  33770. $s = -1; return [ifat, err];
  33771. /* */ } return; } if ($f === undefined) { $f = { $blk: Interface.ptr.prototype.Addrs }; } $f._r$9 = _r$9; $f._tuple = _tuple; $f.err = err; $f.ifat = ifat; $f.ifi = ifi; $f.$s = $s; $f.$r = $r; return $f;
  33772. };
  33773. Interface.prototype.Addrs = function() { return this.$val.Addrs(); };
  33774. Interface.ptr.prototype.MulticastAddrs = function() {
  33775. var _r$9, _tuple, err, ifat, ifi, $s, $r;
  33776. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$9 = $f._r$9; _tuple = $f._tuple; err = $f.err; ifat = $f.ifat; ifi = $f.ifi; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33777. ifi = this;
  33778. if (ifi === ptrType$23.nil) {
  33779. $s = -1; return [sliceType$7.nil, new OpError.ptr("route", "ip+net", $ifaceNil, $ifaceNil, errInvalidInterface)];
  33780. }
  33781. _r$9 = interfaceMulticastAddrTable(ifi); /* */ $s = 1; case 1: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  33782. _tuple = _r$9;
  33783. ifat = _tuple[0];
  33784. err = _tuple[1];
  33785. if (!($interfaceIsEqual(err, $ifaceNil))) {
  33786. err = new OpError.ptr("route", "ip+net", $ifaceNil, $ifaceNil, err);
  33787. }
  33788. $s = -1; return [ifat, err];
  33789. /* */ } return; } if ($f === undefined) { $f = { $blk: Interface.ptr.prototype.MulticastAddrs }; } $f._r$9 = _r$9; $f._tuple = _tuple; $f.err = err; $f.ifat = ifat; $f.ifi = ifi; $f.$s = $s; $f.$r = $r; return $f;
  33790. };
  33791. Interface.prototype.MulticastAddrs = function() { return this.$val.MulticastAddrs(); };
  33792. interfaceByIndex = function(ift, index) {
  33793. var _i, _ref, ifi, ift, index;
  33794. _ref = ift;
  33795. _i = 0;
  33796. while (true) {
  33797. if (!(_i < _ref.$length)) { break; }
  33798. ifi = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), Interface);
  33799. if (index === ifi.Index) {
  33800. return [ifi, $ifaceNil];
  33801. }
  33802. _i++;
  33803. }
  33804. return [ptrType$23.nil, errNoSuchInterface];
  33805. };
  33806. interfaceTable = function(ifindex) {
  33807. var _1, _i, _r$9, _ref, _tuple, _tuple$1, _tuple$2, attrs, err, err$1, ifim, ifindex, ift, m, msgs, tab, $s, $r;
  33808. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _i = $f._i; _r$9 = $f._r$9; _ref = $f._ref; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; attrs = $f.attrs; err = $f.err; err$1 = $f.err$1; ifim = $f.ifim; ifindex = $f.ifindex; ift = $f.ift; m = $f.m; msgs = $f.msgs; tab = $f.tab; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33809. m = [m];
  33810. _r$9 = syscall.NetlinkRIB(18, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  33811. _tuple = _r$9;
  33812. tab = _tuple[0];
  33813. err = _tuple[1];
  33814. if (!($interfaceIsEqual(err, $ifaceNil))) {
  33815. $s = -1; return [sliceType$8.nil, os.NewSyscallError("netlinkrib", err)];
  33816. }
  33817. _tuple$1 = syscall.ParseNetlinkMessage(tab);
  33818. msgs = _tuple$1[0];
  33819. err = _tuple$1[1];
  33820. if (!($interfaceIsEqual(err, $ifaceNil))) {
  33821. $s = -1; return [sliceType$8.nil, os.NewSyscallError("parsenetlinkmessage", err)];
  33822. }
  33823. ift = sliceType$8.nil;
  33824. _ref = msgs;
  33825. _i = 0;
  33826. loop:
  33827. while (true) {
  33828. if (!(_i < _ref.$length)) { break; }
  33829. m[0] = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syscall.NetlinkMessage);
  33830. _1 = m[0].Header.Type;
  33831. if (_1 === (3)) {
  33832. break loop;
  33833. } else if (_1 === (16)) {
  33834. ifim = ($pointerOfStructConversion(($sliceToArray(m[0].Data)), ptrType$24));
  33835. if ((ifindex === 0) || (ifindex === ((ifim.Index >> 0)))) {
  33836. _tuple$2 = syscall.ParseNetlinkRouteAttr(m[0]);
  33837. attrs = _tuple$2[0];
  33838. err$1 = _tuple$2[1];
  33839. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  33840. $s = -1; return [sliceType$8.nil, os.NewSyscallError("parsenetlinkrouteattr", err$1)];
  33841. }
  33842. ift = $append(ift, newLink(ifim, attrs));
  33843. if (ifindex === ((ifim.Index >> 0))) {
  33844. break loop;
  33845. }
  33846. }
  33847. }
  33848. _i++;
  33849. }
  33850. $s = -1; return [ift, $ifaceNil];
  33851. /* */ } return; } if ($f === undefined) { $f = { $blk: interfaceTable }; } $f._1 = _1; $f._i = _i; $f._r$9 = _r$9; $f._ref = _ref; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.attrs = attrs; $f.err = err; $f.err$1 = err$1; $f.ifim = ifim; $f.ifindex = ifindex; $f.ift = ift; $f.m = m; $f.msgs = msgs; $f.tab = tab; $f.$s = $s; $f.$r = $r; return $f;
  33852. };
  33853. newLink = function(ifim, attrs) {
  33854. var _1, _2, _3, _4, _i, _i$1, _ref, _ref$1, a, attrs, b, ifi, ifim, nonzero, x, x$1;
  33855. ifi = new Interface.ptr(((ifim.Index >> 0)), 0, "", HardwareAddr.nil, linkFlags(ifim.Flags));
  33856. _ref = attrs;
  33857. _i = 0;
  33858. while (true) {
  33859. if (!(_i < _ref.$length)) { break; }
  33860. a = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syscall.NetlinkRouteAttr);
  33861. _1 = a.Attr.Type;
  33862. if (_1 === (1)) {
  33863. _2 = a.Value.$length;
  33864. if (_2 === (4)) {
  33865. _3 = ifim.Type;
  33866. if ((_3 === (768)) || (_3 === (778)) || (_3 === (776))) {
  33867. _i++;
  33868. continue;
  33869. }
  33870. } else if (_2 === (16)) {
  33871. _4 = ifim.Type;
  33872. if ((_4 === (769)) || (_4 === (823))) {
  33873. _i++;
  33874. continue;
  33875. }
  33876. }
  33877. nonzero = false;
  33878. _ref$1 = a.Value;
  33879. _i$1 = 0;
  33880. while (true) {
  33881. if (!(_i$1 < _ref$1.$length)) { break; }
  33882. b = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]);
  33883. if (!((b === 0))) {
  33884. nonzero = true;
  33885. break;
  33886. }
  33887. _i$1++;
  33888. }
  33889. if (nonzero) {
  33890. ifi.HardwareAddr = (x = a.Value, $subslice(new HardwareAddr(x.$array), x.$offset, x.$offset + x.$length));
  33891. }
  33892. } else if (_1 === (3)) {
  33893. ifi.Name = ($bytesToString($subslice(a.Value, 0, (a.Value.$length - 1 >> 0))));
  33894. } else if (_1 === (4)) {
  33895. ifi.MTU = (((x$1 = $subslice(a.Value, 0, 4), (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) >> 0));
  33896. }
  33897. _i++;
  33898. }
  33899. return ifi;
  33900. };
  33901. linkFlags = function(rawFlags) {
  33902. var f, rawFlags;
  33903. f = 0;
  33904. if (!((((rawFlags & 1) >>> 0) === 0))) {
  33905. f = (f | (1)) >>> 0;
  33906. }
  33907. if (!((((rawFlags & 2) >>> 0) === 0))) {
  33908. f = (f | (2)) >>> 0;
  33909. }
  33910. if (!((((rawFlags & 8) >>> 0) === 0))) {
  33911. f = (f | (4)) >>> 0;
  33912. }
  33913. if (!((((rawFlags & 16) >>> 0) === 0))) {
  33914. f = (f | (8)) >>> 0;
  33915. }
  33916. if (!((((rawFlags & 4096) >>> 0) === 0))) {
  33917. f = (f | (16)) >>> 0;
  33918. }
  33919. return f;
  33920. };
  33921. interfaceAddrTable = function(ifi) {
  33922. var _r$10, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, err, err$1, ifat, ifi, ift, msgs, tab, $s, $r;
  33923. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$10 = $f._r$10; _r$9 = $f._r$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; err = $f.err; err$1 = $f.err$1; ifat = $f.ifat; ifi = $f.ifi; ift = $f.ift; msgs = $f.msgs; tab = $f.tab; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  33924. _r$9 = syscall.NetlinkRIB(22, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  33925. _tuple = _r$9;
  33926. tab = _tuple[0];
  33927. err = _tuple[1];
  33928. if (!($interfaceIsEqual(err, $ifaceNil))) {
  33929. $s = -1; return [sliceType$7.nil, os.NewSyscallError("netlinkrib", err)];
  33930. }
  33931. _tuple$1 = syscall.ParseNetlinkMessage(tab);
  33932. msgs = _tuple$1[0];
  33933. err = _tuple$1[1];
  33934. if (!($interfaceIsEqual(err, $ifaceNil))) {
  33935. $s = -1; return [sliceType$7.nil, os.NewSyscallError("parsenetlinkmessage", err)];
  33936. }
  33937. ift = sliceType$8.nil;
  33938. /* */ if (ifi === ptrType$23.nil) { $s = 2; continue; }
  33939. /* */ $s = 3; continue;
  33940. /* if (ifi === ptrType$23.nil) { */ case 2:
  33941. err$1 = $ifaceNil;
  33942. _r$10 = interfaceTable(0); /* */ $s = 4; case 4: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
  33943. _tuple$2 = _r$10;
  33944. ift = _tuple$2[0];
  33945. err$1 = _tuple$2[1];
  33946. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  33947. $s = -1; return [sliceType$7.nil, err$1];
  33948. }
  33949. /* } */ case 3:
  33950. _tuple$3 = addrTable(ift, ifi, msgs);
  33951. ifat = _tuple$3[0];
  33952. err = _tuple$3[1];
  33953. if (!($interfaceIsEqual(err, $ifaceNil))) {
  33954. $s = -1; return [sliceType$7.nil, err];
  33955. }
  33956. $s = -1; return [ifat, $ifaceNil];
  33957. /* */ } return; } if ($f === undefined) { $f = { $blk: interfaceAddrTable }; } $f._r$10 = _r$10; $f._r$9 = _r$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.err = err; $f.err$1 = err$1; $f.ifat = ifat; $f.ifi = ifi; $f.ift = ift; $f.msgs = msgs; $f.tab = tab; $f.$s = $s; $f.$r = $r; return $f;
  33958. };
  33959. addrTable = function(ift, ifi, msgs) {
  33960. var _1, _i, _ref, _tuple, _tuple$1, attrs, err, err$1, ifa, ifam, ifat, ifi, ift, m, msgs;
  33961. ifat = sliceType$7.nil;
  33962. _ref = msgs;
  33963. _i = 0;
  33964. loop:
  33965. while (true) {
  33966. if (!(_i < _ref.$length)) { break; }
  33967. m = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syscall.NetlinkMessage);
  33968. _1 = m.Header.Type;
  33969. if (_1 === (3)) {
  33970. break loop;
  33971. } else if (_1 === (20)) {
  33972. ifam = ($pointerOfStructConversion(($sliceToArray(m.Data)), ptrType$25));
  33973. if (!((ift.$length === 0)) || (ifi.Index === ((ifam.Index >> 0)))) {
  33974. if (!((ift.$length === 0))) {
  33975. err = $ifaceNil;
  33976. _tuple = interfaceByIndex(ift, ((ifam.Index >> 0)));
  33977. ifi = _tuple[0];
  33978. err = _tuple[1];
  33979. if (!($interfaceIsEqual(err, $ifaceNil))) {
  33980. return [sliceType$7.nil, err];
  33981. }
  33982. }
  33983. _tuple$1 = syscall.ParseNetlinkRouteAttr(m);
  33984. attrs = _tuple$1[0];
  33985. err$1 = _tuple$1[1];
  33986. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  33987. return [sliceType$7.nil, os.NewSyscallError("parsenetlinkrouteattr", err$1)];
  33988. }
  33989. ifa = newAddr(ifam, attrs);
  33990. if (!($interfaceIsEqual(ifa, $ifaceNil))) {
  33991. ifat = $append(ifat, ifa);
  33992. }
  33993. }
  33994. }
  33995. _i++;
  33996. }
  33997. return [ifat, $ifaceNil];
  33998. };
  33999. newAddr = function(ifam, attrs) {
  34000. var _1, _i, _i$1, _ref, _ref$1, a, a$1, attrs, ifa, ifam, ipPointToPoint, x, x$1, x$2, x$3;
  34001. ipPointToPoint = false;
  34002. _ref = attrs;
  34003. _i = 0;
  34004. while (true) {
  34005. if (!(_i < _ref.$length)) { break; }
  34006. a = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syscall.NetlinkRouteAttr);
  34007. if (a.Attr.Type === 2) {
  34008. ipPointToPoint = true;
  34009. break;
  34010. }
  34011. _i++;
  34012. }
  34013. _ref$1 = attrs;
  34014. _i$1 = 0;
  34015. while (true) {
  34016. if (!(_i$1 < _ref$1.$length)) { break; }
  34017. a$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), syscall.NetlinkRouteAttr);
  34018. if (ipPointToPoint && (a$1.Attr.Type === 1)) {
  34019. _i$1++;
  34020. continue;
  34021. }
  34022. _1 = ifam.Family;
  34023. if (_1 === (2)) {
  34024. return new IPNet.ptr(IPv4((x = a$1.Value, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), (x$1 = a$1.Value, (1 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 1])), (x$2 = a$1.Value, (2 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 2])), (x$3 = a$1.Value, (3 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 3]))), CIDRMask(((ifam.Prefixlen >> 0)), 32));
  34025. } else if (_1 === (10)) {
  34026. ifa = new IPNet.ptr($makeSlice(IP, 16), CIDRMask(((ifam.Prefixlen >> 0)), 128));
  34027. $copySlice(ifa.IP, a$1.Value);
  34028. return ifa;
  34029. }
  34030. _i$1++;
  34031. }
  34032. return $ifaceNil;
  34033. };
  34034. interfaceMulticastAddrTable = function(ifi) {
  34035. var _r$10, _r$9, ifi, ifmat4, ifmat6, $s, $r;
  34036. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$10 = $f._r$10; _r$9 = $f._r$9; ifi = $f.ifi; ifmat4 = $f.ifmat4; ifmat6 = $f.ifmat6; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  34037. _r$9 = parseProcNetIGMP("/proc/net/igmp", ifi); /* */ $s = 1; case 1: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  34038. ifmat4 = _r$9;
  34039. _r$10 = parseProcNetIGMP6("/proc/net/igmp6", ifi); /* */ $s = 2; case 2: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
  34040. ifmat6 = _r$10;
  34041. $s = -1; return [$appendSlice(ifmat4, ifmat6), $ifaceNil];
  34042. /* */ } return; } if ($f === undefined) { $f = { $blk: interfaceMulticastAddrTable }; } $f._r$10 = _r$10; $f._r$9 = _r$9; $f.ifi = ifi; $f.ifmat4 = ifmat4; $f.ifmat6 = ifmat6; $f.$s = $s; $f.$r = $r; return $f;
  34043. };
  34044. parseProcNetIGMP = function(path, ifi) {
  34045. var _q, _r$10, _r$11, _r$12, _r$13, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, b, err, f, fd, i, i$1, ifi, ifma, ifmat, l, name, ok, path, x, x$1, $s, $deferred, $r;
  34046. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$9 = $f._r$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; b = $f.b; err = $f.err; f = $f.f; fd = $f.fd; i = $f.i; i$1 = $f.i$1; ifi = $f.ifi; ifma = $f.ifma; ifmat = $f.ifmat; l = $f.l; name = $f.name; ok = $f.ok; path = $f.path; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  34047. _r$9 = open(path); /* */ $s = 1; case 1: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  34048. _tuple = _r$9;
  34049. fd = _tuple[0];
  34050. err = _tuple[1];
  34051. if (!($interfaceIsEqual(err, $ifaceNil))) {
  34052. $s = -1; return sliceType$7.nil;
  34053. }
  34054. $deferred.push([$methodVal(fd, "close"), []]);
  34055. ifmat = sliceType$7.nil;
  34056. name = "";
  34057. _r$10 = fd.readLine(); /* */ $s = 2; case 2: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
  34058. _r$10;
  34059. b = $makeSlice(sliceType$1, 4);
  34060. _r$11 = fd.readLine(); /* */ $s = 3; case 3: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
  34061. _tuple$1 = _r$11;
  34062. l = _tuple$1[0];
  34063. ok = _tuple$1[1];
  34064. /* while (true) { */ case 4:
  34065. /* if (!(ok)) { break; } */ if(!(ok)) { $s = 5; continue; }
  34066. f = splitAtBytes(l, " :\r\t\n");
  34067. /* */ if (f.$length < 4) { $s = 6; continue; }
  34068. /* */ $s = 7; continue;
  34069. /* if (f.$length < 4) { */ case 6:
  34070. _r$12 = fd.readLine(); /* */ $s = 8; case 8: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
  34071. _tuple$2 = _r$12;
  34072. l = _tuple$2[0];
  34073. ok = _tuple$2[1];
  34074. /* continue; */ $s = 4; continue;
  34075. /* } */ case 7:
  34076. if (!((l.charCodeAt(0) === 32)) && !((l.charCodeAt(0) === 9))) {
  34077. name = (1 >= f.$length ? ($throwRuntimeError("index out of range"), undefined) : f.$array[f.$offset + 1]);
  34078. } else if (((0 >= f.$length ? ($throwRuntimeError("index out of range"), undefined) : f.$array[f.$offset + 0]).length === 8)) {
  34079. if (ifi === ptrType$23.nil || name === ifi.Name) {
  34080. i = 0;
  34081. while (true) {
  34082. if (!((i + 1 >> 0) < (0 >= f.$length ? ($throwRuntimeError("index out of range"), undefined) : f.$array[f.$offset + 0]).length)) { break; }
  34083. _tuple$3 = xtoi2($substring((0 >= f.$length ? ($throwRuntimeError("index out of range"), undefined) : f.$array[f.$offset + 0]), i, (i + 2 >> 0)), 0);
  34084. (x = (_q = i / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), ((x < 0 || x >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + x] = _tuple$3[0]));
  34085. i = i + (2) >> 0;
  34086. }
  34087. i$1 = (x$1 = $subslice(b, 0, 4), (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]));
  34088. ifma = new IPAddr.ptr(IPv4((((i$1 >>> 24 >>> 0) << 24 >>> 24)), (((i$1 >>> 16 >>> 0) << 24 >>> 24)), (((i$1 >>> 8 >>> 0) << 24 >>> 24)), ((i$1 << 24 >>> 24))), "");
  34089. ifmat = $append(ifmat, ifma);
  34090. }
  34091. }
  34092. _r$13 = fd.readLine(); /* */ $s = 9; case 9: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
  34093. _tuple$4 = _r$13;
  34094. l = _tuple$4[0];
  34095. ok = _tuple$4[1];
  34096. /* } */ $s = 4; continue; case 5:
  34097. $s = -1; return ifmat;
  34098. /* */ } return; } } catch(err) { $err = err; $s = -1; return sliceType$7.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: parseProcNetIGMP }; } $f._q = _q; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$9 = _r$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f.b = b; $f.err = err; $f.f = f; $f.fd = fd; $f.i = i; $f.i$1 = i$1; $f.ifi = ifi; $f.ifma = ifma; $f.ifmat = ifmat; $f.l = l; $f.name = name; $f.ok = ok; $f.path = path; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  34099. };
  34100. parseProcNetIGMP6 = function(path, ifi) {
  34101. var _q, _r$10, _r$11, _r$12, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, b, err, f, fd, i, ifi, ifma, ifmat, l, ok, path, x, $s, $deferred, $r;
  34102. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$9 = $f._r$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; b = $f.b; err = $f.err; f = $f.f; fd = $f.fd; i = $f.i; ifi = $f.ifi; ifma = $f.ifma; ifmat = $f.ifmat; l = $f.l; ok = $f.ok; path = $f.path; x = $f.x; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  34103. _r$9 = open(path); /* */ $s = 1; case 1: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  34104. _tuple = _r$9;
  34105. fd = _tuple[0];
  34106. err = _tuple[1];
  34107. if (!($interfaceIsEqual(err, $ifaceNil))) {
  34108. $s = -1; return sliceType$7.nil;
  34109. }
  34110. $deferred.push([$methodVal(fd, "close"), []]);
  34111. ifmat = sliceType$7.nil;
  34112. b = $makeSlice(sliceType$1, 16);
  34113. _r$10 = fd.readLine(); /* */ $s = 2; case 2: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
  34114. _tuple$1 = _r$10;
  34115. l = _tuple$1[0];
  34116. ok = _tuple$1[1];
  34117. /* while (true) { */ case 3:
  34118. /* if (!(ok)) { break; } */ if(!(ok)) { $s = 4; continue; }
  34119. f = splitAtBytes(l, " \r\t\n");
  34120. /* */ if (f.$length < 6) { $s = 5; continue; }
  34121. /* */ $s = 6; continue;
  34122. /* if (f.$length < 6) { */ case 5:
  34123. _r$11 = fd.readLine(); /* */ $s = 7; case 7: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
  34124. _tuple$2 = _r$11;
  34125. l = _tuple$2[0];
  34126. ok = _tuple$2[1];
  34127. /* continue; */ $s = 3; continue;
  34128. /* } */ case 6:
  34129. if (ifi === ptrType$23.nil || (1 >= f.$length ? ($throwRuntimeError("index out of range"), undefined) : f.$array[f.$offset + 1]) === ifi.Name) {
  34130. i = 0;
  34131. while (true) {
  34132. if (!((i + 1 >> 0) < (2 >= f.$length ? ($throwRuntimeError("index out of range"), undefined) : f.$array[f.$offset + 2]).length)) { break; }
  34133. _tuple$3 = xtoi2($substring((2 >= f.$length ? ($throwRuntimeError("index out of range"), undefined) : f.$array[f.$offset + 2]), i, (i + 2 >> 0)), 0);
  34134. (x = (_q = i / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), ((x < 0 || x >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + x] = _tuple$3[0]));
  34135. i = i + (2) >> 0;
  34136. }
  34137. ifma = new IPAddr.ptr(new IP([(0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]), (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]), (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]), (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]), (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]), (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]), (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]), (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]), (8 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 8]), (9 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 9]), (10 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 10]), (11 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 11]), (12 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 12]), (13 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 13]), (14 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 14]), (15 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 15])]), "");
  34138. ifmat = $append(ifmat, ifma);
  34139. }
  34140. _r$12 = fd.readLine(); /* */ $s = 8; case 8: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
  34141. _tuple$4 = _r$12;
  34142. l = _tuple$4[0];
  34143. ok = _tuple$4[1];
  34144. /* } */ $s = 3; continue; case 4:
  34145. $s = -1; return ifmat;
  34146. /* */ } return; } } catch(err) { $err = err; $s = -1; return sliceType$7.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: parseProcNetIGMP6 }; } $f._q = _q; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$9 = _r$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f.b = b; $f.err = err; $f.f = f; $f.fd = fd; $f.i = i; $f.ifi = ifi; $f.ifma = ifma; $f.ifmat = ifmat; $f.l = l; $f.ok = ok; $f.path = path; $f.x = x; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  34147. };
  34148. IPv4 = function(a, b, c, d) {
  34149. var a, b, c, d, p;
  34150. p = $makeSlice(IP, 16);
  34151. $copySlice(p, v4InV6Prefix);
  34152. (12 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 12] = a);
  34153. (13 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 13] = b);
  34154. (14 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 14] = c);
  34155. (15 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 15] = d);
  34156. return p;
  34157. };
  34158. $pkg.IPv4 = IPv4;
  34159. IPv4Mask = function(a, b, c, d) {
  34160. var a, b, c, d, p;
  34161. p = $makeSlice(IPMask, 4);
  34162. (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = a);
  34163. (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = b);
  34164. (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = c);
  34165. (3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3] = d);
  34166. return p;
  34167. };
  34168. $pkg.IPv4Mask = IPv4Mask;
  34169. CIDRMask = function(ones, bits) {
  34170. var _q, bits, i, l, m, n, ones, y;
  34171. if (!((bits === 32)) && !((bits === 128))) {
  34172. return IPMask.nil;
  34173. }
  34174. if (ones < 0 || ones > bits) {
  34175. return IPMask.nil;
  34176. }
  34177. l = (_q = bits / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
  34178. m = $makeSlice(IPMask, l);
  34179. n = ((ones >>> 0));
  34180. i = 0;
  34181. while (true) {
  34182. if (!(i < l)) { break; }
  34183. if (n >= 8) {
  34184. ((i < 0 || i >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + i] = 255);
  34185. n = n - (8) >>> 0;
  34186. i = i + (1) >> 0;
  34187. continue;
  34188. }
  34189. ((i < 0 || i >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + i] = (~(((y = n, y < 32 ? (255 >>> y) : 0) << 24 >>> 24)) << 24 >>> 24));
  34190. n = 0;
  34191. i = i + (1) >> 0;
  34192. }
  34193. return m;
  34194. };
  34195. $pkg.CIDRMask = CIDRMask;
  34196. IP.prototype.IsUnspecified = function() {
  34197. var ip;
  34198. ip = this;
  34199. return ip.Equal($pkg.IPv4zero) || ip.Equal($pkg.IPv6unspecified);
  34200. };
  34201. $ptrType(IP).prototype.IsUnspecified = function() { return this.$get().IsUnspecified(); };
  34202. IP.prototype.IsLoopback = function() {
  34203. var ip, ip4;
  34204. ip = this;
  34205. ip4 = ip.To4();
  34206. if (!(ip4 === IP.nil)) {
  34207. return (0 >= ip4.$length ? ($throwRuntimeError("index out of range"), undefined) : ip4.$array[ip4.$offset + 0]) === 127;
  34208. }
  34209. return ip.Equal($pkg.IPv6loopback);
  34210. };
  34211. $ptrType(IP).prototype.IsLoopback = function() { return this.$get().IsLoopback(); };
  34212. IP.prototype.IsMulticast = function() {
  34213. var ip, ip4;
  34214. ip = this;
  34215. ip4 = ip.To4();
  34216. if (!(ip4 === IP.nil)) {
  34217. return (((0 >= ip4.$length ? ($throwRuntimeError("index out of range"), undefined) : ip4.$array[ip4.$offset + 0]) & 240) >>> 0) === 224;
  34218. }
  34219. return (ip.$length === 16) && ((0 >= ip.$length ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + 0]) === 255);
  34220. };
  34221. $ptrType(IP).prototype.IsMulticast = function() { return this.$get().IsMulticast(); };
  34222. IP.prototype.IsInterfaceLocalMulticast = function() {
  34223. var ip;
  34224. ip = this;
  34225. return (ip.$length === 16) && ((0 >= ip.$length ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + 0]) === 255) && ((((1 >= ip.$length ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + 1]) & 15) >>> 0) === 1);
  34226. };
  34227. $ptrType(IP).prototype.IsInterfaceLocalMulticast = function() { return this.$get().IsInterfaceLocalMulticast(); };
  34228. IP.prototype.IsLinkLocalMulticast = function() {
  34229. var ip, ip4;
  34230. ip = this;
  34231. ip4 = ip.To4();
  34232. if (!(ip4 === IP.nil)) {
  34233. return ((0 >= ip4.$length ? ($throwRuntimeError("index out of range"), undefined) : ip4.$array[ip4.$offset + 0]) === 224) && ((1 >= ip4.$length ? ($throwRuntimeError("index out of range"), undefined) : ip4.$array[ip4.$offset + 1]) === 0) && ((2 >= ip4.$length ? ($throwRuntimeError("index out of range"), undefined) : ip4.$array[ip4.$offset + 2]) === 0);
  34234. }
  34235. return (ip.$length === 16) && ((0 >= ip.$length ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + 0]) === 255) && ((((1 >= ip.$length ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + 1]) & 15) >>> 0) === 2);
  34236. };
  34237. $ptrType(IP).prototype.IsLinkLocalMulticast = function() { return this.$get().IsLinkLocalMulticast(); };
  34238. IP.prototype.IsLinkLocalUnicast = function() {
  34239. var ip, ip4;
  34240. ip = this;
  34241. ip4 = ip.To4();
  34242. if (!(ip4 === IP.nil)) {
  34243. return ((0 >= ip4.$length ? ($throwRuntimeError("index out of range"), undefined) : ip4.$array[ip4.$offset + 0]) === 169) && ((1 >= ip4.$length ? ($throwRuntimeError("index out of range"), undefined) : ip4.$array[ip4.$offset + 1]) === 254);
  34244. }
  34245. return (ip.$length === 16) && ((0 >= ip.$length ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + 0]) === 254) && ((((1 >= ip.$length ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + 1]) & 192) >>> 0) === 128);
  34246. };
  34247. $ptrType(IP).prototype.IsLinkLocalUnicast = function() { return this.$get().IsLinkLocalUnicast(); };
  34248. IP.prototype.IsGlobalUnicast = function() {
  34249. var ip;
  34250. ip = this;
  34251. return ((ip.$length === 4) || (ip.$length === 16)) && !ip.Equal($pkg.IPv4bcast) && !ip.IsUnspecified() && !ip.IsLoopback() && !ip.IsMulticast() && !ip.IsLinkLocalUnicast();
  34252. };
  34253. $ptrType(IP).prototype.IsGlobalUnicast = function() { return this.$get().IsGlobalUnicast(); };
  34254. isZeros = function(p) {
  34255. var i, p;
  34256. i = 0;
  34257. while (true) {
  34258. if (!(i < p.$length)) { break; }
  34259. if (!((((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) === 0))) {
  34260. return false;
  34261. }
  34262. i = i + (1) >> 0;
  34263. }
  34264. return true;
  34265. };
  34266. IP.prototype.To4 = function() {
  34267. var ip;
  34268. ip = this;
  34269. if (ip.$length === 4) {
  34270. return ip;
  34271. }
  34272. if ((ip.$length === 16) && isZeros($subslice(ip, 0, 10)) && ((10 >= ip.$length ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + 10]) === 255) && ((11 >= ip.$length ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + 11]) === 255)) {
  34273. return $subslice(ip, 12, 16);
  34274. }
  34275. return IP.nil;
  34276. };
  34277. $ptrType(IP).prototype.To4 = function() { return this.$get().To4(); };
  34278. IP.prototype.To16 = function() {
  34279. var ip;
  34280. ip = this;
  34281. if (ip.$length === 4) {
  34282. return IPv4((0 >= ip.$length ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + 0]), (1 >= ip.$length ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + 1]), (2 >= ip.$length ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + 2]), (3 >= ip.$length ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + 3]));
  34283. }
  34284. if (ip.$length === 16) {
  34285. return ip;
  34286. }
  34287. return IP.nil;
  34288. };
  34289. $ptrType(IP).prototype.To16 = function() { return this.$get().To16(); };
  34290. IP.prototype.DefaultMask = function() {
  34291. var ip;
  34292. ip = this;
  34293. ip = ip.To4();
  34294. if (ip === IP.nil) {
  34295. return IPMask.nil;
  34296. }
  34297. if ((0 >= ip.$length ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + 0]) < 128) {
  34298. return classAMask;
  34299. } else if ((0 >= ip.$length ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + 0]) < 192) {
  34300. return classBMask;
  34301. } else {
  34302. return classCMask;
  34303. }
  34304. };
  34305. $ptrType(IP).prototype.DefaultMask = function() { return this.$get().DefaultMask(); };
  34306. allFF = function(b) {
  34307. var _i, _ref, b, c;
  34308. _ref = b;
  34309. _i = 0;
  34310. while (true) {
  34311. if (!(_i < _ref.$length)) { break; }
  34312. c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  34313. if (!((c === 255))) {
  34314. return false;
  34315. }
  34316. _i++;
  34317. }
  34318. return true;
  34319. };
  34320. IP.prototype.Mask = function(mask) {
  34321. var i, ip, mask, n, out, x, x$1;
  34322. ip = this;
  34323. if ((mask.$length === 16) && (ip.$length === 4) && allFF((x = $subslice(mask, 0, 12), $subslice(new sliceType$1(x.$array), x.$offset, x.$offset + x.$length)))) {
  34324. mask = $subslice(mask, 12);
  34325. }
  34326. if ((mask.$length === 4) && (ip.$length === 16) && bytealg.Equal((x$1 = $subslice(ip, 0, 12), $subslice(new sliceType$1(x$1.$array), x$1.$offset, x$1.$offset + x$1.$length)), v4InV6Prefix)) {
  34327. ip = $subslice(ip, 12);
  34328. }
  34329. n = ip.$length;
  34330. if (!((n === mask.$length))) {
  34331. return IP.nil;
  34332. }
  34333. out = $makeSlice(IP, n);
  34334. i = 0;
  34335. while (true) {
  34336. if (!(i < n)) { break; }
  34337. ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = ((((i < 0 || i >= ip.$length) ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + i]) & ((i < 0 || i >= mask.$length) ? ($throwRuntimeError("index out of range"), undefined) : mask.$array[mask.$offset + i])) >>> 0));
  34338. i = i + (1) >> 0;
  34339. }
  34340. return out;
  34341. };
  34342. $ptrType(IP).prototype.Mask = function(mask) { return this.$get().Mask(mask); };
  34343. ubtoa = function(dst, start, v) {
  34344. var _q, _q$1, _q$2, _r$10, _r$11, _r$9, dst, start, v, x, x$1, x$2;
  34345. if (v < 10) {
  34346. ((start < 0 || start >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + start] = (v + 48 << 24 >>> 24));
  34347. return 1;
  34348. } else if (v < 100) {
  34349. (x = start + 1 >> 0, ((x < 0 || x >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x] = ((_r$9 = v % 10, _r$9 === _r$9 ? _r$9 : $throwRuntimeError("integer divide by zero")) + 48 << 24 >>> 24)));
  34350. ((start < 0 || start >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + start] = ((_q = v / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")) + 48 << 24 >>> 24));
  34351. return 2;
  34352. }
  34353. (x$1 = start + 2 >> 0, ((x$1 < 0 || x$1 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$1] = ((_r$10 = v % 10, _r$10 === _r$10 ? _r$10 : $throwRuntimeError("integer divide by zero")) + 48 << 24 >>> 24)));
  34354. (x$2 = start + 1 >> 0, ((x$2 < 0 || x$2 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$2] = ((_r$11 = ((_q$1 = v / 10, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero"))) % 10, _r$11 === _r$11 ? _r$11 : $throwRuntimeError("integer divide by zero")) + 48 << 24 >>> 24)));
  34355. ((start < 0 || start >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + start] = ((_q$2 = v / 100, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >>> 0 : $throwRuntimeError("integer divide by zero")) + 48 << 24 >>> 24));
  34356. return 3;
  34357. };
  34358. IP.prototype.String = function() {
  34359. var b, b$1, e0, e1, i, i$1, ip, j, n, p, p4, x, x$1;
  34360. ip = this;
  34361. p = ip;
  34362. if (ip.$length === 0) {
  34363. return "<nil>";
  34364. }
  34365. p4 = p.To4();
  34366. if (p4.$length === 4) {
  34367. b = $makeSlice(sliceType$1, 15);
  34368. n = ubtoa(b, 0, (0 >= p4.$length ? ($throwRuntimeError("index out of range"), undefined) : p4.$array[p4.$offset + 0]));
  34369. ((n < 0 || n >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + n] = 46);
  34370. n = n + (1) >> 0;
  34371. n = n + (ubtoa(b, n, (1 >= p4.$length ? ($throwRuntimeError("index out of range"), undefined) : p4.$array[p4.$offset + 1]))) >> 0;
  34372. ((n < 0 || n >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + n] = 46);
  34373. n = n + (1) >> 0;
  34374. n = n + (ubtoa(b, n, (2 >= p4.$length ? ($throwRuntimeError("index out of range"), undefined) : p4.$array[p4.$offset + 2]))) >> 0;
  34375. ((n < 0 || n >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + n] = 46);
  34376. n = n + (1) >> 0;
  34377. n = n + (ubtoa(b, n, (3 >= p4.$length ? ($throwRuntimeError("index out of range"), undefined) : p4.$array[p4.$offset + 3]))) >> 0;
  34378. return ($bytesToString($subslice(b, 0, n)));
  34379. }
  34380. if (!((p.$length === 16))) {
  34381. return "?" + hexString($subslice(new sliceType$1(ip.$array), ip.$offset, ip.$offset + ip.$length));
  34382. }
  34383. e0 = -1;
  34384. e1 = -1;
  34385. i = 0;
  34386. while (true) {
  34387. if (!(i < 16)) { break; }
  34388. j = i;
  34389. while (true) {
  34390. if (!(j < 16 && (((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]) === 0) && ((x = j + 1 >> 0, ((x < 0 || x >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x])) === 0))) { break; }
  34391. j = j + (2) >> 0;
  34392. }
  34393. if (j > i && (j - i >> 0) > (e1 - e0 >> 0)) {
  34394. e0 = i;
  34395. e1 = j;
  34396. i = j;
  34397. }
  34398. i = i + (2) >> 0;
  34399. }
  34400. if ((e1 - e0 >> 0) <= 2) {
  34401. e0 = -1;
  34402. e1 = -1;
  34403. }
  34404. b$1 = $makeSlice(sliceType$1, 0, 39);
  34405. i$1 = 0;
  34406. while (true) {
  34407. if (!(i$1 < 16)) { break; }
  34408. if (i$1 === e0) {
  34409. b$1 = $append(b$1, 58, 58);
  34410. i$1 = e1;
  34411. if (i$1 >= 16) {
  34412. break;
  34413. }
  34414. } else if (i$1 > 0) {
  34415. b$1 = $append(b$1, 58);
  34416. }
  34417. b$1 = appendHex(b$1, (((((((i$1 < 0 || i$1 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i$1]) >>> 0)) << 8 >>> 0)) | (((x$1 = i$1 + 1 >> 0, ((x$1 < 0 || x$1 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$1])) >>> 0))) >>> 0);
  34418. i$1 = i$1 + (2) >> 0;
  34419. }
  34420. return ($bytesToString(b$1));
  34421. };
  34422. $ptrType(IP).prototype.String = function() { return this.$get().String(); };
  34423. hexString = function(b) {
  34424. var _i, _ref, _tmp, _tmp$1, b, i, s, tn, x, x$1;
  34425. s = $makeSlice(sliceType$1, ($imul(b.$length, 2)));
  34426. _ref = b;
  34427. _i = 0;
  34428. while (true) {
  34429. if (!(_i < _ref.$length)) { break; }
  34430. i = _i;
  34431. tn = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  34432. _tmp = "0123456789abcdef".charCodeAt((tn >>> 4 << 24 >>> 24));
  34433. _tmp$1 = "0123456789abcdef".charCodeAt(((tn & 15) >>> 0));
  34434. (x = $imul(i, 2), ((x < 0 || x >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x] = _tmp));
  34435. (x$1 = ($imul(i, 2)) + 1 >> 0, ((x$1 < 0 || x$1 >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x$1] = _tmp$1));
  34436. _i++;
  34437. }
  34438. return ($bytesToString(s));
  34439. };
  34440. ipEmptyString = function(ip) {
  34441. var ip;
  34442. if (ip.$length === 0) {
  34443. return "";
  34444. }
  34445. return ip.String();
  34446. };
  34447. IP.prototype.MarshalText = function() {
  34448. var ip;
  34449. ip = this;
  34450. if (ip.$length === 0) {
  34451. return [(new sliceType$1($stringToBytes(""))), $ifaceNil];
  34452. }
  34453. if (!((ip.$length === 4)) && !((ip.$length === 16))) {
  34454. return [sliceType$1.nil, new AddrError.ptr("invalid IP address", hexString($subslice(new sliceType$1(ip.$array), ip.$offset, ip.$offset + ip.$length)))];
  34455. }
  34456. return [(new sliceType$1($stringToBytes(ip.String()))), $ifaceNil];
  34457. };
  34458. $ptrType(IP).prototype.MarshalText = function() { return this.$get().MarshalText(); };
  34459. $ptrType(IP).prototype.UnmarshalText = function(text) {
  34460. var ip, s, text, x;
  34461. ip = this;
  34462. if (text.$length === 0) {
  34463. ip.$set(IP.nil);
  34464. return $ifaceNil;
  34465. }
  34466. s = ($bytesToString(text));
  34467. x = ParseIP(s);
  34468. if (x === IP.nil) {
  34469. return new ParseError.ptr("IP address", s);
  34470. }
  34471. ip.$set(x);
  34472. return $ifaceNil;
  34473. };
  34474. IP.prototype.Equal = function(x) {
  34475. var ip, x, x$1, x$2, x$3, x$4;
  34476. ip = this;
  34477. if (ip.$length === x.$length) {
  34478. return bytealg.Equal($subslice(new sliceType$1(ip.$array), ip.$offset, ip.$offset + ip.$length), $subslice(new sliceType$1(x.$array), x.$offset, x.$offset + x.$length));
  34479. }
  34480. if ((ip.$length === 4) && (x.$length === 16)) {
  34481. return bytealg.Equal((x$1 = $subslice(x, 0, 12), $subslice(new sliceType$1(x$1.$array), x$1.$offset, x$1.$offset + x$1.$length)), v4InV6Prefix) && bytealg.Equal($subslice(new sliceType$1(ip.$array), ip.$offset, ip.$offset + ip.$length), (x$2 = $subslice(x, 12), $subslice(new sliceType$1(x$2.$array), x$2.$offset, x$2.$offset + x$2.$length)));
  34482. }
  34483. if ((ip.$length === 16) && (x.$length === 4)) {
  34484. return bytealg.Equal((x$3 = $subslice(ip, 0, 12), $subslice(new sliceType$1(x$3.$array), x$3.$offset, x$3.$offset + x$3.$length)), v4InV6Prefix) && bytealg.Equal((x$4 = $subslice(ip, 12), $subslice(new sliceType$1(x$4.$array), x$4.$offset, x$4.$offset + x$4.$length)), $subslice(new sliceType$1(x.$array), x.$offset, x.$offset + x.$length));
  34485. }
  34486. return false;
  34487. };
  34488. $ptrType(IP).prototype.Equal = function(x) { return this.$get().Equal(x); };
  34489. simpleMaskLength = function(mask) {
  34490. var _i, _ref, i, mask, n, v, y;
  34491. n = 0;
  34492. _ref = mask;
  34493. _i = 0;
  34494. while (true) {
  34495. if (!(_i < _ref.$length)) { break; }
  34496. i = _i;
  34497. v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  34498. if (v === 255) {
  34499. n = n + (8) >> 0;
  34500. _i++;
  34501. continue;
  34502. }
  34503. while (true) {
  34504. if (!(!((((v & 128) >>> 0) === 0)))) { break; }
  34505. n = n + (1) >> 0;
  34506. v = (y = (1), y < 32 ? (v << y) : 0) << 24 >>> 24;
  34507. }
  34508. if (!((v === 0))) {
  34509. return -1;
  34510. }
  34511. i = i + (1) >> 0;
  34512. while (true) {
  34513. if (!(i < mask.$length)) { break; }
  34514. if (!((((i < 0 || i >= mask.$length) ? ($throwRuntimeError("index out of range"), undefined) : mask.$array[mask.$offset + i]) === 0))) {
  34515. return -1;
  34516. }
  34517. i = i + (1) >> 0;
  34518. }
  34519. break;
  34520. }
  34521. return n;
  34522. };
  34523. IPMask.prototype.Size = function() {
  34524. var _tmp, _tmp$1, _tmp$2, _tmp$3, bits, m, ones;
  34525. ones = 0;
  34526. bits = 0;
  34527. m = this;
  34528. _tmp = simpleMaskLength(m);
  34529. _tmp$1 = $imul(m.$length, 8);
  34530. ones = _tmp;
  34531. bits = _tmp$1;
  34532. if (ones === -1) {
  34533. _tmp$2 = 0;
  34534. _tmp$3 = 0;
  34535. ones = _tmp$2;
  34536. bits = _tmp$3;
  34537. return [ones, bits];
  34538. }
  34539. return [ones, bits];
  34540. };
  34541. $ptrType(IPMask).prototype.Size = function() { return this.$get().Size(); };
  34542. IPMask.prototype.String = function() {
  34543. var m;
  34544. m = this;
  34545. if (m.$length === 0) {
  34546. return "<nil>";
  34547. }
  34548. return hexString($subslice(new sliceType$1(m.$array), m.$offset, m.$offset + m.$length));
  34549. };
  34550. $ptrType(IPMask).prototype.String = function() { return this.$get().String(); };
  34551. networkNumberAndMask = function(n) {
  34552. var _1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, ip, m, n;
  34553. ip = IP.nil;
  34554. m = IPMask.nil;
  34555. ip = n.IP.To4();
  34556. if (ip === IP.nil) {
  34557. ip = n.IP;
  34558. if (!((ip.$length === 16))) {
  34559. _tmp = IP.nil;
  34560. _tmp$1 = IPMask.nil;
  34561. ip = _tmp;
  34562. m = _tmp$1;
  34563. return [ip, m];
  34564. }
  34565. }
  34566. m = n.Mask;
  34567. _1 = m.$length;
  34568. if (_1 === (4)) {
  34569. if (!((ip.$length === 4))) {
  34570. _tmp$2 = IP.nil;
  34571. _tmp$3 = IPMask.nil;
  34572. ip = _tmp$2;
  34573. m = _tmp$3;
  34574. return [ip, m];
  34575. }
  34576. } else if (_1 === (16)) {
  34577. if (ip.$length === 4) {
  34578. m = $subslice(m, 12);
  34579. }
  34580. } else {
  34581. _tmp$4 = IP.nil;
  34582. _tmp$5 = IPMask.nil;
  34583. ip = _tmp$4;
  34584. m = _tmp$5;
  34585. return [ip, m];
  34586. }
  34587. return [ip, m];
  34588. };
  34589. IPNet.ptr.prototype.Contains = function(ip) {
  34590. var _tuple, i, ip, l, m, n, nn, x;
  34591. n = this;
  34592. _tuple = networkNumberAndMask(n);
  34593. nn = _tuple[0];
  34594. m = _tuple[1];
  34595. x = ip.To4();
  34596. if (!(x === IP.nil)) {
  34597. ip = x;
  34598. }
  34599. l = ip.$length;
  34600. if (!((l === nn.$length))) {
  34601. return false;
  34602. }
  34603. i = 0;
  34604. while (true) {
  34605. if (!(i < l)) { break; }
  34606. if (!((((((i < 0 || i >= nn.$length) ? ($throwRuntimeError("index out of range"), undefined) : nn.$array[nn.$offset + i]) & ((i < 0 || i >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + i])) >>> 0) === ((((i < 0 || i >= ip.$length) ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + i]) & ((i < 0 || i >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + i])) >>> 0)))) {
  34607. return false;
  34608. }
  34609. i = i + (1) >> 0;
  34610. }
  34611. return true;
  34612. };
  34613. IPNet.prototype.Contains = function(ip) { return this.$val.Contains(ip); };
  34614. IPNet.ptr.prototype.Network = function() {
  34615. var n;
  34616. n = this;
  34617. return "ip+net";
  34618. };
  34619. IPNet.prototype.Network = function() { return this.$val.Network(); };
  34620. IPNet.ptr.prototype.String = function() {
  34621. var _tuple, l, m, n, nn;
  34622. n = this;
  34623. _tuple = networkNumberAndMask(n);
  34624. nn = _tuple[0];
  34625. m = _tuple[1];
  34626. if (nn === IP.nil || m === IPMask.nil) {
  34627. return "<nil>";
  34628. }
  34629. l = simpleMaskLength(m);
  34630. if (l === -1) {
  34631. return nn.String() + "/" + m.String();
  34632. }
  34633. return nn.String() + "/" + uitoa(((l >>> 0)));
  34634. };
  34635. IPNet.prototype.String = function() { return this.$val.String(); };
  34636. parseIPv4 = function(s) {
  34637. var _tuple, c, i, n, ok, p, s;
  34638. p = arrayType$2.zero();
  34639. i = 0;
  34640. while (true) {
  34641. if (!(i < 4)) { break; }
  34642. if (s.length === 0) {
  34643. return IP.nil;
  34644. }
  34645. if (i > 0) {
  34646. if (!((s.charCodeAt(0) === 46))) {
  34647. return IP.nil;
  34648. }
  34649. s = $substring(s, 1);
  34650. }
  34651. _tuple = dtoi(s);
  34652. n = _tuple[0];
  34653. c = _tuple[1];
  34654. ok = _tuple[2];
  34655. if (!ok || n > 255) {
  34656. return IP.nil;
  34657. }
  34658. s = $substring(s, c);
  34659. ((i < 0 || i >= p.length) ? ($throwRuntimeError("index out of range"), undefined) : p[i] = ((n << 24 >>> 24)));
  34660. i = i + (1) >> 0;
  34661. }
  34662. if (!((s.length === 0))) {
  34663. return IP.nil;
  34664. }
  34665. return IPv4(p[0], p[1], p[2], p[3]);
  34666. };
  34667. parseIPv6 = function(s) {
  34668. var _tuple, c, ellipsis, i, ip, ip4, j, j$1, n, n$1, ok, s, x, x$1, x$2, x$3, x$4;
  34669. ip = IP.nil;
  34670. ip = $makeSlice(IP, 16);
  34671. ellipsis = -1;
  34672. if (s.length >= 2 && (s.charCodeAt(0) === 58) && (s.charCodeAt(1) === 58)) {
  34673. ellipsis = 0;
  34674. s = $substring(s, 2);
  34675. if (s.length === 0) {
  34676. ip = ip;
  34677. return ip;
  34678. }
  34679. }
  34680. i = 0;
  34681. while (true) {
  34682. if (!(i < 16)) { break; }
  34683. _tuple = xtoi(s);
  34684. n = _tuple[0];
  34685. c = _tuple[1];
  34686. ok = _tuple[2];
  34687. if (!ok || n > 65535) {
  34688. ip = IP.nil;
  34689. return ip;
  34690. }
  34691. if (c < s.length && (s.charCodeAt(c) === 46)) {
  34692. if (ellipsis < 0 && !((i === 12))) {
  34693. ip = IP.nil;
  34694. return ip;
  34695. }
  34696. if ((i + 4 >> 0) > 16) {
  34697. ip = IP.nil;
  34698. return ip;
  34699. }
  34700. ip4 = parseIPv4(s);
  34701. if (ip4 === IP.nil) {
  34702. ip = IP.nil;
  34703. return ip;
  34704. }
  34705. ((i < 0 || i >= ip.$length) ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + i] = (12 >= ip4.$length ? ($throwRuntimeError("index out of range"), undefined) : ip4.$array[ip4.$offset + 12]));
  34706. (x = i + 1 >> 0, ((x < 0 || x >= ip.$length) ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + x] = (13 >= ip4.$length ? ($throwRuntimeError("index out of range"), undefined) : ip4.$array[ip4.$offset + 13])));
  34707. (x$1 = i + 2 >> 0, ((x$1 < 0 || x$1 >= ip.$length) ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + x$1] = (14 >= ip4.$length ? ($throwRuntimeError("index out of range"), undefined) : ip4.$array[ip4.$offset + 14])));
  34708. (x$2 = i + 3 >> 0, ((x$2 < 0 || x$2 >= ip.$length) ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + x$2] = (15 >= ip4.$length ? ($throwRuntimeError("index out of range"), undefined) : ip4.$array[ip4.$offset + 15])));
  34709. s = "";
  34710. i = i + (4) >> 0;
  34711. break;
  34712. }
  34713. ((i < 0 || i >= ip.$length) ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + i] = (((n >> 8 >> 0) << 24 >>> 24)));
  34714. (x$3 = i + 1 >> 0, ((x$3 < 0 || x$3 >= ip.$length) ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + x$3] = ((n << 24 >>> 24))));
  34715. i = i + (2) >> 0;
  34716. s = $substring(s, c);
  34717. if (s.length === 0) {
  34718. break;
  34719. }
  34720. if (!((s.charCodeAt(0) === 58)) || (s.length === 1)) {
  34721. ip = IP.nil;
  34722. return ip;
  34723. }
  34724. s = $substring(s, 1);
  34725. if (s.charCodeAt(0) === 58) {
  34726. if (ellipsis >= 0) {
  34727. ip = IP.nil;
  34728. return ip;
  34729. }
  34730. ellipsis = i;
  34731. s = $substring(s, 1);
  34732. if (s.length === 0) {
  34733. break;
  34734. }
  34735. }
  34736. }
  34737. if (!((s.length === 0))) {
  34738. ip = IP.nil;
  34739. return ip;
  34740. }
  34741. if (i < 16) {
  34742. if (ellipsis < 0) {
  34743. ip = IP.nil;
  34744. return ip;
  34745. }
  34746. n$1 = 16 - i >> 0;
  34747. j = i - 1 >> 0;
  34748. while (true) {
  34749. if (!(j >= ellipsis)) { break; }
  34750. (x$4 = j + n$1 >> 0, ((x$4 < 0 || x$4 >= ip.$length) ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + x$4] = ((j < 0 || j >= ip.$length) ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + j])));
  34751. j = j - (1) >> 0;
  34752. }
  34753. j$1 = (ellipsis + n$1 >> 0) - 1 >> 0;
  34754. while (true) {
  34755. if (!(j$1 >= ellipsis)) { break; }
  34756. ((j$1 < 0 || j$1 >= ip.$length) ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + j$1] = 0);
  34757. j$1 = j$1 - (1) >> 0;
  34758. }
  34759. } else if (ellipsis >= 0) {
  34760. ip = IP.nil;
  34761. return ip;
  34762. }
  34763. ip = ip;
  34764. return ip;
  34765. };
  34766. ParseIP = function(s) {
  34767. var _1, i, s;
  34768. i = 0;
  34769. while (true) {
  34770. if (!(i < s.length)) { break; }
  34771. _1 = s.charCodeAt(i);
  34772. if (_1 === (46)) {
  34773. return parseIPv4(s);
  34774. } else if (_1 === (58)) {
  34775. return parseIPv6(s);
  34776. }
  34777. i = i + (1) >> 0;
  34778. }
  34779. return IP.nil;
  34780. };
  34781. $pkg.ParseIP = ParseIP;
  34782. ParseCIDR = function(s) {
  34783. var _tmp, _tmp$1, _tuple, addr, i, ip, iplen, m, mask, n, ok, s;
  34784. i = bytealg.IndexByteString(s, 47);
  34785. if (i < 0) {
  34786. return [IP.nil, ptrType$5.nil, new ParseError.ptr("CIDR address", s)];
  34787. }
  34788. _tmp = $substring(s, 0, i);
  34789. _tmp$1 = $substring(s, (i + 1 >> 0));
  34790. addr = _tmp;
  34791. mask = _tmp$1;
  34792. iplen = 4;
  34793. ip = parseIPv4(addr);
  34794. if (ip === IP.nil) {
  34795. iplen = 16;
  34796. ip = parseIPv6(addr);
  34797. }
  34798. _tuple = dtoi(mask);
  34799. n = _tuple[0];
  34800. i = _tuple[1];
  34801. ok = _tuple[2];
  34802. if (ip === IP.nil || !ok || !((i === mask.length)) || n < 0 || n > ($imul(8, iplen))) {
  34803. return [IP.nil, ptrType$5.nil, new ParseError.ptr("CIDR address", s)];
  34804. }
  34805. m = CIDRMask(n, $imul(8, iplen));
  34806. return [ip, new IPNet.ptr(ip.Mask(m), m), $ifaceNil];
  34807. };
  34808. $pkg.ParseCIDR = ParseCIDR;
  34809. IPAddr.ptr.prototype.Network = function() {
  34810. var a;
  34811. a = this;
  34812. return "ip";
  34813. };
  34814. IPAddr.prototype.Network = function() { return this.$val.Network(); };
  34815. IPAddr.ptr.prototype.String = function() {
  34816. var a, ip;
  34817. a = this;
  34818. if (a === ptrType$9.nil) {
  34819. return "<nil>";
  34820. }
  34821. ip = ipEmptyString(a.IP);
  34822. if (!(a.Zone === "")) {
  34823. return ip + "%" + a.Zone;
  34824. }
  34825. return ip;
  34826. };
  34827. IPAddr.prototype.String = function() { return this.$val.String(); };
  34828. HardwareAddr.prototype.String = function() {
  34829. var _i, _ref, a, b, buf, i;
  34830. a = this;
  34831. if (a.$length === 0) {
  34832. return "";
  34833. }
  34834. buf = $makeSlice(sliceType$1, 0, (($imul(a.$length, 3)) - 1 >> 0));
  34835. _ref = a;
  34836. _i = 0;
  34837. while (true) {
  34838. if (!(_i < _ref.$length)) { break; }
  34839. i = _i;
  34840. b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  34841. if (i > 0) {
  34842. buf = $append(buf, 58);
  34843. }
  34844. buf = $append(buf, "0123456789abcdef".charCodeAt((b >>> 4 << 24 >>> 24)));
  34845. buf = $append(buf, "0123456789abcdef".charCodeAt(((b & 15) >>> 0)));
  34846. _i++;
  34847. }
  34848. return ($bytesToString(buf));
  34849. };
  34850. $ptrType(HardwareAddr).prototype.String = function() { return this.$get().String(); };
  34851. OpError.ptr.prototype.Error = function() {
  34852. var _r$10, _r$11, _r$9, e, s, $s, $r;
  34853. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$9 = $f._r$9; e = $f.e; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  34854. e = this;
  34855. if (e === ptrType$13.nil) {
  34856. $s = -1; return "<nil>";
  34857. }
  34858. s = e.Op;
  34859. if (!(e.Net === "")) {
  34860. s = s + (" " + e.Net);
  34861. }
  34862. /* */ if (!($interfaceIsEqual(e.Source, $ifaceNil))) { $s = 1; continue; }
  34863. /* */ $s = 2; continue;
  34864. /* if (!($interfaceIsEqual(e.Source, $ifaceNil))) { */ case 1:
  34865. _r$9 = e.Source.String(); /* */ $s = 3; case 3: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  34866. s = s + (" " + _r$9);
  34867. /* } */ case 2:
  34868. /* */ if (!($interfaceIsEqual(e.Addr, $ifaceNil))) { $s = 4; continue; }
  34869. /* */ $s = 5; continue;
  34870. /* if (!($interfaceIsEqual(e.Addr, $ifaceNil))) { */ case 4:
  34871. if (!($interfaceIsEqual(e.Source, $ifaceNil))) {
  34872. s = s + ("->");
  34873. } else {
  34874. s = s + (" ");
  34875. }
  34876. _r$10 = e.Addr.String(); /* */ $s = 6; case 6: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
  34877. s = s + (_r$10);
  34878. /* } */ case 5:
  34879. _r$11 = e.Err.Error(); /* */ $s = 7; case 7: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
  34880. s = s + (": " + _r$11);
  34881. $s = -1; return s;
  34882. /* */ } return; } if ($f === undefined) { $f = { $blk: OpError.ptr.prototype.Error }; } $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$9 = _r$9; $f.e = e; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  34883. };
  34884. OpError.prototype.Error = function() { return this.$val.Error(); };
  34885. OpError.ptr.prototype.Timeout = function() {
  34886. var _r$10, _r$9, _tuple, _tuple$1, _tuple$2, _v, _v$1, e, ne, ok, ok$1, ok$2, t, t$1, $s, $r;
  34887. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$10 = $f._r$10; _r$9 = $f._r$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _v = $f._v; _v$1 = $f._v$1; e = $f.e; ne = $f.ne; ok = $f.ok; ok$1 = $f.ok$1; ok$2 = $f.ok$2; t = $f.t; t$1 = $f.t$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  34888. e = this;
  34889. _tuple = $assertType(e.Err, ptrType$31, true);
  34890. ne = _tuple[0];
  34891. ok = _tuple[1];
  34892. /* */ if (ok) { $s = 1; continue; }
  34893. /* */ $s = 2; continue;
  34894. /* if (ok) { */ case 1:
  34895. _tuple$1 = $assertType(ne.Err, timeout, true);
  34896. t = _tuple$1[0];
  34897. ok$1 = _tuple$1[1];
  34898. if (!(ok$1)) { _v = false; $s = 3; continue s; }
  34899. _r$9 = t.Timeout(); /* */ $s = 4; case 4: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  34900. _v = _r$9; case 3:
  34901. $s = -1; return _v;
  34902. /* } */ case 2:
  34903. _tuple$2 = $assertType(e.Err, timeout, true);
  34904. t$1 = _tuple$2[0];
  34905. ok$2 = _tuple$2[1];
  34906. if (!(ok$2)) { _v$1 = false; $s = 5; continue s; }
  34907. _r$10 = t$1.Timeout(); /* */ $s = 6; case 6: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
  34908. _v$1 = _r$10; case 5:
  34909. $s = -1; return _v$1;
  34910. /* */ } return; } if ($f === undefined) { $f = { $blk: OpError.ptr.prototype.Timeout }; } $f._r$10 = _r$10; $f._r$9 = _r$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._v = _v; $f._v$1 = _v$1; $f.e = e; $f.ne = ne; $f.ok = ok; $f.ok$1 = ok$1; $f.ok$2 = ok$2; $f.t = t; $f.t$1 = t$1; $f.$s = $s; $f.$r = $r; return $f;
  34911. };
  34912. OpError.prototype.Timeout = function() { return this.$val.Timeout(); };
  34913. OpError.ptr.prototype.Temporary = function() {
  34914. var _r$10, _r$9, _tuple, _tuple$1, _tuple$2, _v, _v$1, e, ne, ok, ok$1, ok$2, t, t$1, $s, $r;
  34915. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$10 = $f._r$10; _r$9 = $f._r$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _v = $f._v; _v$1 = $f._v$1; e = $f.e; ne = $f.ne; ok = $f.ok; ok$1 = $f.ok$1; ok$2 = $f.ok$2; t = $f.t; t$1 = $f.t$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  34916. e = this;
  34917. if (e.Op === "accept" && isConnError(e.Err)) {
  34918. $s = -1; return true;
  34919. }
  34920. _tuple = $assertType(e.Err, ptrType$31, true);
  34921. ne = _tuple[0];
  34922. ok = _tuple[1];
  34923. /* */ if (ok) { $s = 1; continue; }
  34924. /* */ $s = 2; continue;
  34925. /* if (ok) { */ case 1:
  34926. _tuple$1 = $assertType(ne.Err, temporary, true);
  34927. t = _tuple$1[0];
  34928. ok$1 = _tuple$1[1];
  34929. if (!(ok$1)) { _v = false; $s = 3; continue s; }
  34930. _r$9 = t.Temporary(); /* */ $s = 4; case 4: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  34931. _v = _r$9; case 3:
  34932. $s = -1; return _v;
  34933. /* } */ case 2:
  34934. _tuple$2 = $assertType(e.Err, temporary, true);
  34935. t$1 = _tuple$2[0];
  34936. ok$2 = _tuple$2[1];
  34937. if (!(ok$2)) { _v$1 = false; $s = 5; continue s; }
  34938. _r$10 = t$1.Temporary(); /* */ $s = 6; case 6: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
  34939. _v$1 = _r$10; case 5:
  34940. $s = -1; return _v$1;
  34941. /* */ } return; } if ($f === undefined) { $f = { $blk: OpError.ptr.prototype.Temporary }; } $f._r$10 = _r$10; $f._r$9 = _r$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._v = _v; $f._v$1 = _v$1; $f.e = e; $f.ne = ne; $f.ok = ok; $f.ok$1 = ok$1; $f.ok$2 = ok$2; $f.t = t; $f.t$1 = t$1; $f.$s = $s; $f.$r = $r; return $f;
  34942. };
  34943. OpError.prototype.Temporary = function() { return this.$val.Temporary(); };
  34944. ParseError.ptr.prototype.Error = function() {
  34945. var e;
  34946. e = this;
  34947. return "invalid " + e.Type + ": " + e.Text;
  34948. };
  34949. ParseError.prototype.Error = function() { return this.$val.Error(); };
  34950. AddrError.ptr.prototype.Error = function() {
  34951. var e, s;
  34952. e = this;
  34953. if (e === ptrType$32.nil) {
  34954. return "<nil>";
  34955. }
  34956. s = e.Err;
  34957. if (!(e.Addr === "")) {
  34958. s = "address " + e.Addr + ": " + s;
  34959. }
  34960. return s;
  34961. };
  34962. AddrError.prototype.Error = function() { return this.$val.Error(); };
  34963. AddrError.ptr.prototype.Timeout = function() {
  34964. var e;
  34965. e = this;
  34966. return false;
  34967. };
  34968. AddrError.prototype.Timeout = function() { return this.$val.Timeout(); };
  34969. AddrError.ptr.prototype.Temporary = function() {
  34970. var e;
  34971. e = this;
  34972. return false;
  34973. };
  34974. AddrError.prototype.Temporary = function() { return this.$val.Temporary(); };
  34975. file.ptr.prototype.close = function() {
  34976. var _r$9, f, $s, $r;
  34977. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$9 = $f._r$9; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  34978. f = this;
  34979. _r$9 = f.file.Close(); /* */ $s = 1; case 1: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  34980. _r$9;
  34981. $s = -1; return;
  34982. /* */ } return; } if ($f === undefined) { $f = { $blk: file.ptr.prototype.close }; } $f._r$9 = _r$9; $f.f = f; $f.$s = $s; $f.$r = $r; return $f;
  34983. };
  34984. file.prototype.close = function() { return this.$val.close(); };
  34985. file.ptr.prototype.getLineFromData = function() {
  34986. var data, f, i, n, ok, s;
  34987. s = "";
  34988. ok = false;
  34989. f = this;
  34990. data = f.data;
  34991. i = 0;
  34992. i = 0;
  34993. while (true) {
  34994. if (!(i < data.$length)) { break; }
  34995. if (((i < 0 || i >= data.$length) ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + i]) === 10) {
  34996. s = ($bytesToString($subslice(data, 0, i)));
  34997. ok = true;
  34998. i = i + (1) >> 0;
  34999. n = data.$length - i >> 0;
  35000. $copySlice($subslice(data, 0), $subslice(data, i));
  35001. f.data = $subslice(data, 0, n);
  35002. return [s, ok];
  35003. }
  35004. i = i + (1) >> 0;
  35005. }
  35006. if (f.atEOF && f.data.$length > 0) {
  35007. s = ($bytesToString(data));
  35008. f.data = $subslice(f.data, 0, 0);
  35009. ok = true;
  35010. }
  35011. return [s, ok];
  35012. };
  35013. file.prototype.getLineFromData = function() { return this.$val.getLineFromData(); };
  35014. file.ptr.prototype.readLine = function() {
  35015. var _r$9, _tuple, _tuple$1, _tuple$2, err, f, ln, n, ok, s, $s, $r;
  35016. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$9 = $f._r$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; err = $f.err; f = $f.f; ln = $f.ln; n = $f.n; ok = $f.ok; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  35017. s = "";
  35018. ok = false;
  35019. f = this;
  35020. _tuple = f.getLineFromData();
  35021. s = _tuple[0];
  35022. ok = _tuple[1];
  35023. if (ok) {
  35024. $s = -1; return [s, ok];
  35025. }
  35026. /* */ if (f.data.$length < f.data.$capacity) { $s = 1; continue; }
  35027. /* */ $s = 2; continue;
  35028. /* if (f.data.$length < f.data.$capacity) { */ case 1:
  35029. ln = f.data.$length;
  35030. _r$9 = io.ReadFull(f.file, $subslice(f.data, ln, f.data.$capacity)); /* */ $s = 3; case 3: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  35031. _tuple$1 = _r$9;
  35032. n = _tuple$1[0];
  35033. err = _tuple$1[1];
  35034. if (n >= 0) {
  35035. f.data = $subslice(f.data, 0, (ln + n >> 0));
  35036. }
  35037. if ($interfaceIsEqual(err, io.EOF) || $interfaceIsEqual(err, io.ErrUnexpectedEOF)) {
  35038. f.atEOF = true;
  35039. }
  35040. /* } */ case 2:
  35041. _tuple$2 = f.getLineFromData();
  35042. s = _tuple$2[0];
  35043. ok = _tuple$2[1];
  35044. $s = -1; return [s, ok];
  35045. /* */ } return; } if ($f === undefined) { $f = { $blk: file.ptr.prototype.readLine }; } $f._r$9 = _r$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.err = err; $f.f = f; $f.ln = ln; $f.n = n; $f.ok = ok; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  35046. };
  35047. file.prototype.readLine = function() { return this.$val.readLine(); };
  35048. open = function(name) {
  35049. var _r$9, _tuple, err, fd, name, $s, $r;
  35050. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$9 = $f._r$9; _tuple = $f._tuple; err = $f.err; fd = $f.fd; name = $f.name; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  35051. _r$9 = os.Open(name); /* */ $s = 1; case 1: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  35052. _tuple = _r$9;
  35053. fd = _tuple[0];
  35054. err = _tuple[1];
  35055. if (!($interfaceIsEqual(err, $ifaceNil))) {
  35056. $s = -1; return [ptrType$22.nil, err];
  35057. }
  35058. $s = -1; return [new file.ptr(fd, $makeSlice(sliceType$1, 0, 65536), false), $ifaceNil];
  35059. /* */ } return; } if ($f === undefined) { $f = { $blk: open }; } $f._r$9 = _r$9; $f._tuple = _tuple; $f.err = err; $f.fd = fd; $f.name = name; $f.$s = $s; $f.$r = $r; return $f;
  35060. };
  35061. countAnyByte = function(s, t) {
  35062. var i, n, s, t;
  35063. n = 0;
  35064. i = 0;
  35065. while (true) {
  35066. if (!(i < s.length)) { break; }
  35067. if (bytealg.IndexByteString(t, s.charCodeAt(i)) >= 0) {
  35068. n = n + (1) >> 0;
  35069. }
  35070. i = i + (1) >> 0;
  35071. }
  35072. return n;
  35073. };
  35074. splitAtBytes = function(s, t) {
  35075. var a, i, last$1, n, s, t;
  35076. a = $makeSlice(sliceType, (1 + countAnyByte(s, t) >> 0));
  35077. n = 0;
  35078. last$1 = 0;
  35079. i = 0;
  35080. while (true) {
  35081. if (!(i < s.length)) { break; }
  35082. if (bytealg.IndexByteString(t, s.charCodeAt(i)) >= 0) {
  35083. if (last$1 < i) {
  35084. ((n < 0 || n >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + n] = $substring(s, last$1, i));
  35085. n = n + (1) >> 0;
  35086. }
  35087. last$1 = i + 1 >> 0;
  35088. }
  35089. i = i + (1) >> 0;
  35090. }
  35091. if (last$1 < s.length) {
  35092. ((n < 0 || n >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + n] = $substring(s, last$1));
  35093. n = n + (1) >> 0;
  35094. }
  35095. return $subslice(a, 0, n);
  35096. };
  35097. dtoi = function(s) {
  35098. var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, i, n, ok, s;
  35099. n = 0;
  35100. i = 0;
  35101. ok = false;
  35102. n = 0;
  35103. i = 0;
  35104. while (true) {
  35105. if (!(i < s.length && 48 <= s.charCodeAt(i) && s.charCodeAt(i) <= 57)) { break; }
  35106. n = ($imul(n, 10)) + (((s.charCodeAt(i) - 48 << 24 >>> 24) >> 0)) >> 0;
  35107. if (n >= 16777215) {
  35108. _tmp = 16777215;
  35109. _tmp$1 = i;
  35110. _tmp$2 = false;
  35111. n = _tmp;
  35112. i = _tmp$1;
  35113. ok = _tmp$2;
  35114. return [n, i, ok];
  35115. }
  35116. i = i + (1) >> 0;
  35117. }
  35118. if (i === 0) {
  35119. _tmp$3 = 0;
  35120. _tmp$4 = 0;
  35121. _tmp$5 = false;
  35122. n = _tmp$3;
  35123. i = _tmp$4;
  35124. ok = _tmp$5;
  35125. return [n, i, ok];
  35126. }
  35127. _tmp$6 = n;
  35128. _tmp$7 = i;
  35129. _tmp$8 = true;
  35130. n = _tmp$6;
  35131. i = _tmp$7;
  35132. ok = _tmp$8;
  35133. return [n, i, ok];
  35134. };
  35135. xtoi = function(s) {
  35136. var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, i, n, ok, s;
  35137. n = 0;
  35138. i = 0;
  35139. ok = false;
  35140. n = 0;
  35141. i = 0;
  35142. while (true) {
  35143. if (!(i < s.length)) { break; }
  35144. if (48 <= s.charCodeAt(i) && s.charCodeAt(i) <= 57) {
  35145. n = $imul(n, (16));
  35146. n = n + ((((s.charCodeAt(i) - 48 << 24 >>> 24) >> 0))) >> 0;
  35147. } else if (97 <= s.charCodeAt(i) && s.charCodeAt(i) <= 102) {
  35148. n = $imul(n, (16));
  35149. n = n + (((((s.charCodeAt(i) - 97 << 24 >>> 24) >> 0)) + 10 >> 0)) >> 0;
  35150. } else if (65 <= s.charCodeAt(i) && s.charCodeAt(i) <= 70) {
  35151. n = $imul(n, (16));
  35152. n = n + (((((s.charCodeAt(i) - 65 << 24 >>> 24) >> 0)) + 10 >> 0)) >> 0;
  35153. } else {
  35154. break;
  35155. }
  35156. if (n >= 16777215) {
  35157. _tmp = 0;
  35158. _tmp$1 = i;
  35159. _tmp$2 = false;
  35160. n = _tmp;
  35161. i = _tmp$1;
  35162. ok = _tmp$2;
  35163. return [n, i, ok];
  35164. }
  35165. i = i + (1) >> 0;
  35166. }
  35167. if (i === 0) {
  35168. _tmp$3 = 0;
  35169. _tmp$4 = i;
  35170. _tmp$5 = false;
  35171. n = _tmp$3;
  35172. i = _tmp$4;
  35173. ok = _tmp$5;
  35174. return [n, i, ok];
  35175. }
  35176. _tmp$6 = n;
  35177. _tmp$7 = i;
  35178. _tmp$8 = true;
  35179. n = _tmp$6;
  35180. i = _tmp$7;
  35181. ok = _tmp$8;
  35182. return [n, i, ok];
  35183. };
  35184. xtoi2 = function(s, e) {
  35185. var _tuple, e, ei, n, ok, s;
  35186. if (s.length > 2 && !((s.charCodeAt(2) === e))) {
  35187. return [0, false];
  35188. }
  35189. _tuple = xtoi($substring(s, 0, 2));
  35190. n = _tuple[0];
  35191. ei = _tuple[1];
  35192. ok = _tuple[2];
  35193. return [((n << 24 >>> 24)), ok && (ei === 2)];
  35194. };
  35195. uitoa = function(val) {
  35196. var _q, buf, i, q, val;
  35197. if (val === 0) {
  35198. return "0";
  35199. }
  35200. buf = arrayType$6.zero();
  35201. i = 19;
  35202. while (true) {
  35203. if (!(val >= 10)) { break; }
  35204. q = (_q = val / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"));
  35205. ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = ((((48 + val >>> 0) - (q * 10 >>> 0) >>> 0) << 24 >>> 24)));
  35206. i = i - (1) >> 0;
  35207. val = q;
  35208. }
  35209. ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = (((48 + val >>> 0) << 24 >>> 24)));
  35210. return ($bytesToString($subslice(new sliceType$1(buf), i)));
  35211. };
  35212. appendHex = function(dst, i) {
  35213. var dst, i, j, v, y;
  35214. if (i === 0) {
  35215. return $append(dst, 48);
  35216. }
  35217. j = 7;
  35218. while (true) {
  35219. if (!(j >= 0)) { break; }
  35220. v = (y = ((($imul(j, 4)) >>> 0)), y < 32 ? (i >>> y) : 0) >>> 0;
  35221. if (v > 0) {
  35222. dst = $append(dst, "0123456789abcdef".charCodeAt(((v & 15) >>> 0)));
  35223. }
  35224. j = j - (1) >> 0;
  35225. }
  35226. return dst;
  35227. };
  35228. policyTable.methods = [{prop: "Classify", name: "Classify", pkg: "", typ: $funcType([IP], [policyTableEntry], false)}];
  35229. byMaskLength.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}];
  35230. ptrType$23.methods = [{prop: "Addrs", name: "Addrs", pkg: "", typ: $funcType([], [sliceType$7, $error], false)}, {prop: "MulticastAddrs", name: "MulticastAddrs", pkg: "", typ: $funcType([], [sliceType$7, $error], false)}];
  35231. Flags.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
  35232. ptrType$48.methods = [{prop: "update", name: "update", pkg: "net", typ: $funcType([sliceType$8, $Bool], [$Bool], false)}, {prop: "name", name: "name", pkg: "net", typ: $funcType([$Int], [$String], false)}, {prop: "index", name: "index", pkg: "net", typ: $funcType([$String], [$Int], false)}];
  35233. IP.methods = [{prop: "IsUnspecified", name: "IsUnspecified", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsLoopback", name: "IsLoopback", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsMulticast", name: "IsMulticast", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsInterfaceLocalMulticast", name: "IsInterfaceLocalMulticast", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsLinkLocalMulticast", name: "IsLinkLocalMulticast", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsLinkLocalUnicast", name: "IsLinkLocalUnicast", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsGlobalUnicast", name: "IsGlobalUnicast", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "To4", name: "To4", pkg: "", typ: $funcType([], [IP], false)}, {prop: "To16", name: "To16", pkg: "", typ: $funcType([], [IP], false)}, {prop: "DefaultMask", name: "DefaultMask", pkg: "", typ: $funcType([], [IPMask], false)}, {prop: "Mask", name: "Mask", pkg: "", typ: $funcType([IPMask], [IP], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([IP], [$Bool], false)}, {prop: "matchAddrFamily", name: "matchAddrFamily", pkg: "net", typ: $funcType([IP], [$Bool], false)}];
  35234. ptrType$49.methods = [{prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$1], [$error], false)}];
  35235. IPMask.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int, $Int], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
  35236. ptrType$5.methods = [{prop: "Contains", name: "Contains", pkg: "", typ: $funcType([IP], [$Bool], false)}, {prop: "Network", name: "Network", pkg: "", typ: $funcType([], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
  35237. ptrType$9.methods = [{prop: "Network", name: "Network", pkg: "", typ: $funcType([], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "isWildcard", name: "isWildcard", pkg: "net", typ: $funcType([], [$Bool], false)}, {prop: "opAddr", name: "opAddr", pkg: "net", typ: $funcType([], [Addr], false)}, {prop: "family", name: "family", pkg: "net", typ: $funcType([], [$Int], false)}, {prop: "sockaddr", name: "sockaddr", pkg: "net", typ: $funcType([$Int], [syscall.Sockaddr, $error], false)}, {prop: "toLocal", name: "toLocal", pkg: "net", typ: $funcType([$String], [sockaddr], false)}];
  35238. HardwareAddr.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
  35239. ptrType$13.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}];
  35240. ptrType$52.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
  35241. ptrType$32.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}];
  35242. ptrType$22.methods = [{prop: "close", name: "close", pkg: "net", typ: $funcType([], [], false)}, {prop: "getLineFromData", name: "getLineFromData", pkg: "net", typ: $funcType([], [$String, $Bool], false)}, {prop: "readLine", name: "readLine", pkg: "net", typ: $funcType([], [$String, $Bool], false)}];
  35243. policyTableEntry.init("", [{prop: "Prefix", name: "Prefix", embedded: false, exported: true, typ: ptrType$5, tag: ""}, {prop: "Precedence", name: "Precedence", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Label", name: "Label", embedded: false, exported: true, typ: $Uint8, tag: ""}]);
  35244. policyTable.init(policyTableEntry);
  35245. byMaskLength.init(policyTableEntry);
  35246. Interface.init("", [{prop: "Index", name: "Index", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "MTU", name: "MTU", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "HardwareAddr", name: "HardwareAddr", embedded: false, exported: true, typ: HardwareAddr, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: Flags, tag: ""}]);
  35247. ipv6ZoneCache.init("net", [{prop: "RWMutex", name: "RWMutex", embedded: true, exported: true, typ: sync.RWMutex, tag: ""}, {prop: "lastFetched", name: "lastFetched", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "toIndex", name: "toIndex", embedded: false, exported: false, typ: mapType$1, tag: ""}, {prop: "toName", name: "toName", embedded: false, exported: false, typ: mapType$2, tag: ""}]);
  35248. IP.init($Uint8);
  35249. IPMask.init($Uint8);
  35250. IPNet.init("", [{prop: "IP", name: "IP", embedded: false, exported: true, typ: IP, tag: ""}, {prop: "Mask", name: "Mask", embedded: false, exported: true, typ: IPMask, tag: ""}]);
  35251. IPAddr.init("", [{prop: "IP", name: "IP", embedded: false, exported: true, typ: IP, tag: ""}, {prop: "Zone", name: "Zone", embedded: false, exported: true, typ: $String, tag: ""}]);
  35252. HardwareAddr.init($Uint8);
  35253. Addr.init([{prop: "Network", name: "Network", pkg: "", typ: $funcType([], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]);
  35254. OpError.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Net", name: "Net", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Source", name: "Source", embedded: false, exported: true, typ: Addr, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: Addr, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]);
  35255. timeout.init([{prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]);
  35256. temporary.init([{prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]);
  35257. ParseError.init("", [{prop: "Type", name: "Type", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Text", name: "Text", embedded: false, exported: true, typ: $String, tag: ""}]);
  35258. AddrError.init("", [{prop: "Err", name: "Err", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: $String, tag: ""}]);
  35259. file.init("net", [{prop: "file", name: "file", embedded: false, exported: false, typ: ptrType$18, tag: ""}, {prop: "data", name: "data", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "atEOF", name: "atEOF", embedded: false, exported: false, typ: $Bool, tag: ""}]);
  35260. sockaddr.init([{prop: "Network", name: "Network", pkg: "", typ: $funcType([], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "family", name: "family", pkg: "net", typ: $funcType([], [$Int], false)}, {prop: "isWildcard", name: "isWildcard", pkg: "net", typ: $funcType([], [$Bool], false)}, {prop: "sockaddr", name: "sockaddr", pkg: "net", typ: $funcType([$Int], [syscall.Sockaddr, $error], false)}, {prop: "toLocal", name: "toLocal", pkg: "net", typ: $funcType([$String], [sockaddr], false)}]);
  35261. $init = function() {
  35262. $pkg.$init = function() {};
  35263. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  35264. $r = context.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  35265. $r = errors.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  35266. $r = js.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  35267. $r = bytealg.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  35268. $r = nettrace.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  35269. $r = poll.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  35270. $r = singleflight.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  35271. $r = dnsmessage.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  35272. $r = io.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  35273. $r = rand.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  35274. $r = os.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  35275. $r = runtime.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  35276. $r = sort.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  35277. $r = sync.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  35278. $r = atomic.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  35279. $r = syscall.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  35280. $r = time.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  35281. netGo = false;
  35282. errLameReferral = errors.New("lame referral");
  35283. errCannotUnmarshalDNSMessage = errors.New("cannot unmarshal DNS message");
  35284. errCannotMarshalDNSMessage = errors.New("cannot marshal DNS message");
  35285. errServerMisbehaving = errors.New("server misbehaving");
  35286. errInvalidDNSResponse = errors.New("invalid DNS response");
  35287. errNoAnswerFromDNSServer = errors.New("no answer from DNS server");
  35288. errServerTemporarlyMisbehaving = errors.New("server misbehaving");
  35289. testHookLookupIP = (function $b(ctx, fn, network, host) {
  35290. var _r, ctx, fn, host, network, $s, $r;
  35291. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; ctx = $f.ctx; fn = $f.fn; host = $f.host; network = $f.network; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  35292. _r = fn(ctx, network, host); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  35293. $s = -1; return _r;
  35294. /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r = _r; $f.ctx = ctx; $f.fn = fn; $f.host = host; $f.network = network; $f.$s = $s; $f.$r = $r; return $f;
  35295. });
  35296. errInvalidInterface = errors.New("invalid network interface");
  35297. errInvalidInterfaceIndex = errors.New("invalid network interface index");
  35298. errInvalidInterfaceName = errors.New("invalid network interface name");
  35299. errNoSuchInterface = errors.New("no such network interface");
  35300. errNoSuchMulticastInterface = errors.New("no such multicast network interface");
  35301. flagNames = new sliceType(["up", "broadcast", "loopback", "pointtopoint", "multicast"]);
  35302. zoneCache = new ipv6ZoneCache.ptr(new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, 0, 0), new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), {}, {});
  35303. v4InV6Prefix = new sliceType$1([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255]);
  35304. $pkg.IPv4bcast = IPv4(255, 255, 255, 255);
  35305. $pkg.IPv4allsys = IPv4(224, 0, 0, 1);
  35306. $pkg.IPv4allrouter = IPv4(224, 0, 0, 2);
  35307. $pkg.IPv4zero = IPv4(0, 0, 0, 0);
  35308. $pkg.IPv6unspecified = new IP([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
  35309. $pkg.IPv6loopback = new IP([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]);
  35310. classAMask = IPv4Mask(255, 0, 0, 0);
  35311. classBMask = IPv4Mask(255, 255, 0, 0);
  35312. classCMask = IPv4Mask(255, 255, 255, 0);
  35313. errNoSuitableAddress = errors.New("no suitable address found");
  35314. errMissingAddress = errors.New("missing address");
  35315. errCanceled = errors.New("operation was canceled");
  35316. $pkg.ErrWriteToConnected = errors.New("use of WriteTo with pre-connected connection");
  35317. aLongTimeAgo = $clone(time.Unix(new $Int64(0, 1), new $Int64(0, 0)), time.Time);
  35318. errNoSuchHost = errors.New("no such host");
  35319. _r = mustCIDR("::1/128"); /* */ $s = 18; case 18: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  35320. _r$1 = mustCIDR("::/0"); /* */ $s = 19; case 19: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  35321. _r$2 = mustCIDR("::ffff:0:0/96"); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  35322. _r$3 = mustCIDR("2002::/16"); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  35323. _r$4 = mustCIDR("2001::/32"); /* */ $s = 22; case 22: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  35324. _r$5 = mustCIDR("fc00::/7"); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  35325. _r$6 = mustCIDR("::/96"); /* */ $s = 24; case 24: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  35326. _r$7 = mustCIDR("fec0::/10"); /* */ $s = 25; case 25: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
  35327. _r$8 = mustCIDR("3ffe::/16"); /* */ $s = 26; case 26: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
  35328. rfc6724policyTable = new policyTable([new policyTableEntry.ptr(_r, 50, 0), new policyTableEntry.ptr(_r$1, 40, 1), new policyTableEntry.ptr(_r$2, 35, 4), new policyTableEntry.ptr(_r$3, 30, 2), new policyTableEntry.ptr(_r$4, 5, 5), new policyTableEntry.ptr(_r$5, 3, 13), new policyTableEntry.ptr(_r$6, 1, 3), new policyTableEntry.ptr(_r$7, 1, 11), new policyTableEntry.ptr(_r$8, 1, 12)]);
  35329. $r = init(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  35330. init$1();
  35331. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  35332. };
  35333. $pkg.$init = $init;
  35334. return $pkg;
  35335. })();
  35336. $packages["net/url"] = (function() {
  35337. var $pkg = {}, $init, errors, fmt, sort, strconv, strings, Error, timeout, temporary, EscapeError, InvalidHostError, URL, Userinfo, Values, sliceType, arrayType, ptrType, ptrType$1, sliceType$1, ptrType$2, sliceType$2, ptrType$3, ishex, unhex, shouldEscape, QueryUnescape, unescape, QueryEscape, escape, User, UserPassword, getscheme, split, Parse, parse, parseAuthority, parseHost, validEncodedPath, validOptionalPort, ParseQuery, parseQuery, resolvePath, splitHostPort, validUserinfo, stringContainsCTLByte;
  35338. errors = $packages["errors"];
  35339. fmt = $packages["fmt"];
  35340. sort = $packages["sort"];
  35341. strconv = $packages["strconv"];
  35342. strings = $packages["strings"];
  35343. Error = $pkg.Error = $newType(0, $kindStruct, "url.Error", true, "net/url", true, function(Op_, URL_, Err_) {
  35344. this.$val = this;
  35345. if (arguments.length === 0) {
  35346. this.Op = "";
  35347. this.URL = "";
  35348. this.Err = $ifaceNil;
  35349. return;
  35350. }
  35351. this.Op = Op_;
  35352. this.URL = URL_;
  35353. this.Err = Err_;
  35354. });
  35355. timeout = $pkg.timeout = $newType(8, $kindInterface, "url.timeout", true, "net/url", false, null);
  35356. temporary = $pkg.temporary = $newType(8, $kindInterface, "url.temporary", true, "net/url", false, null);
  35357. EscapeError = $pkg.EscapeError = $newType(8, $kindString, "url.EscapeError", true, "net/url", true, null);
  35358. InvalidHostError = $pkg.InvalidHostError = $newType(8, $kindString, "url.InvalidHostError", true, "net/url", true, null);
  35359. URL = $pkg.URL = $newType(0, $kindStruct, "url.URL", true, "net/url", true, function(Scheme_, Opaque_, User_, Host_, Path_, RawPath_, ForceQuery_, RawQuery_, Fragment_) {
  35360. this.$val = this;
  35361. if (arguments.length === 0) {
  35362. this.Scheme = "";
  35363. this.Opaque = "";
  35364. this.User = ptrType.nil;
  35365. this.Host = "";
  35366. this.Path = "";
  35367. this.RawPath = "";
  35368. this.ForceQuery = false;
  35369. this.RawQuery = "";
  35370. this.Fragment = "";
  35371. return;
  35372. }
  35373. this.Scheme = Scheme_;
  35374. this.Opaque = Opaque_;
  35375. this.User = User_;
  35376. this.Host = Host_;
  35377. this.Path = Path_;
  35378. this.RawPath = RawPath_;
  35379. this.ForceQuery = ForceQuery_;
  35380. this.RawQuery = RawQuery_;
  35381. this.Fragment = Fragment_;
  35382. });
  35383. Userinfo = $pkg.Userinfo = $newType(0, $kindStruct, "url.Userinfo", true, "net/url", true, function(username_, password_, passwordSet_) {
  35384. this.$val = this;
  35385. if (arguments.length === 0) {
  35386. this.username = "";
  35387. this.password = "";
  35388. this.passwordSet = false;
  35389. return;
  35390. }
  35391. this.username = username_;
  35392. this.password = password_;
  35393. this.passwordSet = passwordSet_;
  35394. });
  35395. Values = $pkg.Values = $newType(4, $kindMap, "url.Values", true, "net/url", true, null);
  35396. sliceType = $sliceType($Uint8);
  35397. arrayType = $arrayType($Uint8, 64);
  35398. ptrType = $ptrType(Userinfo);
  35399. ptrType$1 = $ptrType(URL);
  35400. sliceType$1 = $sliceType($emptyInterface);
  35401. ptrType$2 = $ptrType(strings.Builder);
  35402. sliceType$2 = $sliceType($String);
  35403. ptrType$3 = $ptrType(Error);
  35404. Error.ptr.prototype.Error = function() {
  35405. var _r, e, $s, $r;
  35406. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  35407. e = this;
  35408. _r = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  35409. $s = -1; return e.Op + " " + e.URL + ": " + _r;
  35410. /* */ } return; } if ($f === undefined) { $f = { $blk: Error.ptr.prototype.Error }; } $f._r = _r; $f.e = e; $f.$s = $s; $f.$r = $r; return $f;
  35411. };
  35412. Error.prototype.Error = function() { return this.$val.Error(); };
  35413. Error.ptr.prototype.Timeout = function() {
  35414. var _r, _tuple, _v, e, ok, t, $s, $r;
  35415. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; _v = $f._v; e = $f.e; ok = $f.ok; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  35416. e = this;
  35417. _tuple = $assertType(e.Err, timeout, true);
  35418. t = _tuple[0];
  35419. ok = _tuple[1];
  35420. if (!(ok)) { _v = false; $s = 1; continue s; }
  35421. _r = t.Timeout(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  35422. _v = _r; case 1:
  35423. $s = -1; return _v;
  35424. /* */ } return; } if ($f === undefined) { $f = { $blk: Error.ptr.prototype.Timeout }; } $f._r = _r; $f._tuple = _tuple; $f._v = _v; $f.e = e; $f.ok = ok; $f.t = t; $f.$s = $s; $f.$r = $r; return $f;
  35425. };
  35426. Error.prototype.Timeout = function() { return this.$val.Timeout(); };
  35427. Error.ptr.prototype.Temporary = function() {
  35428. var _r, _tuple, _v, e, ok, t, $s, $r;
  35429. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; _v = $f._v; e = $f.e; ok = $f.ok; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  35430. e = this;
  35431. _tuple = $assertType(e.Err, temporary, true);
  35432. t = _tuple[0];
  35433. ok = _tuple[1];
  35434. if (!(ok)) { _v = false; $s = 1; continue s; }
  35435. _r = t.Temporary(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  35436. _v = _r; case 1:
  35437. $s = -1; return _v;
  35438. /* */ } return; } if ($f === undefined) { $f = { $blk: Error.ptr.prototype.Temporary }; } $f._r = _r; $f._tuple = _tuple; $f._v = _v; $f.e = e; $f.ok = ok; $f.t = t; $f.$s = $s; $f.$r = $r; return $f;
  35439. };
  35440. Error.prototype.Temporary = function() { return this.$val.Temporary(); };
  35441. ishex = function(c) {
  35442. var c;
  35443. if (48 <= c && c <= 57) {
  35444. return true;
  35445. } else if (97 <= c && c <= 102) {
  35446. return true;
  35447. } else if (65 <= c && c <= 70) {
  35448. return true;
  35449. }
  35450. return false;
  35451. };
  35452. unhex = function(c) {
  35453. var c;
  35454. if (48 <= c && c <= 57) {
  35455. return c - 48 << 24 >>> 24;
  35456. } else if (97 <= c && c <= 102) {
  35457. return (c - 97 << 24 >>> 24) + 10 << 24 >>> 24;
  35458. } else if (65 <= c && c <= 70) {
  35459. return (c - 65 << 24 >>> 24) + 10 << 24 >>> 24;
  35460. }
  35461. return 0;
  35462. };
  35463. EscapeError.prototype.Error = function() {
  35464. var e;
  35465. e = this.$val;
  35466. return "invalid URL escape " + strconv.Quote((e));
  35467. };
  35468. $ptrType(EscapeError).prototype.Error = function() { return new EscapeError(this.$get()).Error(); };
  35469. InvalidHostError.prototype.Error = function() {
  35470. var e;
  35471. e = this.$val;
  35472. return "invalid character " + strconv.Quote((e)) + " in host name";
  35473. };
  35474. $ptrType(InvalidHostError).prototype.Error = function() { return new InvalidHostError(this.$get()).Error(); };
  35475. shouldEscape = function(c, mode) {
  35476. var _1, _2, _3, _4, c, mode;
  35477. if (65 <= c && c <= 90 || 97 <= c && c <= 122 || 48 <= c && c <= 57) {
  35478. return false;
  35479. }
  35480. if ((mode === 3) || (mode === 4)) {
  35481. _1 = c;
  35482. if ((_1 === (33)) || (_1 === (36)) || (_1 === (38)) || (_1 === (39)) || (_1 === (40)) || (_1 === (41)) || (_1 === (42)) || (_1 === (43)) || (_1 === (44)) || (_1 === (59)) || (_1 === (61)) || (_1 === (58)) || (_1 === (91)) || (_1 === (93)) || (_1 === (60)) || (_1 === (62)) || (_1 === (34))) {
  35483. return false;
  35484. }
  35485. }
  35486. _2 = c;
  35487. if ((_2 === (45)) || (_2 === (95)) || (_2 === (46)) || (_2 === (126))) {
  35488. return false;
  35489. } else if ((_2 === (36)) || (_2 === (38)) || (_2 === (43)) || (_2 === (44)) || (_2 === (47)) || (_2 === (58)) || (_2 === (59)) || (_2 === (61)) || (_2 === (63)) || (_2 === (64))) {
  35490. _3 = mode;
  35491. if (_3 === (1)) {
  35492. return c === 63;
  35493. } else if (_3 === (2)) {
  35494. return (c === 47) || (c === 59) || (c === 44) || (c === 63);
  35495. } else if (_3 === (5)) {
  35496. return (c === 64) || (c === 47) || (c === 63) || (c === 58);
  35497. } else if (_3 === (6)) {
  35498. return true;
  35499. } else if (_3 === (7)) {
  35500. return false;
  35501. }
  35502. }
  35503. if (mode === 7) {
  35504. _4 = c;
  35505. if ((_4 === (33)) || (_4 === (40)) || (_4 === (41)) || (_4 === (42))) {
  35506. return false;
  35507. }
  35508. }
  35509. return true;
  35510. };
  35511. QueryUnescape = function(s) {
  35512. var s;
  35513. return unescape(s, 6);
  35514. };
  35515. $pkg.QueryUnescape = QueryUnescape;
  35516. unescape = function(s, mode) {
  35517. var _1, _2, hasPlus, i, i$1, j, mode, n, s, t, v;
  35518. n = 0;
  35519. hasPlus = false;
  35520. i = 0;
  35521. while (true) {
  35522. if (!(i < s.length)) { break; }
  35523. _1 = s.charCodeAt(i);
  35524. if (_1 === (37)) {
  35525. n = n + (1) >> 0;
  35526. if ((i + 2 >> 0) >= s.length || !ishex(s.charCodeAt((i + 1 >> 0))) || !ishex(s.charCodeAt((i + 2 >> 0)))) {
  35527. s = $substring(s, i);
  35528. if (s.length > 3) {
  35529. s = $substring(s, 0, 3);
  35530. }
  35531. return ["", new EscapeError((s))];
  35532. }
  35533. if ((mode === 3) && unhex(s.charCodeAt((i + 1 >> 0))) < 8 && !($substring(s, i, (i + 3 >> 0)) === "%25")) {
  35534. return ["", new EscapeError(($substring(s, i, (i + 3 >> 0))))];
  35535. }
  35536. if (mode === 4) {
  35537. v = ((unhex(s.charCodeAt((i + 1 >> 0))) << 4 << 24 >>> 24) | unhex(s.charCodeAt((i + 2 >> 0)))) >>> 0;
  35538. if (!($substring(s, i, (i + 3 >> 0)) === "%25") && !((v === 32)) && shouldEscape(v, 3)) {
  35539. return ["", new EscapeError(($substring(s, i, (i + 3 >> 0))))];
  35540. }
  35541. }
  35542. i = i + (3) >> 0;
  35543. } else if (_1 === (43)) {
  35544. hasPlus = mode === 6;
  35545. i = i + (1) >> 0;
  35546. } else {
  35547. if (((mode === 3) || (mode === 4)) && s.charCodeAt(i) < 128 && shouldEscape(s.charCodeAt(i), mode)) {
  35548. return ["", new InvalidHostError(($substring(s, i, (i + 1 >> 0))))];
  35549. }
  35550. i = i + (1) >> 0;
  35551. }
  35552. }
  35553. if ((n === 0) && !hasPlus) {
  35554. return [s, $ifaceNil];
  35555. }
  35556. t = $makeSlice(sliceType, (s.length - ($imul(2, n)) >> 0));
  35557. j = 0;
  35558. i$1 = 0;
  35559. while (true) {
  35560. if (!(i$1 < s.length)) { break; }
  35561. _2 = s.charCodeAt(i$1);
  35562. if (_2 === (37)) {
  35563. ((j < 0 || j >= t.$length) ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + j] = (((unhex(s.charCodeAt((i$1 + 1 >> 0))) << 4 << 24 >>> 24) | unhex(s.charCodeAt((i$1 + 2 >> 0)))) >>> 0));
  35564. j = j + (1) >> 0;
  35565. i$1 = i$1 + (3) >> 0;
  35566. } else if (_2 === (43)) {
  35567. if (mode === 6) {
  35568. ((j < 0 || j >= t.$length) ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + j] = 32);
  35569. } else {
  35570. ((j < 0 || j >= t.$length) ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + j] = 43);
  35571. }
  35572. j = j + (1) >> 0;
  35573. i$1 = i$1 + (1) >> 0;
  35574. } else {
  35575. ((j < 0 || j >= t.$length) ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + j] = s.charCodeAt(i$1));
  35576. j = j + (1) >> 0;
  35577. i$1 = i$1 + (1) >> 0;
  35578. }
  35579. }
  35580. return [($bytesToString(t)), $ifaceNil];
  35581. };
  35582. QueryEscape = function(s) {
  35583. var s;
  35584. return escape(s, 6);
  35585. };
  35586. $pkg.QueryEscape = QueryEscape;
  35587. escape = function(s, mode) {
  35588. var _tmp, _tmp$1, buf, c, c$1, hexCount, i, i$1, i$2, j, mode, required, s, spaceCount, t, x, x$1;
  35589. _tmp = 0;
  35590. _tmp$1 = 0;
  35591. spaceCount = _tmp;
  35592. hexCount = _tmp$1;
  35593. i = 0;
  35594. while (true) {
  35595. if (!(i < s.length)) { break; }
  35596. c = s.charCodeAt(i);
  35597. if (shouldEscape(c, mode)) {
  35598. if ((c === 32) && (mode === 6)) {
  35599. spaceCount = spaceCount + (1) >> 0;
  35600. } else {
  35601. hexCount = hexCount + (1) >> 0;
  35602. }
  35603. }
  35604. i = i + (1) >> 0;
  35605. }
  35606. if ((spaceCount === 0) && (hexCount === 0)) {
  35607. return s;
  35608. }
  35609. buf = arrayType.zero();
  35610. t = sliceType.nil;
  35611. required = s.length + ($imul(2, hexCount)) >> 0;
  35612. if (required <= 64) {
  35613. t = $subslice(new sliceType(buf), 0, required);
  35614. } else {
  35615. t = $makeSlice(sliceType, required);
  35616. }
  35617. if (hexCount === 0) {
  35618. $copyString(t, s);
  35619. i$1 = 0;
  35620. while (true) {
  35621. if (!(i$1 < s.length)) { break; }
  35622. if (s.charCodeAt(i$1) === 32) {
  35623. ((i$1 < 0 || i$1 >= t.$length) ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + i$1] = 43);
  35624. }
  35625. i$1 = i$1 + (1) >> 0;
  35626. }
  35627. return ($bytesToString(t));
  35628. }
  35629. j = 0;
  35630. i$2 = 0;
  35631. while (true) {
  35632. if (!(i$2 < s.length)) { break; }
  35633. c$1 = s.charCodeAt(i$2);
  35634. if ((c$1 === 32) && (mode === 6)) {
  35635. ((j < 0 || j >= t.$length) ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + j] = 43);
  35636. j = j + (1) >> 0;
  35637. } else if (shouldEscape(c$1, mode)) {
  35638. ((j < 0 || j >= t.$length) ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + j] = 37);
  35639. (x = j + 1 >> 0, ((x < 0 || x >= t.$length) ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + x] = "0123456789ABCDEF".charCodeAt((c$1 >>> 4 << 24 >>> 24))));
  35640. (x$1 = j + 2 >> 0, ((x$1 < 0 || x$1 >= t.$length) ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + x$1] = "0123456789ABCDEF".charCodeAt(((c$1 & 15) >>> 0))));
  35641. j = j + (3) >> 0;
  35642. } else {
  35643. ((j < 0 || j >= t.$length) ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + j] = s.charCodeAt(i$2));
  35644. j = j + (1) >> 0;
  35645. }
  35646. i$2 = i$2 + (1) >> 0;
  35647. }
  35648. return ($bytesToString(t));
  35649. };
  35650. User = function(username) {
  35651. var username;
  35652. return new Userinfo.ptr(username, "", false);
  35653. };
  35654. $pkg.User = User;
  35655. UserPassword = function(username, password) {
  35656. var password, username;
  35657. return new Userinfo.ptr(username, password, true);
  35658. };
  35659. $pkg.UserPassword = UserPassword;
  35660. Userinfo.ptr.prototype.Username = function() {
  35661. var u;
  35662. u = this;
  35663. if (u === ptrType.nil) {
  35664. return "";
  35665. }
  35666. return u.username;
  35667. };
  35668. Userinfo.prototype.Username = function() { return this.$val.Username(); };
  35669. Userinfo.ptr.prototype.Password = function() {
  35670. var u;
  35671. u = this;
  35672. if (u === ptrType.nil) {
  35673. return ["", false];
  35674. }
  35675. return [u.password, u.passwordSet];
  35676. };
  35677. Userinfo.prototype.Password = function() { return this.$val.Password(); };
  35678. Userinfo.ptr.prototype.String = function() {
  35679. var s, u;
  35680. u = this;
  35681. if (u === ptrType.nil) {
  35682. return "";
  35683. }
  35684. s = escape(u.username, 5);
  35685. if (u.passwordSet) {
  35686. s = s + (":" + escape(u.password, 5));
  35687. }
  35688. return s;
  35689. };
  35690. Userinfo.prototype.String = function() { return this.$val.String(); };
  35691. getscheme = function(rawurl) {
  35692. var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, c, err, i, path, rawurl, scheme;
  35693. scheme = "";
  35694. path = "";
  35695. err = $ifaceNil;
  35696. i = 0;
  35697. while (true) {
  35698. if (!(i < rawurl.length)) { break; }
  35699. c = rawurl.charCodeAt(i);
  35700. if (97 <= c && c <= 122 || 65 <= c && c <= 90) {
  35701. } else if (48 <= c && c <= 57 || (c === 43) || (c === 45) || (c === 46)) {
  35702. if (i === 0) {
  35703. _tmp = "";
  35704. _tmp$1 = rawurl;
  35705. _tmp$2 = $ifaceNil;
  35706. scheme = _tmp;
  35707. path = _tmp$1;
  35708. err = _tmp$2;
  35709. return [scheme, path, err];
  35710. }
  35711. } else if ((c === 58)) {
  35712. if (i === 0) {
  35713. _tmp$3 = "";
  35714. _tmp$4 = "";
  35715. _tmp$5 = errors.New("missing protocol scheme");
  35716. scheme = _tmp$3;
  35717. path = _tmp$4;
  35718. err = _tmp$5;
  35719. return [scheme, path, err];
  35720. }
  35721. _tmp$6 = $substring(rawurl, 0, i);
  35722. _tmp$7 = $substring(rawurl, (i + 1 >> 0));
  35723. _tmp$8 = $ifaceNil;
  35724. scheme = _tmp$6;
  35725. path = _tmp$7;
  35726. err = _tmp$8;
  35727. return [scheme, path, err];
  35728. } else {
  35729. _tmp$9 = "";
  35730. _tmp$10 = rawurl;
  35731. _tmp$11 = $ifaceNil;
  35732. scheme = _tmp$9;
  35733. path = _tmp$10;
  35734. err = _tmp$11;
  35735. return [scheme, path, err];
  35736. }
  35737. i = i + (1) >> 0;
  35738. }
  35739. _tmp$12 = "";
  35740. _tmp$13 = rawurl;
  35741. _tmp$14 = $ifaceNil;
  35742. scheme = _tmp$12;
  35743. path = _tmp$13;
  35744. err = _tmp$14;
  35745. return [scheme, path, err];
  35746. };
  35747. split = function(s, c, cutc) {
  35748. var c, cutc, i, s;
  35749. i = strings.Index(s, c);
  35750. if (i < 0) {
  35751. return [s, ""];
  35752. }
  35753. if (cutc) {
  35754. return [$substring(s, 0, i), $substring(s, (i + c.length >> 0))];
  35755. }
  35756. return [$substring(s, 0, i), $substring(s, i)];
  35757. };
  35758. Parse = function(rawurl) {
  35759. var _r, _tuple, _tuple$1, _tuple$2, err, frag, rawurl, u, url, $s, $r;
  35760. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; err = $f.err; frag = $f.frag; rawurl = $f.rawurl; u = $f.u; url = $f.url; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  35761. _tuple = split(rawurl, "#", true);
  35762. u = _tuple[0];
  35763. frag = _tuple[1];
  35764. _r = parse(u, false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  35765. _tuple$1 = _r;
  35766. url = _tuple$1[0];
  35767. err = _tuple$1[1];
  35768. if (!($interfaceIsEqual(err, $ifaceNil))) {
  35769. $s = -1; return [ptrType$1.nil, new Error.ptr("parse", u, err)];
  35770. }
  35771. if (frag === "") {
  35772. $s = -1; return [url, $ifaceNil];
  35773. }
  35774. _tuple$2 = unescape(frag, 7);
  35775. url.Fragment = _tuple$2[0];
  35776. err = _tuple$2[1];
  35777. if (!($interfaceIsEqual(err, $ifaceNil))) {
  35778. $s = -1; return [ptrType$1.nil, new Error.ptr("parse", rawurl, err)];
  35779. }
  35780. $s = -1; return [url, $ifaceNil];
  35781. /* */ } return; } if ($f === undefined) { $f = { $blk: Parse }; } $f._r = _r; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.err = err; $f.frag = frag; $f.rawurl = rawurl; $f.u = u; $f.url = url; $f.$s = $s; $f.$r = $r; return $f;
  35782. };
  35783. $pkg.Parse = Parse;
  35784. parse = function(rawurl, viaRequest) {
  35785. var _r, _r$1, _tuple, _tuple$1, _tuple$2, _tuple$3, authority, colon, err, err$1, rawurl, rest, slash, url, viaRequest, $s, $r;
  35786. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; authority = $f.authority; colon = $f.colon; err = $f.err; err$1 = $f.err$1; rawurl = $f.rawurl; rest = $f.rest; slash = $f.slash; url = $f.url; viaRequest = $f.viaRequest; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  35787. rest = "";
  35788. err = $ifaceNil;
  35789. if (stringContainsCTLByte(rawurl)) {
  35790. $s = -1; return [ptrType$1.nil, errors.New("net/url: invalid control character in URL")];
  35791. }
  35792. if (rawurl === "" && viaRequest) {
  35793. $s = -1; return [ptrType$1.nil, errors.New("empty url")];
  35794. }
  35795. url = new URL.ptr("", "", ptrType.nil, "", "", "", false, "", "");
  35796. if (rawurl === "*") {
  35797. url.Path = "*";
  35798. $s = -1; return [url, $ifaceNil];
  35799. }
  35800. _tuple = getscheme(rawurl);
  35801. url.Scheme = _tuple[0];
  35802. rest = _tuple[1];
  35803. err = _tuple[2];
  35804. if (!($interfaceIsEqual(err, $ifaceNil))) {
  35805. $s = -1; return [ptrType$1.nil, err];
  35806. }
  35807. _r = strings.ToLower(url.Scheme); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  35808. url.Scheme = _r;
  35809. if (strings.HasSuffix(rest, "?") && (strings.Count(rest, "?") === 1)) {
  35810. url.ForceQuery = true;
  35811. rest = $substring(rest, 0, (rest.length - 1 >> 0));
  35812. } else {
  35813. _tuple$1 = split(rest, "?", true);
  35814. rest = _tuple$1[0];
  35815. url.RawQuery = _tuple$1[1];
  35816. }
  35817. if (!strings.HasPrefix(rest, "/")) {
  35818. if (!(url.Scheme === "")) {
  35819. url.Opaque = rest;
  35820. $s = -1; return [url, $ifaceNil];
  35821. }
  35822. if (viaRequest) {
  35823. $s = -1; return [ptrType$1.nil, errors.New("invalid URI for request")];
  35824. }
  35825. colon = strings.Index(rest, ":");
  35826. slash = strings.Index(rest, "/");
  35827. if (colon >= 0 && (slash < 0 || colon < slash)) {
  35828. $s = -1; return [ptrType$1.nil, errors.New("first path segment in URL cannot contain colon")];
  35829. }
  35830. }
  35831. /* */ if ((!(url.Scheme === "") || !viaRequest && !strings.HasPrefix(rest, "///")) && strings.HasPrefix(rest, "//")) { $s = 2; continue; }
  35832. /* */ $s = 3; continue;
  35833. /* if ((!(url.Scheme === "") || !viaRequest && !strings.HasPrefix(rest, "///")) && strings.HasPrefix(rest, "//")) { */ case 2:
  35834. authority = "";
  35835. _tuple$2 = split($substring(rest, 2), "/", false);
  35836. authority = _tuple$2[0];
  35837. rest = _tuple$2[1];
  35838. _r$1 = parseAuthority(authority); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  35839. _tuple$3 = _r$1;
  35840. url.User = _tuple$3[0];
  35841. url.Host = _tuple$3[1];
  35842. err = _tuple$3[2];
  35843. if (!($interfaceIsEqual(err, $ifaceNil))) {
  35844. $s = -1; return [ptrType$1.nil, err];
  35845. }
  35846. /* } */ case 3:
  35847. err$1 = url.setPath(rest);
  35848. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  35849. $s = -1; return [ptrType$1.nil, err$1];
  35850. }
  35851. $s = -1; return [url, $ifaceNil];
  35852. /* */ } return; } if ($f === undefined) { $f = { $blk: parse }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.authority = authority; $f.colon = colon; $f.err = err; $f.err$1 = err$1; $f.rawurl = rawurl; $f.rest = rest; $f.slash = slash; $f.url = url; $f.viaRequest = viaRequest; $f.$s = $s; $f.$r = $r; return $f;
  35853. };
  35854. parseAuthority = function(authority) {
  35855. var _r, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, authority, err, host, i, password, user, userinfo, username, $s, $r;
  35856. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$10 = $f._tmp$10; _tmp$11 = $f._tmp$11; _tmp$12 = $f._tmp$12; _tmp$13 = $f._tmp$13; _tmp$14 = $f._tmp$14; _tmp$15 = $f._tmp$15; _tmp$16 = $f._tmp$16; _tmp$17 = $f._tmp$17; _tmp$18 = $f._tmp$18; _tmp$19 = $f._tmp$19; _tmp$2 = $f._tmp$2; _tmp$20 = $f._tmp$20; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; authority = $f.authority; err = $f.err; host = $f.host; i = $f.i; password = $f.password; user = $f.user; userinfo = $f.userinfo; username = $f.username; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  35857. user = ptrType.nil;
  35858. host = "";
  35859. err = $ifaceNil;
  35860. i = strings.LastIndex(authority, "@");
  35861. /* */ if (i < 0) { $s = 1; continue; }
  35862. /* */ $s = 2; continue;
  35863. /* if (i < 0) { */ case 1:
  35864. _r = parseHost(authority); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  35865. _tuple = _r;
  35866. host = _tuple[0];
  35867. err = _tuple[1];
  35868. $s = 3; continue;
  35869. /* } else { */ case 2:
  35870. _r$1 = parseHost($substring(authority, (i + 1 >> 0))); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  35871. _tuple$1 = _r$1;
  35872. host = _tuple$1[0];
  35873. err = _tuple$1[1];
  35874. /* } */ case 3:
  35875. if (!($interfaceIsEqual(err, $ifaceNil))) {
  35876. _tmp = ptrType.nil;
  35877. _tmp$1 = "";
  35878. _tmp$2 = err;
  35879. user = _tmp;
  35880. host = _tmp$1;
  35881. err = _tmp$2;
  35882. $s = -1; return [user, host, err];
  35883. }
  35884. if (i < 0) {
  35885. _tmp$3 = ptrType.nil;
  35886. _tmp$4 = host;
  35887. _tmp$5 = $ifaceNil;
  35888. user = _tmp$3;
  35889. host = _tmp$4;
  35890. err = _tmp$5;
  35891. $s = -1; return [user, host, err];
  35892. }
  35893. userinfo = $substring(authority, 0, i);
  35894. if (!validUserinfo(userinfo)) {
  35895. _tmp$6 = ptrType.nil;
  35896. _tmp$7 = "";
  35897. _tmp$8 = errors.New("net/url: invalid userinfo");
  35898. user = _tmp$6;
  35899. host = _tmp$7;
  35900. err = _tmp$8;
  35901. $s = -1; return [user, host, err];
  35902. }
  35903. if (!strings.Contains(userinfo, ":")) {
  35904. _tuple$2 = unescape(userinfo, 5);
  35905. userinfo = _tuple$2[0];
  35906. err = _tuple$2[1];
  35907. if (!($interfaceIsEqual(err, $ifaceNil))) {
  35908. _tmp$9 = ptrType.nil;
  35909. _tmp$10 = "";
  35910. _tmp$11 = err;
  35911. user = _tmp$9;
  35912. host = _tmp$10;
  35913. err = _tmp$11;
  35914. $s = -1; return [user, host, err];
  35915. }
  35916. user = User(userinfo);
  35917. } else {
  35918. _tuple$3 = split(userinfo, ":", true);
  35919. username = _tuple$3[0];
  35920. password = _tuple$3[1];
  35921. _tuple$4 = unescape(username, 5);
  35922. username = _tuple$4[0];
  35923. err = _tuple$4[1];
  35924. if (!($interfaceIsEqual(err, $ifaceNil))) {
  35925. _tmp$12 = ptrType.nil;
  35926. _tmp$13 = "";
  35927. _tmp$14 = err;
  35928. user = _tmp$12;
  35929. host = _tmp$13;
  35930. err = _tmp$14;
  35931. $s = -1; return [user, host, err];
  35932. }
  35933. _tuple$5 = unescape(password, 5);
  35934. password = _tuple$5[0];
  35935. err = _tuple$5[1];
  35936. if (!($interfaceIsEqual(err, $ifaceNil))) {
  35937. _tmp$15 = ptrType.nil;
  35938. _tmp$16 = "";
  35939. _tmp$17 = err;
  35940. user = _tmp$15;
  35941. host = _tmp$16;
  35942. err = _tmp$17;
  35943. $s = -1; return [user, host, err];
  35944. }
  35945. user = UserPassword(username, password);
  35946. }
  35947. _tmp$18 = user;
  35948. _tmp$19 = host;
  35949. _tmp$20 = $ifaceNil;
  35950. user = _tmp$18;
  35951. host = _tmp$19;
  35952. err = _tmp$20;
  35953. $s = -1; return [user, host, err];
  35954. /* */ } return; } if ($f === undefined) { $f = { $blk: parseAuthority }; } $f._r = _r; $f._r$1 = _r$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$10 = _tmp$10; $f._tmp$11 = _tmp$11; $f._tmp$12 = _tmp$12; $f._tmp$13 = _tmp$13; $f._tmp$14 = _tmp$14; $f._tmp$15 = _tmp$15; $f._tmp$16 = _tmp$16; $f._tmp$17 = _tmp$17; $f._tmp$18 = _tmp$18; $f._tmp$19 = _tmp$19; $f._tmp$2 = _tmp$2; $f._tmp$20 = _tmp$20; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f.authority = authority; $f.err = err; $f.host = host; $f.i = i; $f.password = password; $f.user = user; $f.userinfo = userinfo; $f.username = username; $f.$s = $s; $f.$r = $r; return $f;
  35955. };
  35956. parseHost = function(host) {
  35957. var _r, _r$1, _tuple, _tuple$1, _tuple$2, _tuple$3, colonPort, colonPort$1, err, err$1, host, host1, host2, host3, i, i$1, zone, $s, $r;
  35958. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; colonPort = $f.colonPort; colonPort$1 = $f.colonPort$1; err = $f.err; err$1 = $f.err$1; host = $f.host; host1 = $f.host1; host2 = $f.host2; host3 = $f.host3; i = $f.i; i$1 = $f.i$1; zone = $f.zone; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  35959. /* */ if (strings.HasPrefix(host, "[")) { $s = 1; continue; }
  35960. /* */ $s = 2; continue;
  35961. /* if (strings.HasPrefix(host, "[")) { */ case 1:
  35962. i = strings.LastIndex(host, "]");
  35963. if (i < 0) {
  35964. $s = -1; return ["", errors.New("missing ']' in host")];
  35965. }
  35966. colonPort = $substring(host, (i + 1 >> 0));
  35967. /* */ if (!validOptionalPort(colonPort)) { $s = 4; continue; }
  35968. /* */ $s = 5; continue;
  35969. /* if (!validOptionalPort(colonPort)) { */ case 4:
  35970. _r = fmt.Errorf("invalid port %q after host", new sliceType$1([new $String(colonPort)])); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  35971. $s = -1; return ["", _r];
  35972. /* } */ case 5:
  35973. zone = strings.Index($substring(host, 0, i), "%25");
  35974. if (zone >= 0) {
  35975. _tuple = unescape($substring(host, 0, zone), 3);
  35976. host1 = _tuple[0];
  35977. err = _tuple[1];
  35978. if (!($interfaceIsEqual(err, $ifaceNil))) {
  35979. $s = -1; return ["", err];
  35980. }
  35981. _tuple$1 = unescape($substring(host, zone, i), 4);
  35982. host2 = _tuple$1[0];
  35983. err = _tuple$1[1];
  35984. if (!($interfaceIsEqual(err, $ifaceNil))) {
  35985. $s = -1; return ["", err];
  35986. }
  35987. _tuple$2 = unescape($substring(host, i), 3);
  35988. host3 = _tuple$2[0];
  35989. err = _tuple$2[1];
  35990. if (!($interfaceIsEqual(err, $ifaceNil))) {
  35991. $s = -1; return ["", err];
  35992. }
  35993. $s = -1; return [host1 + host2 + host3, $ifaceNil];
  35994. }
  35995. $s = 3; continue;
  35996. /* } else { */ case 2:
  35997. i$1 = strings.LastIndex(host, ":");
  35998. /* */ if (!((i$1 === -1))) { $s = 7; continue; }
  35999. /* */ $s = 8; continue;
  36000. /* if (!((i$1 === -1))) { */ case 7:
  36001. colonPort$1 = $substring(host, i$1);
  36002. /* */ if (!validOptionalPort(colonPort$1)) { $s = 9; continue; }
  36003. /* */ $s = 10; continue;
  36004. /* if (!validOptionalPort(colonPort$1)) { */ case 9:
  36005. _r$1 = fmt.Errorf("invalid port %q after host", new sliceType$1([new $String(colonPort$1)])); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  36006. $s = -1; return ["", _r$1];
  36007. /* } */ case 10:
  36008. /* } */ case 8:
  36009. /* } */ case 3:
  36010. err$1 = $ifaceNil;
  36011. _tuple$3 = unescape(host, 3);
  36012. host = _tuple$3[0];
  36013. err$1 = _tuple$3[1];
  36014. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  36015. $s = -1; return ["", err$1];
  36016. }
  36017. $s = -1; return [host, $ifaceNil];
  36018. /* */ } return; } if ($f === undefined) { $f = { $blk: parseHost }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.colonPort = colonPort; $f.colonPort$1 = colonPort$1; $f.err = err; $f.err$1 = err$1; $f.host = host; $f.host1 = host1; $f.host2 = host2; $f.host3 = host3; $f.i = i; $f.i$1 = i$1; $f.zone = zone; $f.$s = $s; $f.$r = $r; return $f;
  36019. };
  36020. URL.ptr.prototype.setPath = function(p) {
  36021. var _tuple, err, escp, p, path, u;
  36022. u = this;
  36023. _tuple = unescape(p, 1);
  36024. path = _tuple[0];
  36025. err = _tuple[1];
  36026. if (!($interfaceIsEqual(err, $ifaceNil))) {
  36027. return err;
  36028. }
  36029. u.Path = path;
  36030. escp = escape(path, 1);
  36031. if (p === escp) {
  36032. u.RawPath = "";
  36033. } else {
  36034. u.RawPath = p;
  36035. }
  36036. return $ifaceNil;
  36037. };
  36038. URL.prototype.setPath = function(p) { return this.$val.setPath(p); };
  36039. URL.ptr.prototype.EscapedPath = function() {
  36040. var _tuple, err, p, u;
  36041. u = this;
  36042. if (!(u.RawPath === "") && validEncodedPath(u.RawPath)) {
  36043. _tuple = unescape(u.RawPath, 1);
  36044. p = _tuple[0];
  36045. err = _tuple[1];
  36046. if ($interfaceIsEqual(err, $ifaceNil) && p === u.Path) {
  36047. return u.RawPath;
  36048. }
  36049. }
  36050. if (u.Path === "*") {
  36051. return "*";
  36052. }
  36053. return escape(u.Path, 1);
  36054. };
  36055. URL.prototype.EscapedPath = function() { return this.$val.EscapedPath(); };
  36056. validEncodedPath = function(s) {
  36057. var _1, i, s;
  36058. i = 0;
  36059. while (true) {
  36060. if (!(i < s.length)) { break; }
  36061. _1 = s.charCodeAt(i);
  36062. if ((_1 === (33)) || (_1 === (36)) || (_1 === (38)) || (_1 === (39)) || (_1 === (40)) || (_1 === (41)) || (_1 === (42)) || (_1 === (43)) || (_1 === (44)) || (_1 === (59)) || (_1 === (61)) || (_1 === (58)) || (_1 === (64))) {
  36063. } else if ((_1 === (91)) || (_1 === (93))) {
  36064. } else if (_1 === (37)) {
  36065. } else if (shouldEscape(s.charCodeAt(i), 1)) {
  36066. return false;
  36067. }
  36068. i = i + (1) >> 0;
  36069. }
  36070. return true;
  36071. };
  36072. validOptionalPort = function(port) {
  36073. var _i, _ref, _rune, b, port;
  36074. if (port === "") {
  36075. return true;
  36076. }
  36077. if (!((port.charCodeAt(0) === 58))) {
  36078. return false;
  36079. }
  36080. _ref = $substring(port, 1);
  36081. _i = 0;
  36082. while (true) {
  36083. if (!(_i < _ref.length)) { break; }
  36084. _rune = $decodeRune(_ref, _i);
  36085. b = _rune[0];
  36086. if (b < 48 || b > 57) {
  36087. return false;
  36088. }
  36089. _i += _rune[1];
  36090. }
  36091. return true;
  36092. };
  36093. URL.ptr.prototype.String = function() {
  36094. var buf, h, i, path, u, ui;
  36095. u = this;
  36096. buf = new strings.Builder.ptr(ptrType$2.nil, sliceType.nil);
  36097. if (!(u.Scheme === "")) {
  36098. buf.WriteString(u.Scheme);
  36099. buf.WriteByte(58);
  36100. }
  36101. if (!(u.Opaque === "")) {
  36102. buf.WriteString(u.Opaque);
  36103. } else {
  36104. if (!(u.Scheme === "") || !(u.Host === "") || !(u.User === ptrType.nil)) {
  36105. if (!(u.Host === "") || !(u.Path === "") || !(u.User === ptrType.nil)) {
  36106. buf.WriteString("//");
  36107. }
  36108. ui = u.User;
  36109. if (!(ui === ptrType.nil)) {
  36110. buf.WriteString(ui.String());
  36111. buf.WriteByte(64);
  36112. }
  36113. h = u.Host;
  36114. if (!(h === "")) {
  36115. buf.WriteString(escape(h, 3));
  36116. }
  36117. }
  36118. path = u.EscapedPath();
  36119. if (!(path === "") && !((path.charCodeAt(0) === 47)) && !(u.Host === "")) {
  36120. buf.WriteByte(47);
  36121. }
  36122. if (buf.Len() === 0) {
  36123. i = strings.IndexByte(path, 58);
  36124. if (i > -1 && (strings.IndexByte($substring(path, 0, i), 47) === -1)) {
  36125. buf.WriteString("./");
  36126. }
  36127. }
  36128. buf.WriteString(path);
  36129. }
  36130. if (u.ForceQuery || !(u.RawQuery === "")) {
  36131. buf.WriteByte(63);
  36132. buf.WriteString(u.RawQuery);
  36133. }
  36134. if (!(u.Fragment === "")) {
  36135. buf.WriteByte(35);
  36136. buf.WriteString(escape(u.Fragment, 7));
  36137. }
  36138. return buf.String();
  36139. };
  36140. URL.prototype.String = function() { return this.$val.String(); };
  36141. Values.prototype.Get = function(key) {
  36142. var _entry, key, v, vs;
  36143. v = this.$val;
  36144. if (v === false) {
  36145. return "";
  36146. }
  36147. vs = (_entry = v[$String.keyFor(key)], _entry !== undefined ? _entry.v : sliceType$2.nil);
  36148. if (vs.$length === 0) {
  36149. return "";
  36150. }
  36151. return (0 >= vs.$length ? ($throwRuntimeError("index out of range"), undefined) : vs.$array[vs.$offset + 0]);
  36152. };
  36153. $ptrType(Values).prototype.Get = function(key) { return new Values(this.$get()).Get(key); };
  36154. Values.prototype.Set = function(key, value) {
  36155. var _key, key, v, value;
  36156. v = this.$val;
  36157. _key = key; (v || $throwRuntimeError("assignment to entry in nil map"))[$String.keyFor(_key)] = { k: _key, v: new sliceType$2([value]) };
  36158. };
  36159. $ptrType(Values).prototype.Set = function(key, value) { return new Values(this.$get()).Set(key, value); };
  36160. Values.prototype.Add = function(key, value) {
  36161. var _entry, _key, key, v, value;
  36162. v = this.$val;
  36163. _key = key; (v || $throwRuntimeError("assignment to entry in nil map"))[$String.keyFor(_key)] = { k: _key, v: $append((_entry = v[$String.keyFor(key)], _entry !== undefined ? _entry.v : sliceType$2.nil), value) };
  36164. };
  36165. $ptrType(Values).prototype.Add = function(key, value) { return new Values(this.$get()).Add(key, value); };
  36166. Values.prototype.Del = function(key) {
  36167. var key, v;
  36168. v = this.$val;
  36169. delete v[$String.keyFor(key)];
  36170. };
  36171. $ptrType(Values).prototype.Del = function(key) { return new Values(this.$get()).Del(key); };
  36172. ParseQuery = function(query) {
  36173. var err, m, query;
  36174. m = {};
  36175. err = parseQuery(m, query);
  36176. return [m, err];
  36177. };
  36178. $pkg.ParseQuery = ParseQuery;
  36179. parseQuery = function(m, query) {
  36180. var _entry, _key, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, err, err1, i, i$1, key, m, query, value;
  36181. err = $ifaceNil;
  36182. while (true) {
  36183. if (!(!(query === ""))) { break; }
  36184. key = query;
  36185. i = strings.IndexAny(key, "&;");
  36186. if (i >= 0) {
  36187. _tmp = $substring(key, 0, i);
  36188. _tmp$1 = $substring(key, (i + 1 >> 0));
  36189. key = _tmp;
  36190. query = _tmp$1;
  36191. } else {
  36192. query = "";
  36193. }
  36194. if (key === "") {
  36195. continue;
  36196. }
  36197. value = "";
  36198. i$1 = strings.Index(key, "=");
  36199. if (i$1 >= 0) {
  36200. _tmp$2 = $substring(key, 0, i$1);
  36201. _tmp$3 = $substring(key, (i$1 + 1 >> 0));
  36202. key = _tmp$2;
  36203. value = _tmp$3;
  36204. }
  36205. _tuple = QueryUnescape(key);
  36206. key = _tuple[0];
  36207. err1 = _tuple[1];
  36208. if (!($interfaceIsEqual(err1, $ifaceNil))) {
  36209. if ($interfaceIsEqual(err, $ifaceNil)) {
  36210. err = err1;
  36211. }
  36212. continue;
  36213. }
  36214. _tuple$1 = QueryUnescape(value);
  36215. value = _tuple$1[0];
  36216. err1 = _tuple$1[1];
  36217. if (!($interfaceIsEqual(err1, $ifaceNil))) {
  36218. if ($interfaceIsEqual(err, $ifaceNil)) {
  36219. err = err1;
  36220. }
  36221. continue;
  36222. }
  36223. _key = key; (m || $throwRuntimeError("assignment to entry in nil map"))[$String.keyFor(_key)] = { k: _key, v: $append((_entry = m[$String.keyFor(key)], _entry !== undefined ? _entry.v : sliceType$2.nil), value) };
  36224. }
  36225. err = err;
  36226. return err;
  36227. };
  36228. Values.prototype.Encode = function() {
  36229. var _entry, _entry$1, _i, _i$1, _i$2, _keys, _ref, _ref$1, _ref$2, buf, k, k$1, keyEscaped, keys, v, v$1, vs, $s, $r;
  36230. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _keys = $f._keys; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; buf = $f.buf; k = $f.k; k$1 = $f.k$1; keyEscaped = $f.keyEscaped; keys = $f.keys; v = $f.v; v$1 = $f.v$1; vs = $f.vs; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  36231. v = this.$val;
  36232. if (v === false) {
  36233. $s = -1; return "";
  36234. }
  36235. buf = new strings.Builder.ptr(ptrType$2.nil, sliceType.nil);
  36236. keys = $makeSlice(sliceType$2, 0, $keys(v).length);
  36237. _ref = v;
  36238. _i = 0;
  36239. _keys = $keys(_ref);
  36240. while (true) {
  36241. if (!(_i < _keys.length)) { break; }
  36242. _entry = _ref[_keys[_i]];
  36243. if (_entry === undefined) {
  36244. _i++;
  36245. continue;
  36246. }
  36247. k = _entry.k;
  36248. keys = $append(keys, k);
  36249. _i++;
  36250. }
  36251. $r = sort.Strings(keys); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  36252. _ref$1 = keys;
  36253. _i$1 = 0;
  36254. while (true) {
  36255. if (!(_i$1 < _ref$1.$length)) { break; }
  36256. k$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]);
  36257. vs = (_entry$1 = v[$String.keyFor(k$1)], _entry$1 !== undefined ? _entry$1.v : sliceType$2.nil);
  36258. keyEscaped = QueryEscape(k$1);
  36259. _ref$2 = vs;
  36260. _i$2 = 0;
  36261. while (true) {
  36262. if (!(_i$2 < _ref$2.$length)) { break; }
  36263. v$1 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]);
  36264. if (buf.Len() > 0) {
  36265. buf.WriteByte(38);
  36266. }
  36267. buf.WriteString(keyEscaped);
  36268. buf.WriteByte(61);
  36269. buf.WriteString(QueryEscape(v$1));
  36270. _i$2++;
  36271. }
  36272. _i$1++;
  36273. }
  36274. $s = -1; return buf.String();
  36275. /* */ } return; } if ($f === undefined) { $f = { $blk: Values.prototype.Encode }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._keys = _keys; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f.buf = buf; $f.k = k; $f.k$1 = k$1; $f.keyEscaped = keyEscaped; $f.keys = keys; $f.v = v; $f.v$1 = v$1; $f.vs = vs; $f.$s = $s; $f.$r = $r; return $f;
  36276. };
  36277. $ptrType(Values).prototype.Encode = function() { return new Values(this.$get()).Encode(); };
  36278. resolvePath = function(base, ref) {
  36279. var _1, _i, _ref, base, dst, elem, full, i, last, ref, src, x;
  36280. full = "";
  36281. if (ref === "") {
  36282. full = base;
  36283. } else if (!((ref.charCodeAt(0) === 47))) {
  36284. i = strings.LastIndex(base, "/");
  36285. full = $substring(base, 0, (i + 1 >> 0)) + ref;
  36286. } else {
  36287. full = ref;
  36288. }
  36289. if (full === "") {
  36290. return "";
  36291. }
  36292. dst = sliceType$2.nil;
  36293. src = strings.Split(full, "/");
  36294. _ref = src;
  36295. _i = 0;
  36296. while (true) {
  36297. if (!(_i < _ref.$length)) { break; }
  36298. elem = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
  36299. _1 = elem;
  36300. if (_1 === (".")) {
  36301. } else if (_1 === ("..")) {
  36302. if (dst.$length > 0) {
  36303. dst = $subslice(dst, 0, (dst.$length - 1 >> 0));
  36304. }
  36305. } else {
  36306. dst = $append(dst, elem);
  36307. }
  36308. _i++;
  36309. }
  36310. last = (x = src.$length - 1 >> 0, ((x < 0 || x >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x]));
  36311. if (last === "." || last === "..") {
  36312. dst = $append(dst, "");
  36313. }
  36314. return "/" + strings.TrimPrefix(strings.Join(dst, "/"), "/");
  36315. };
  36316. URL.ptr.prototype.IsAbs = function() {
  36317. var u;
  36318. u = this;
  36319. return !(u.Scheme === "");
  36320. };
  36321. URL.prototype.IsAbs = function() { return this.$val.IsAbs(); };
  36322. URL.ptr.prototype.Parse = function(ref) {
  36323. var _r, _tuple, err, ref, refurl, u, $s, $r;
  36324. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; ref = $f.ref; refurl = $f.refurl; u = $f.u; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  36325. u = this;
  36326. _r = Parse(ref); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  36327. _tuple = _r;
  36328. refurl = _tuple[0];
  36329. err = _tuple[1];
  36330. if (!($interfaceIsEqual(err, $ifaceNil))) {
  36331. $s = -1; return [ptrType$1.nil, err];
  36332. }
  36333. $s = -1; return [u.ResolveReference(refurl), $ifaceNil];
  36334. /* */ } return; } if ($f === undefined) { $f = { $blk: URL.ptr.prototype.Parse }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.ref = ref; $f.refurl = refurl; $f.u = u; $f.$s = $s; $f.$r = $r; return $f;
  36335. };
  36336. URL.prototype.Parse = function(ref) { return this.$val.Parse(ref); };
  36337. URL.ptr.prototype.ResolveReference = function(ref) {
  36338. var ref, u, url;
  36339. u = this;
  36340. url = $clone(ref, URL);
  36341. if (ref.Scheme === "") {
  36342. url.Scheme = u.Scheme;
  36343. }
  36344. if (!(ref.Scheme === "") || !(ref.Host === "") || !(ref.User === ptrType.nil)) {
  36345. url.setPath(resolvePath(ref.EscapedPath(), ""));
  36346. return url;
  36347. }
  36348. if (!(ref.Opaque === "")) {
  36349. url.User = ptrType.nil;
  36350. url.Host = "";
  36351. url.Path = "";
  36352. return url;
  36353. }
  36354. if (ref.Path === "" && ref.RawQuery === "") {
  36355. url.RawQuery = u.RawQuery;
  36356. if (ref.Fragment === "") {
  36357. url.Fragment = u.Fragment;
  36358. }
  36359. }
  36360. url.Host = u.Host;
  36361. url.User = u.User;
  36362. url.setPath(resolvePath(u.EscapedPath(), ref.EscapedPath()));
  36363. return url;
  36364. };
  36365. URL.prototype.ResolveReference = function(ref) { return this.$val.ResolveReference(ref); };
  36366. URL.ptr.prototype.Query = function() {
  36367. var _tuple, u, v;
  36368. u = this;
  36369. _tuple = ParseQuery(u.RawQuery);
  36370. v = _tuple[0];
  36371. return v;
  36372. };
  36373. URL.prototype.Query = function() { return this.$val.Query(); };
  36374. URL.ptr.prototype.RequestURI = function() {
  36375. var result, u;
  36376. u = this;
  36377. result = u.Opaque;
  36378. if (result === "") {
  36379. result = u.EscapedPath();
  36380. if (result === "") {
  36381. result = "/";
  36382. }
  36383. } else {
  36384. if (strings.HasPrefix(result, "//")) {
  36385. result = u.Scheme + ":" + result;
  36386. }
  36387. }
  36388. if (u.ForceQuery || !(u.RawQuery === "")) {
  36389. result = result + ("?" + u.RawQuery);
  36390. }
  36391. return result;
  36392. };
  36393. URL.prototype.RequestURI = function() { return this.$val.RequestURI(); };
  36394. URL.ptr.prototype.Hostname = function() {
  36395. var _tuple, host, u;
  36396. u = this;
  36397. _tuple = splitHostPort(u.Host);
  36398. host = _tuple[0];
  36399. return host;
  36400. };
  36401. URL.prototype.Hostname = function() { return this.$val.Hostname(); };
  36402. URL.ptr.prototype.Port = function() {
  36403. var _tuple, port, u;
  36404. u = this;
  36405. _tuple = splitHostPort(u.Host);
  36406. port = _tuple[1];
  36407. return port;
  36408. };
  36409. URL.prototype.Port = function() { return this.$val.Port(); };
  36410. splitHostPort = function(hostport) {
  36411. var _tmp, _tmp$1, colon, host, hostport, port;
  36412. host = "";
  36413. port = "";
  36414. host = hostport;
  36415. colon = strings.LastIndexByte(host, 58);
  36416. if (!((colon === -1)) && validOptionalPort($substring(host, colon))) {
  36417. _tmp = $substring(host, 0, colon);
  36418. _tmp$1 = $substring(host, (colon + 1 >> 0));
  36419. host = _tmp;
  36420. port = _tmp$1;
  36421. }
  36422. if (strings.HasPrefix(host, "[") && strings.HasSuffix(host, "]")) {
  36423. host = $substring(host, 1, (host.length - 1 >> 0));
  36424. }
  36425. return [host, port];
  36426. };
  36427. URL.ptr.prototype.MarshalBinary = function() {
  36428. var _tmp, _tmp$1, err, text, u;
  36429. text = sliceType.nil;
  36430. err = $ifaceNil;
  36431. u = this;
  36432. _tmp = (new sliceType($stringToBytes(u.String())));
  36433. _tmp$1 = $ifaceNil;
  36434. text = _tmp;
  36435. err = _tmp$1;
  36436. return [text, err];
  36437. };
  36438. URL.prototype.MarshalBinary = function() { return this.$val.MarshalBinary(); };
  36439. URL.ptr.prototype.UnmarshalBinary = function(text) {
  36440. var _r, _tuple, err, text, u, u1, $s, $r;
  36441. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; text = $f.text; u = $f.u; u1 = $f.u1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  36442. u = this;
  36443. _r = Parse(($bytesToString(text))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  36444. _tuple = _r;
  36445. u1 = _tuple[0];
  36446. err = _tuple[1];
  36447. if (!($interfaceIsEqual(err, $ifaceNil))) {
  36448. $s = -1; return err;
  36449. }
  36450. URL.copy(u, u1);
  36451. $s = -1; return $ifaceNil;
  36452. /* */ } return; } if ($f === undefined) { $f = { $blk: URL.ptr.prototype.UnmarshalBinary }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.text = text; $f.u = u; $f.u1 = u1; $f.$s = $s; $f.$r = $r; return $f;
  36453. };
  36454. URL.prototype.UnmarshalBinary = function(text) { return this.$val.UnmarshalBinary(text); };
  36455. validUserinfo = function(s) {
  36456. var _1, _i, _ref, _rune, r, s;
  36457. _ref = s;
  36458. _i = 0;
  36459. while (true) {
  36460. if (!(_i < _ref.length)) { break; }
  36461. _rune = $decodeRune(_ref, _i);
  36462. r = _rune[0];
  36463. if (65 <= r && r <= 90) {
  36464. _i += _rune[1];
  36465. continue;
  36466. }
  36467. if (97 <= r && r <= 122) {
  36468. _i += _rune[1];
  36469. continue;
  36470. }
  36471. if (48 <= r && r <= 57) {
  36472. _i += _rune[1];
  36473. continue;
  36474. }
  36475. _1 = r;
  36476. if ((_1 === (45)) || (_1 === (46)) || (_1 === (95)) || (_1 === (58)) || (_1 === (126)) || (_1 === (33)) || (_1 === (36)) || (_1 === (38)) || (_1 === (39)) || (_1 === (40)) || (_1 === (41)) || (_1 === (42)) || (_1 === (43)) || (_1 === (44)) || (_1 === (59)) || (_1 === (61)) || (_1 === (37)) || (_1 === (64))) {
  36477. _i += _rune[1];
  36478. continue;
  36479. } else {
  36480. return false;
  36481. }
  36482. _i += _rune[1];
  36483. }
  36484. return true;
  36485. };
  36486. stringContainsCTLByte = function(s) {
  36487. var b, i, s;
  36488. i = 0;
  36489. while (true) {
  36490. if (!(i < s.length)) { break; }
  36491. b = s.charCodeAt(i);
  36492. if (b < 32 || (b === 127)) {
  36493. return true;
  36494. }
  36495. i = i + (1) >> 0;
  36496. }
  36497. return false;
  36498. };
  36499. ptrType$3.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}];
  36500. EscapeError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
  36501. InvalidHostError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
  36502. ptrType$1.methods = [{prop: "setPath", name: "setPath", pkg: "net/url", typ: $funcType([$String], [$error], false)}, {prop: "EscapedPath", name: "EscapedPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsAbs", name: "IsAbs", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Parse", name: "Parse", pkg: "", typ: $funcType([$String], [ptrType$1, $error], false)}, {prop: "ResolveReference", name: "ResolveReference", pkg: "", typ: $funcType([ptrType$1], [ptrType$1], false)}, {prop: "Query", name: "Query", pkg: "", typ: $funcType([], [Values], false)}, {prop: "RequestURI", name: "RequestURI", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Hostname", name: "Hostname", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Port", name: "Port", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType, $error], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType], [$error], false)}];
  36503. ptrType.methods = [{prop: "Username", name: "Username", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Password", name: "Password", pkg: "", typ: $funcType([], [$String, $Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
  36504. Values.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, $String], [], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([$String, $String], [], false)}, {prop: "Del", name: "Del", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Encode", name: "Encode", pkg: "", typ: $funcType([], [$String], false)}];
  36505. Error.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "URL", name: "URL", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]);
  36506. timeout.init([{prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]);
  36507. temporary.init([{prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]);
  36508. URL.init("", [{prop: "Scheme", name: "Scheme", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Opaque", name: "Opaque", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "User", name: "User", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "Host", name: "Host", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Path", name: "Path", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "RawPath", name: "RawPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ForceQuery", name: "ForceQuery", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "RawQuery", name: "RawQuery", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Fragment", name: "Fragment", embedded: false, exported: true, typ: $String, tag: ""}]);
  36509. Userinfo.init("net/url", [{prop: "username", name: "username", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "password", name: "password", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "passwordSet", name: "passwordSet", embedded: false, exported: false, typ: $Bool, tag: ""}]);
  36510. Values.init($String, sliceType$2);
  36511. $init = function() {
  36512. $pkg.$init = function() {};
  36513. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  36514. $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  36515. $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  36516. $r = sort.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  36517. $r = strconv.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  36518. $r = strings.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  36519. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  36520. };
  36521. $pkg.$init = $init;
  36522. return $pkg;
  36523. })();
  36524. $packages["github.com/xiaokangwang/BrowserBridge/vendor/github.com/gopherjs/websocket"] = (function() {
  36525. var $pkg = {}, $init, bytes, fmt, js, websocketjs, io, net, url, time, addr, closeError, deadlineErr, conn, messageEvent, sliceType, ptrType, ptrType$1, ptrType$2, ptrType$3, sliceType$1, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, chanType, errDeadlineReached, beginHandlerOpen, beginHandlerClose, Dial, getFrameData;
  36526. bytes = $packages["bytes"];
  36527. fmt = $packages["fmt"];
  36528. js = $packages["github.com/gopherjs/gopherjs/js"];
  36529. websocketjs = $packages["github.com/xiaokangwang/BrowserBridge/vendor/github.com/gopherjs/websocket/websocketjs"];
  36530. io = $packages["io"];
  36531. net = $packages["net"];
  36532. url = $packages["net/url"];
  36533. time = $packages["time"];
  36534. addr = $pkg.addr = $newType(0, $kindStruct, "websocket.addr", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/gopherjs/websocket", false, function(URL_) {
  36535. this.$val = this;
  36536. if (arguments.length === 0) {
  36537. this.URL = ptrType$4.nil;
  36538. return;
  36539. }
  36540. this.URL = URL_;
  36541. });
  36542. closeError = $pkg.closeError = $newType(0, $kindStruct, "websocket.closeError", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/gopherjs/websocket", false, function(Object_, Code_, Reason_, WasClean_) {
  36543. this.$val = this;
  36544. if (arguments.length === 0) {
  36545. this.Object = null;
  36546. this.Code = 0;
  36547. this.Reason = "";
  36548. this.WasClean = false;
  36549. return;
  36550. }
  36551. this.Object = Object_;
  36552. this.Code = Code_;
  36553. this.Reason = Reason_;
  36554. this.WasClean = WasClean_;
  36555. });
  36556. deadlineErr = $pkg.deadlineErr = $newType(0, $kindStruct, "websocket.deadlineErr", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/gopherjs/websocket", false, function() {
  36557. this.$val = this;
  36558. if (arguments.length === 0) {
  36559. return;
  36560. }
  36561. });
  36562. conn = $pkg.conn = $newType(0, $kindStruct, "websocket.conn", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/gopherjs/websocket", false, function(WebSocket_, ch_, readBuf_, readDeadline_) {
  36563. this.$val = this;
  36564. if (arguments.length === 0) {
  36565. this.WebSocket = ptrType.nil;
  36566. this.ch = $chanNil;
  36567. this.readBuf = ptrType$1.nil;
  36568. this.readDeadline = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil);
  36569. return;
  36570. }
  36571. this.WebSocket = WebSocket_;
  36572. this.ch = ch_;
  36573. this.readBuf = readBuf_;
  36574. this.readDeadline = readDeadline_;
  36575. });
  36576. messageEvent = $pkg.messageEvent = $newType(0, $kindStruct, "websocket.messageEvent", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/gopherjs/websocket", false, function(Object_, Data_) {
  36577. this.$val = this;
  36578. if (arguments.length === 0) {
  36579. this.Object = null;
  36580. this.Data = null;
  36581. return;
  36582. }
  36583. this.Object = Object_;
  36584. this.Data = Data_;
  36585. });
  36586. sliceType = $sliceType($emptyInterface);
  36587. ptrType = $ptrType(websocketjs.WebSocket);
  36588. ptrType$1 = $ptrType(bytes.Reader);
  36589. ptrType$2 = $ptrType(time.Location);
  36590. ptrType$3 = $ptrType(messageEvent);
  36591. sliceType$1 = $sliceType($Uint8);
  36592. ptrType$4 = $ptrType(url.URL);
  36593. ptrType$5 = $ptrType(addr);
  36594. ptrType$6 = $ptrType(closeError);
  36595. ptrType$7 = $ptrType(js.Object);
  36596. ptrType$8 = $ptrType(deadlineErr);
  36597. ptrType$9 = $ptrType(conn);
  36598. chanType = $chanType(ptrType$3, false, false);
  36599. addr.ptr.prototype.Network = function() {
  36600. var addr$1;
  36601. addr$1 = this;
  36602. return "websocket";
  36603. };
  36604. addr.prototype.Network = function() { return this.$val.Network(); };
  36605. beginHandlerOpen = function(ch, removeHandlers) {
  36606. var ch, removeHandlers;
  36607. return (function $b(ev) {
  36608. var ev, $s, $r;
  36609. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; ev = $f.ev; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  36610. $r = removeHandlers(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  36611. $close(ch);
  36612. $s = -1; return;
  36613. /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f.ev = ev; $f.$s = $s; $f.$r = $r; return $f;
  36614. });
  36615. };
  36616. closeError.ptr.prototype.Error = function() {
  36617. var _r, cleanStmt, e, $s, $r;
  36618. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; cleanStmt = $f.cleanStmt; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  36619. e = this;
  36620. cleanStmt = "";
  36621. if (!!(e.Object.wasClean)) {
  36622. cleanStmt = "clean";
  36623. } else {
  36624. cleanStmt = "unclean";
  36625. }
  36626. _r = fmt.Sprintf("CloseEvent: (%s) (%d) %s", new sliceType([new $String(cleanStmt), new $Int(($parseInt(e.Object.code) >> 0)), new $String($internalize(e.Object.reason, $String))])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  36627. $s = -1; return _r;
  36628. /* */ } return; } if ($f === undefined) { $f = { $blk: closeError.ptr.prototype.Error }; } $f._r = _r; $f.cleanStmt = cleanStmt; $f.e = e; $f.$s = $s; $f.$r = $r; return $f;
  36629. };
  36630. closeError.prototype.Error = function() { return this.$val.Error(); };
  36631. beginHandlerClose = function(ch, removeHandlers) {
  36632. var ch, removeHandlers;
  36633. return (function $b(ev) {
  36634. var ev, $s, $r;
  36635. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; ev = $f.ev; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  36636. ev = [ev];
  36637. $r = removeHandlers(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  36638. $go((function(ev) { return function $b() {
  36639. var $s, $r;
  36640. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  36641. $r = $send(ch, new closeError.ptr(ev[0], 0, "", false)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  36642. $close(ch);
  36643. $s = -1; return;
  36644. /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f.$s = $s; $f.$r = $r; return $f;
  36645. }; })(ev), []);
  36646. $s = -1; return;
  36647. /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f.ev = ev; $f.$s = $s; $f.$r = $r; return $f;
  36648. });
  36649. };
  36650. deadlineErr.ptr.prototype.Error = function() {
  36651. var e;
  36652. e = this;
  36653. return "i/o timeout: deadline reached";
  36654. };
  36655. deadlineErr.prototype.Error = function() { return this.$val.Error(); };
  36656. deadlineErr.ptr.prototype.Timeout = function() {
  36657. var e;
  36658. e = this;
  36659. return true;
  36660. };
  36661. deadlineErr.prototype.Timeout = function() { return this.$val.Timeout(); };
  36662. deadlineErr.ptr.prototype.Temporary = function() {
  36663. var e;
  36664. e = this;
  36665. return true;
  36666. };
  36667. deadlineErr.prototype.Temporary = function() { return this.$val.Temporary(); };
  36668. Dial = function(url$1) {
  36669. var _r, _tuple, _tuple$1, closeHandler, conn$1, err, ok, openCh, openHandler, removeHandlers, url$1, ws, $s, $r;
  36670. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; closeHandler = $f.closeHandler; conn$1 = $f.conn$1; err = $f.err; ok = $f.ok; openCh = $f.openCh; openHandler = $f.openHandler; removeHandlers = $f.removeHandlers; url$1 = $f.url$1; ws = $f.ws; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  36671. closeHandler = [closeHandler];
  36672. openHandler = [openHandler];
  36673. ws = [ws];
  36674. _tuple = websocketjs.New(url$1);
  36675. ws[0] = _tuple[0];
  36676. err = _tuple[1];
  36677. if (!($interfaceIsEqual(err, $ifaceNil))) {
  36678. $s = -1; return [$ifaceNil, err];
  36679. }
  36680. conn$1 = new conn.ptr(ws[0], new $Chan(ptrType$3, 1), ptrType$1.nil, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil));
  36681. conn$1.initialize();
  36682. openCh = new $Chan($error, 1);
  36683. openHandler[0] = $throwNilPointerError;
  36684. closeHandler[0] = $throwNilPointerError;
  36685. removeHandlers = (function(closeHandler, openHandler, ws) { return function() {
  36686. ws[0].RemoveEventListener("open", false, openHandler[0]);
  36687. ws[0].RemoveEventListener("close", false, closeHandler[0]);
  36688. }; })(closeHandler, openHandler, ws);
  36689. openHandler[0] = beginHandlerOpen(openCh, removeHandlers);
  36690. closeHandler[0] = beginHandlerClose(openCh, removeHandlers);
  36691. ws[0].AddEventListener("open", false, openHandler[0]);
  36692. ws[0].AddEventListener("close", false, closeHandler[0]);
  36693. _r = $recv(openCh); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  36694. _tuple$1 = _r;
  36695. err = _tuple$1[0];
  36696. ok = _tuple$1[1];
  36697. if (ok && !($interfaceIsEqual(err, $ifaceNil))) {
  36698. $s = -1; return [$ifaceNil, err];
  36699. }
  36700. $s = -1; return [conn$1, $ifaceNil];
  36701. /* */ } return; } if ($f === undefined) { $f = { $blk: Dial }; } $f._r = _r; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.closeHandler = closeHandler; $f.conn$1 = conn$1; $f.err = err; $f.ok = ok; $f.openCh = openCh; $f.openHandler = openHandler; $f.removeHandlers = removeHandlers; $f.url$1 = url$1; $f.ws = ws; $f.$s = $s; $f.$r = $r; return $f;
  36702. };
  36703. $pkg.Dial = Dial;
  36704. conn.ptr.prototype.onMessage = function(event) {
  36705. var c, event;
  36706. c = this;
  36707. $go((function $b() {
  36708. var $s, $r;
  36709. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  36710. $r = $send(c.ch, new messageEvent.ptr(event, null)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  36711. $s = -1; return;
  36712. /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f.$s = $s; $f.$r = $r; return $f;
  36713. }), []);
  36714. };
  36715. conn.prototype.onMessage = function(event) { return this.$val.onMessage(event); };
  36716. conn.ptr.prototype.onClose = function(event) {
  36717. var c, event;
  36718. c = this;
  36719. $go((function $b() {
  36720. var $s, $r;
  36721. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  36722. $r = $send(c.ch, ptrType$3.nil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  36723. $s = -1; return;
  36724. /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f.$s = $s; $f.$r = $r; return $f;
  36725. }), []);
  36726. };
  36727. conn.prototype.onClose = function(event) { return this.$val.onClose(event); };
  36728. conn.ptr.prototype.initialize = function() {
  36729. var c;
  36730. c = this;
  36731. c.WebSocket.Object.binaryType = $externalize("arraybuffer", $String);
  36732. c.WebSocket.AddEventListener("message", false, $methodVal(c, "onMessage"));
  36733. c.WebSocket.AddEventListener("close", false, $methodVal(c, "onClose"));
  36734. };
  36735. conn.prototype.initialize = function() { return this.$val.initialize(); };
  36736. conn.ptr.prototype.handleFrame = function(message, ok) {
  36737. var c, message, ok;
  36738. c = this;
  36739. if (!ok) {
  36740. return [ptrType$3.nil, io.EOF];
  36741. } else if (message === ptrType$3.nil) {
  36742. $close(c.ch);
  36743. return [ptrType$3.nil, io.EOF];
  36744. }
  36745. return [message, $ifaceNil];
  36746. };
  36747. conn.prototype.handleFrame = function(message, ok) { return this.$val.handleFrame(message, ok); };
  36748. conn.ptr.prototype.receiveFrame = function(observeDeadline) {
  36749. var _r, _selection, _selection$1, _tuple, _tuple$1, c, deadlineChan, item, item$1, now, observeDeadline, ok, ok$1, timer, $s, $deferred, $r;
  36750. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _selection = $f._selection; _selection$1 = $f._selection$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; c = $f.c; deadlineChan = $f.deadlineChan; item = $f.item; item$1 = $f.item$1; now = $f.now; observeDeadline = $f.observeDeadline; ok = $f.ok; ok$1 = $f.ok$1; timer = $f.timer; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  36751. c = this;
  36752. deadlineChan = $chanNil;
  36753. /* */ if (observeDeadline && !$clone(c.readDeadline, time.Time).IsZero()) { $s = 1; continue; }
  36754. /* */ $s = 2; continue;
  36755. /* if (observeDeadline && !$clone(c.readDeadline, time.Time).IsZero()) { */ case 1:
  36756. now = $clone(time.Now(), time.Time);
  36757. if ($clone(now, time.Time).After($clone(c.readDeadline, time.Time))) {
  36758. _selection = $select([[c.ch], []]);
  36759. if (_selection[0] === 0) {
  36760. _tuple = _selection[1];
  36761. item = _tuple[0];
  36762. ok = _tuple[1];
  36763. $s = -1; return c.handleFrame(item, ok);
  36764. } else if (_selection[0] === 1) {
  36765. $s = -1; return [ptrType$3.nil, errDeadlineReached];
  36766. }
  36767. }
  36768. timer = time.NewTimer($clone(c.readDeadline, time.Time).Sub($clone(now, time.Time)));
  36769. $deferred.push([$methodVal(timer, "Stop"), []]);
  36770. deadlineChan = timer.C;
  36771. /* } */ case 2:
  36772. _r = $select([[c.ch], [deadlineChan]]); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  36773. _selection$1 = _r;
  36774. if (_selection$1[0] === 0) {
  36775. _tuple$1 = _selection$1[1];
  36776. item$1 = _tuple$1[0];
  36777. ok$1 = _tuple$1[1];
  36778. $s = -1; return c.handleFrame(item$1, ok$1);
  36779. } else if (_selection$1[0] === 1) {
  36780. $s = -1; return [ptrType$3.nil, errDeadlineReached];
  36781. }
  36782. $s = -1; return [ptrType$3.nil, $ifaceNil];
  36783. /* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType$3.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: conn.ptr.prototype.receiveFrame }; } $f._r = _r; $f._selection = _selection; $f._selection$1 = _selection$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.c = c; $f.deadlineChan = deadlineChan; $f.item = item; $f.item$1 = item$1; $f.now = now; $f.observeDeadline = observeDeadline; $f.ok = ok; $f.ok$1 = ok$1; $f.timer = timer; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  36784. };
  36785. conn.prototype.receiveFrame = function(observeDeadline) { return this.$val.receiveFrame(observeDeadline); };
  36786. getFrameData = function(obj) {
  36787. var constructor, obj, uint8Array;
  36788. constructor = obj.constructor;
  36789. if (constructor === $global.ArrayBuffer) {
  36790. uint8Array = new ($global.Uint8Array)(obj);
  36791. return $assertType($internalize(uint8Array, $emptyInterface), sliceType$1);
  36792. }
  36793. return (new sliceType$1($stringToBytes($internalize(obj, $String))));
  36794. };
  36795. conn.ptr.prototype.Read = function(b) {
  36796. var _r, _tmp, _tmp$1, _tuple, _tuple$1, b, c, err, frame, n, receivedBytes, $s, $r;
  36797. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; b = $f.b; c = $f.c; err = $f.err; frame = $f.frame; n = $f.n; receivedBytes = $f.receivedBytes; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  36798. n = 0;
  36799. err = $ifaceNil;
  36800. c = this;
  36801. if (!(c.readBuf === ptrType$1.nil)) {
  36802. _tuple = c.readBuf.Read(b);
  36803. n = _tuple[0];
  36804. err = _tuple[1];
  36805. if ($interfaceIsEqual(err, io.EOF)) {
  36806. c.readBuf = ptrType$1.nil;
  36807. err = $ifaceNil;
  36808. }
  36809. if (n > 0) {
  36810. $s = -1; return [n, err];
  36811. }
  36812. }
  36813. _r = c.receiveFrame(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  36814. _tuple$1 = _r;
  36815. frame = _tuple$1[0];
  36816. err = _tuple$1[1];
  36817. if (!($interfaceIsEqual(err, $ifaceNil))) {
  36818. _tmp = 0;
  36819. _tmp$1 = err;
  36820. n = _tmp;
  36821. err = _tmp$1;
  36822. $s = -1; return [n, err];
  36823. }
  36824. receivedBytes = getFrameData(frame.Object.data);
  36825. n = $copySlice(b, receivedBytes);
  36826. if (n >= receivedBytes.$length) {
  36827. $s = -1; return [n, err];
  36828. }
  36829. c.readBuf = bytes.NewReader($subslice(receivedBytes, n));
  36830. $s = -1; return [n, err];
  36831. /* */ } return; } if ($f === undefined) { $f = { $blk: conn.ptr.prototype.Read }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.b = b; $f.c = c; $f.err = err; $f.frame = frame; $f.n = n; $f.receivedBytes = receivedBytes; $f.$s = $s; $f.$r = $r; return $f;
  36832. };
  36833. conn.prototype.Read = function(b) { return this.$val.Read(b); };
  36834. conn.ptr.prototype.Write = function(b) {
  36835. var _tmp, _tmp$1, _tmp$2, _tmp$3, b, c, err, n;
  36836. n = 0;
  36837. err = $ifaceNil;
  36838. c = this;
  36839. err = c.WebSocket.Send(b);
  36840. if (!($interfaceIsEqual(err, $ifaceNil))) {
  36841. _tmp = 0;
  36842. _tmp$1 = err;
  36843. n = _tmp;
  36844. err = _tmp$1;
  36845. return [n, err];
  36846. }
  36847. _tmp$2 = b.$length;
  36848. _tmp$3 = $ifaceNil;
  36849. n = _tmp$2;
  36850. err = _tmp$3;
  36851. return [n, err];
  36852. };
  36853. conn.prototype.Write = function(b) { return this.$val.Write(b); };
  36854. conn.ptr.prototype.LocalAddr = function() {
  36855. var c;
  36856. c = this;
  36857. $panic(new $String("we are unable to implement websocket.conn.LocalAddr() due to limitations in the underlying JavaScript API"));
  36858. };
  36859. conn.prototype.LocalAddr = function() { return this.$val.LocalAddr(); };
  36860. conn.ptr.prototype.RemoteAddr = function() {
  36861. var _r, _tuple, c, err, wsURL, $s, $r;
  36862. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; c = $f.c; err = $f.err; wsURL = $f.wsURL; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  36863. c = this;
  36864. _r = url.Parse($internalize(c.WebSocket.Object.url, $String)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  36865. _tuple = _r;
  36866. wsURL = _tuple[0];
  36867. err = _tuple[1];
  36868. if (!($interfaceIsEqual(err, $ifaceNil))) {
  36869. $panic(err);
  36870. }
  36871. $s = -1; return new addr.ptr(wsURL);
  36872. /* */ } return; } if ($f === undefined) { $f = { $blk: conn.ptr.prototype.RemoteAddr }; } $f._r = _r; $f._tuple = _tuple; $f.c = c; $f.err = err; $f.wsURL = wsURL; $f.$s = $s; $f.$r = $r; return $f;
  36873. };
  36874. conn.prototype.RemoteAddr = function() { return this.$val.RemoteAddr(); };
  36875. conn.ptr.prototype.SetDeadline = function(t) {
  36876. var c, t;
  36877. c = this;
  36878. time.Time.copy(c.readDeadline, t);
  36879. return $ifaceNil;
  36880. };
  36881. conn.prototype.SetDeadline = function(t) { return this.$val.SetDeadline(t); };
  36882. conn.ptr.prototype.SetReadDeadline = function(t) {
  36883. var c, t;
  36884. c = this;
  36885. time.Time.copy(c.readDeadline, t);
  36886. return $ifaceNil;
  36887. };
  36888. conn.prototype.SetReadDeadline = function(t) { return this.$val.SetReadDeadline(t); };
  36889. conn.ptr.prototype.SetWriteDeadline = function(t) {
  36890. var c, t;
  36891. c = this;
  36892. return $ifaceNil;
  36893. };
  36894. conn.prototype.SetWriteDeadline = function(t) { return this.$val.SetWriteDeadline(t); };
  36895. ptrType$5.methods = [{prop: "Network", name: "Network", pkg: "", typ: $funcType([], [$String], false)}];
  36896. ptrType$6.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
  36897. ptrType$8.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}];
  36898. ptrType$9.methods = [{prop: "onMessage", name: "onMessage", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/gopherjs/websocket", typ: $funcType([ptrType$7], [], false)}, {prop: "onClose", name: "onClose", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/gopherjs/websocket", typ: $funcType([ptrType$7], [], false)}, {prop: "initialize", name: "initialize", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/gopherjs/websocket", typ: $funcType([], [], false)}, {prop: "handleFrame", name: "handleFrame", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/gopherjs/websocket", typ: $funcType([ptrType$3, $Bool], [ptrType$3, $error], false)}, {prop: "receiveFrame", name: "receiveFrame", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/gopherjs/websocket", typ: $funcType([$Bool], [ptrType$3, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "LocalAddr", name: "LocalAddr", pkg: "", typ: $funcType([], [net.Addr], false)}, {prop: "RemoteAddr", name: "RemoteAddr", pkg: "", typ: $funcType([], [net.Addr], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}];
  36899. addr.init("", [{prop: "URL", name: "URL", embedded: true, exported: true, typ: ptrType$4, tag: ""}]);
  36900. closeError.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$7, tag: ""}, {prop: "Code", name: "Code", embedded: false, exported: true, typ: $Int, tag: "js:\"code\""}, {prop: "Reason", name: "Reason", embedded: false, exported: true, typ: $String, tag: "js:\"reason\""}, {prop: "WasClean", name: "WasClean", embedded: false, exported: true, typ: $Bool, tag: "js:\"wasClean\""}]);
  36901. deadlineErr.init("", []);
  36902. conn.init("github.com/xiaokangwang/BrowserBridge/vendor/github.com/gopherjs/websocket", [{prop: "WebSocket", name: "WebSocket", embedded: true, exported: true, typ: ptrType, tag: ""}, {prop: "ch", name: "ch", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "readBuf", name: "readBuf", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "readDeadline", name: "readDeadline", embedded: false, exported: false, typ: time.Time, tag: ""}]);
  36903. messageEvent.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$7, tag: ""}, {prop: "Data", name: "Data", embedded: false, exported: true, typ: ptrType$7, tag: "js:\"data\""}]);
  36904. $init = function() {
  36905. $pkg.$init = function() {};
  36906. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  36907. $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  36908. $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  36909. $r = js.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  36910. $r = websocketjs.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  36911. $r = io.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  36912. $r = net.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  36913. $r = url.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  36914. $r = time.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  36915. errDeadlineReached = new deadlineErr.ptr();
  36916. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  36917. };
  36918. $pkg.$init = $init;
  36919. return $pkg;
  36920. })();
  36921. $packages["container/heap"] = (function() {
  36922. var $pkg = {}, $init, sort, Push, Pop, up, down;
  36923. sort = $packages["sort"];
  36924. Push = function(h, x) {
  36925. var _arg, _arg$1, _r, h, x, $s, $r;
  36926. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; h = $f.h; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  36927. $r = h.Push(x); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  36928. _arg = h;
  36929. _r = h.Len(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  36930. _arg$1 = _r - 1 >> 0;
  36931. $r = up(_arg, _arg$1); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  36932. $s = -1; return;
  36933. /* */ } return; } if ($f === undefined) { $f = { $blk: Push }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f.h = h; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
  36934. };
  36935. $pkg.Push = Push;
  36936. Pop = function(h) {
  36937. var _r, _r$1, _r$2, h, n, $s, $r;
  36938. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; h = $f.h; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  36939. _r = h.Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  36940. n = _r - 1 >> 0;
  36941. $r = h.Swap(0, n); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  36942. _r$1 = down(h, 0, n); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  36943. _r$1;
  36944. _r$2 = h.Pop(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  36945. $s = -1; return _r$2;
  36946. /* */ } return; } if ($f === undefined) { $f = { $blk: Pop }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.h = h; $f.n = n; $f.$s = $s; $f.$r = $r; return $f;
  36947. };
  36948. $pkg.Pop = Pop;
  36949. up = function(h, j) {
  36950. var _q, _r, _v, h, i, j, $s, $r;
  36951. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; _v = $f._v; h = $f.h; i = $f.i; j = $f.j; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  36952. /* while (true) { */ case 1:
  36953. i = (_q = ((j - 1 >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
  36954. if (i === j) { _v = true; $s = 5; continue s; }
  36955. _r = h.Less(j, i); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  36956. _v = !_r; case 5:
  36957. /* */ if (_v) { $s = 3; continue; }
  36958. /* */ $s = 4; continue;
  36959. /* if (_v) { */ case 3:
  36960. /* break; */ $s = 2; continue;
  36961. /* } */ case 4:
  36962. $r = h.Swap(i, j); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  36963. j = i;
  36964. /* } */ $s = 1; continue; case 2:
  36965. $s = -1; return;
  36966. /* */ } return; } if ($f === undefined) { $f = { $blk: up }; } $f._q = _q; $f._r = _r; $f._v = _v; $f.h = h; $f.i = i; $f.j = j; $f.$s = $s; $f.$r = $r; return $f;
  36967. };
  36968. down = function(h, i0, n) {
  36969. var _r, _r$1, _v, h, i, i0, j, j1, j2, n, $s, $r;
  36970. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _v = $f._v; h = $f.h; i = $f.i; i0 = $f.i0; j = $f.j; j1 = $f.j1; j2 = $f.j2; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  36971. i = i0;
  36972. /* while (true) { */ case 1:
  36973. j1 = ($imul(2, i)) + 1 >> 0;
  36974. if (j1 >= n || j1 < 0) {
  36975. /* break; */ $s = 2; continue;
  36976. }
  36977. j = j1;
  36978. j2 = j1 + 1 >> 0;
  36979. if (!(j2 < n)) { _v = false; $s = 5; continue s; }
  36980. _r = h.Less(j2, j1); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  36981. _v = _r; case 5:
  36982. /* */ if (_v) { $s = 3; continue; }
  36983. /* */ $s = 4; continue;
  36984. /* if (_v) { */ case 3:
  36985. j = j2;
  36986. /* } */ case 4:
  36987. _r$1 = h.Less(j, i); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  36988. /* */ if (!_r$1) { $s = 7; continue; }
  36989. /* */ $s = 8; continue;
  36990. /* if (!_r$1) { */ case 7:
  36991. /* break; */ $s = 2; continue;
  36992. /* } */ case 8:
  36993. $r = h.Swap(i, j); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  36994. i = j;
  36995. /* } */ $s = 1; continue; case 2:
  36996. $s = -1; return i > i0;
  36997. /* */ } return; } if ($f === undefined) { $f = { $blk: down }; } $f._r = _r; $f._r$1 = _r$1; $f._v = _v; $f.h = h; $f.i = i; $f.i0 = i0; $f.j = j; $f.j1 = j1; $f.j2 = j2; $f.n = n; $f.$s = $s; $f.$r = $r; return $f;
  36998. };
  36999. $init = function() {
  37000. $pkg.$init = function() {};
  37001. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  37002. $r = sort.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37003. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  37004. };
  37005. $pkg.$init = $init;
  37006. return $pkg;
  37007. })();
  37008. $packages["github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux"] = (function() {
  37009. var $pkg = {}, $init, heap, binary, errors, fmt, io, math, net, sync, atomic, time, Allocator, Frame, rawHeader, updHeader, Config, writeRequest, writeResult, buffersWriter, Session, shaperHeap, Stream, ptrType, sliceType, sliceType$1, sliceType$2, ptrType$1, ptrType$2, structType, ptrType$3, interfaceType, interfaceType$1, ptrType$4, arrayType, ptrType$5, sliceType$3, ptrType$6, ptrType$7, chanType, chanType$1, chanType$2, mapType, chanType$3, chanType$4, chanType$5, defaultAllocator, debruijinPos, init, NewAllocator, msb, newFrame, DefaultConfig, VerifyConfig, Client, newSession, newStream;
  37010. heap = $packages["container/heap"];
  37011. binary = $packages["encoding/binary"];
  37012. errors = $packages["errors"];
  37013. fmt = $packages["fmt"];
  37014. io = $packages["io"];
  37015. math = $packages["math"];
  37016. net = $packages["net"];
  37017. sync = $packages["sync"];
  37018. atomic = $packages["sync/atomic"];
  37019. time = $packages["time"];
  37020. Allocator = $pkg.Allocator = $newType(0, $kindStruct, "smux.Allocator", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", true, function(buffers_) {
  37021. this.$val = this;
  37022. if (arguments.length === 0) {
  37023. this.buffers = sliceType.nil;
  37024. return;
  37025. }
  37026. this.buffers = buffers_;
  37027. });
  37028. Frame = $pkg.Frame = $newType(0, $kindStruct, "smux.Frame", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", true, function(ver_, cmd_, sid_, data_) {
  37029. this.$val = this;
  37030. if (arguments.length === 0) {
  37031. this.ver = 0;
  37032. this.cmd = 0;
  37033. this.sid = 0;
  37034. this.data = sliceType$1.nil;
  37035. return;
  37036. }
  37037. this.ver = ver_;
  37038. this.cmd = cmd_;
  37039. this.sid = sid_;
  37040. this.data = data_;
  37041. });
  37042. rawHeader = $pkg.rawHeader = $newType(8, $kindArray, "smux.rawHeader", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", false, null);
  37043. updHeader = $pkg.updHeader = $newType(8, $kindArray, "smux.updHeader", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", false, null);
  37044. Config = $pkg.Config = $newType(0, $kindStruct, "smux.Config", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", true, function(Version_, KeepAliveInterval_, KeepAliveTimeout_, MaxFrameSize_, MaxReceiveBuffer_, MaxStreamBuffer_) {
  37045. this.$val = this;
  37046. if (arguments.length === 0) {
  37047. this.Version = 0;
  37048. this.KeepAliveInterval = new time.Duration(0, 0);
  37049. this.KeepAliveTimeout = new time.Duration(0, 0);
  37050. this.MaxFrameSize = 0;
  37051. this.MaxReceiveBuffer = 0;
  37052. this.MaxStreamBuffer = 0;
  37053. return;
  37054. }
  37055. this.Version = Version_;
  37056. this.KeepAliveInterval = KeepAliveInterval_;
  37057. this.KeepAliveTimeout = KeepAliveTimeout_;
  37058. this.MaxFrameSize = MaxFrameSize_;
  37059. this.MaxReceiveBuffer = MaxReceiveBuffer_;
  37060. this.MaxStreamBuffer = MaxStreamBuffer_;
  37061. });
  37062. writeRequest = $pkg.writeRequest = $newType(0, $kindStruct, "smux.writeRequest", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", false, function(prio_, frame_, result_) {
  37063. this.$val = this;
  37064. if (arguments.length === 0) {
  37065. this.prio = new $Uint64(0, 0);
  37066. this.frame = new Frame.ptr(0, 0, 0, sliceType$1.nil);
  37067. this.result = $chanNil;
  37068. return;
  37069. }
  37070. this.prio = prio_;
  37071. this.frame = frame_;
  37072. this.result = result_;
  37073. });
  37074. writeResult = $pkg.writeResult = $newType(0, $kindStruct, "smux.writeResult", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", false, function(n_, err_) {
  37075. this.$val = this;
  37076. if (arguments.length === 0) {
  37077. this.n = 0;
  37078. this.err = $ifaceNil;
  37079. return;
  37080. }
  37081. this.n = n_;
  37082. this.err = err_;
  37083. });
  37084. buffersWriter = $pkg.buffersWriter = $newType(8, $kindInterface, "smux.buffersWriter", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", false, null);
  37085. Session = $pkg.Session = $newType(0, $kindStruct, "smux.Session", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", true, function(conn_, config_, nextStreamID_, nextStreamIDLock_, bucket_, bucketNotify_, streams_, streamLock_, die_, dieOnce_, socketReadError_, socketWriteError_, chSocketReadError_, chSocketWriteError_, socketReadErrorOnce_, socketWriteErrorOnce_, protoError_, chProtoError_, protoErrorOnce_, chAccepts_, dataReady_, goAway_, deadline_, shaper_, writes_) {
  37086. this.$val = this;
  37087. if (arguments.length === 0) {
  37088. this.conn = $ifaceNil;
  37089. this.config = ptrType$1.nil;
  37090. this.nextStreamID = 0;
  37091. this.nextStreamIDLock = new sync.Mutex.ptr(0, 0);
  37092. this.bucket = 0;
  37093. this.bucketNotify = $chanNil;
  37094. this.streams = false;
  37095. this.streamLock = new sync.Mutex.ptr(0, 0);
  37096. this.die = $chanNil;
  37097. this.dieOnce = new sync.Once.ptr(new sync.Mutex.ptr(0, 0), 0);
  37098. this.socketReadError = new atomic.Value.ptr($ifaceNil);
  37099. this.socketWriteError = new atomic.Value.ptr($ifaceNil);
  37100. this.chSocketReadError = $chanNil;
  37101. this.chSocketWriteError = $chanNil;
  37102. this.socketReadErrorOnce = new sync.Once.ptr(new sync.Mutex.ptr(0, 0), 0);
  37103. this.socketWriteErrorOnce = new sync.Once.ptr(new sync.Mutex.ptr(0, 0), 0);
  37104. this.protoError = new atomic.Value.ptr($ifaceNil);
  37105. this.chProtoError = $chanNil;
  37106. this.protoErrorOnce = new sync.Once.ptr(new sync.Mutex.ptr(0, 0), 0);
  37107. this.chAccepts = $chanNil;
  37108. this.dataReady = 0;
  37109. this.goAway = 0;
  37110. this.deadline = new atomic.Value.ptr($ifaceNil);
  37111. this.shaper = $chanNil;
  37112. this.writes = $chanNil;
  37113. return;
  37114. }
  37115. this.conn = conn_;
  37116. this.config = config_;
  37117. this.nextStreamID = nextStreamID_;
  37118. this.nextStreamIDLock = nextStreamIDLock_;
  37119. this.bucket = bucket_;
  37120. this.bucketNotify = bucketNotify_;
  37121. this.streams = streams_;
  37122. this.streamLock = streamLock_;
  37123. this.die = die_;
  37124. this.dieOnce = dieOnce_;
  37125. this.socketReadError = socketReadError_;
  37126. this.socketWriteError = socketWriteError_;
  37127. this.chSocketReadError = chSocketReadError_;
  37128. this.chSocketWriteError = chSocketWriteError_;
  37129. this.socketReadErrorOnce = socketReadErrorOnce_;
  37130. this.socketWriteErrorOnce = socketWriteErrorOnce_;
  37131. this.protoError = protoError_;
  37132. this.chProtoError = chProtoError_;
  37133. this.protoErrorOnce = protoErrorOnce_;
  37134. this.chAccepts = chAccepts_;
  37135. this.dataReady = dataReady_;
  37136. this.goAway = goAway_;
  37137. this.deadline = deadline_;
  37138. this.shaper = shaper_;
  37139. this.writes = writes_;
  37140. });
  37141. shaperHeap = $pkg.shaperHeap = $newType(12, $kindSlice, "smux.shaperHeap", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", false, null);
  37142. Stream = $pkg.Stream = $newType(0, $kindStruct, "smux.Stream", true, "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", true, function(id_, sess_, buffers_, heads_, bufferLock_, frameSize_, chReadEvent_, die_, dieOnce_, chFinEvent_, finEventOnce_, readDeadline_, writeDeadline_, numRead_, numWritten_, incr_, peerConsumed_, peerWindow_, chUpdate_) {
  37143. this.$val = this;
  37144. if (arguments.length === 0) {
  37145. this.id = 0;
  37146. this.sess = ptrType$2.nil;
  37147. this.buffers = sliceType$3.nil;
  37148. this.heads = sliceType$3.nil;
  37149. this.bufferLock = new sync.Mutex.ptr(0, 0);
  37150. this.frameSize = 0;
  37151. this.chReadEvent = $chanNil;
  37152. this.die = $chanNil;
  37153. this.dieOnce = new sync.Once.ptr(new sync.Mutex.ptr(0, 0), 0);
  37154. this.chFinEvent = $chanNil;
  37155. this.finEventOnce = new sync.Once.ptr(new sync.Mutex.ptr(0, 0), 0);
  37156. this.readDeadline = new atomic.Value.ptr($ifaceNil);
  37157. this.writeDeadline = new atomic.Value.ptr($ifaceNil);
  37158. this.numRead = 0;
  37159. this.numWritten = 0;
  37160. this.incr = 0;
  37161. this.peerConsumed = 0;
  37162. this.peerWindow = 0;
  37163. this.chUpdate = $chanNil;
  37164. return;
  37165. }
  37166. this.id = id_;
  37167. this.sess = sess_;
  37168. this.buffers = buffers_;
  37169. this.heads = heads_;
  37170. this.bufferLock = bufferLock_;
  37171. this.frameSize = frameSize_;
  37172. this.chReadEvent = chReadEvent_;
  37173. this.die = die_;
  37174. this.dieOnce = dieOnce_;
  37175. this.chFinEvent = chFinEvent_;
  37176. this.finEventOnce = finEventOnce_;
  37177. this.readDeadline = readDeadline_;
  37178. this.writeDeadline = writeDeadline_;
  37179. this.numRead = numRead_;
  37180. this.numWritten = numWritten_;
  37181. this.incr = incr_;
  37182. this.peerConsumed = peerConsumed_;
  37183. this.peerWindow = peerWindow_;
  37184. this.chUpdate = chUpdate_;
  37185. });
  37186. ptrType = $ptrType(Allocator);
  37187. sliceType = $sliceType(sync.Pool);
  37188. sliceType$1 = $sliceType($Uint8);
  37189. sliceType$2 = $sliceType($emptyInterface);
  37190. ptrType$1 = $ptrType(Config);
  37191. ptrType$2 = $ptrType(Session);
  37192. structType = $structType("", []);
  37193. ptrType$3 = $ptrType(Stream);
  37194. interfaceType = $interfaceType([{prop: "LocalAddr", name: "LocalAddr", pkg: "", typ: $funcType([], [net.Addr], false)}]);
  37195. interfaceType$1 = $interfaceType([{prop: "RemoteAddr", name: "RemoteAddr", pkg: "", typ: $funcType([], [net.Addr], false)}]);
  37196. ptrType$4 = $ptrType($Int32);
  37197. arrayType = $arrayType($Uint8, 8);
  37198. ptrType$5 = $ptrType(shaperHeap);
  37199. sliceType$3 = $sliceType(sliceType$1);
  37200. ptrType$6 = $ptrType(time.Timer);
  37201. ptrType$7 = $ptrType($Uint32);
  37202. chanType = $chanType(writeResult, false, false);
  37203. chanType$1 = $chanType(time.Time, false, true);
  37204. chanType$2 = $chanType(structType, false, false);
  37205. mapType = $mapType($Uint32, ptrType$3);
  37206. chanType$3 = $chanType(ptrType$3, false, false);
  37207. chanType$4 = $chanType(writeRequest, false, false);
  37208. chanType$5 = $chanType(structType, false, true);
  37209. init = function() {
  37210. defaultAllocator = NewAllocator();
  37211. };
  37212. NewAllocator = function() {
  37213. var _i, _ref, alloc, i, k, x;
  37214. alloc = new Allocator.ptr(sliceType.nil);
  37215. alloc.buffers = $makeSlice(sliceType, 17);
  37216. _ref = alloc.buffers;
  37217. _i = 0;
  37218. while (true) {
  37219. if (!(_i < _ref.$length)) { break; }
  37220. i = [i];
  37221. k = _i;
  37222. i[0] = k;
  37223. (x = alloc.buffers, ((k < 0 || k >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + k])).New = (function(i) { return function() {
  37224. var y;
  37225. return $makeSlice(sliceType$1, ((y = ((i[0] >>> 0)), y < 32 ? (1 << y) : 0) >> 0));
  37226. }; })(i);
  37227. _i++;
  37228. }
  37229. return alloc;
  37230. };
  37231. $pkg.NewAllocator = NewAllocator;
  37232. Allocator.ptr.prototype.Get = function(size) {
  37233. var _r, _r$1, alloc, bits, size, x, x$1, x$2, y, $s, $r;
  37234. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; alloc = $f.alloc; bits = $f.bits; size = $f.size; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  37235. alloc = this;
  37236. if (size <= 0 || size > 65536) {
  37237. $s = -1; return sliceType$1.nil;
  37238. }
  37239. bits = msb(size);
  37240. /* */ if (size === ((y = bits, y < 32 ? (1 << y) : 0) >> 0)) { $s = 1; continue; }
  37241. /* */ $s = 2; continue;
  37242. /* if (size === ((y = bits, y < 32 ? (1 << y) : 0) >> 0)) { */ case 1:
  37243. _r = (x = alloc.buffers, ((bits < 0 || bits >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + bits])).Get(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  37244. $s = -1; return $subslice($assertType(_r, sliceType$1), 0, size);
  37245. /* } else { */ case 2:
  37246. _r$1 = (x$1 = alloc.buffers, x$2 = bits + 1 << 24 >>> 24, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])).Get(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  37247. $s = -1; return $subslice($assertType(_r$1, sliceType$1), 0, size);
  37248. /* } */ case 3:
  37249. $s = -1; return sliceType$1.nil;
  37250. /* */ } return; } if ($f === undefined) { $f = { $blk: Allocator.ptr.prototype.Get }; } $f._r = _r; $f._r$1 = _r$1; $f.alloc = alloc; $f.bits = bits; $f.size = size; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.y = y; $f.$s = $s; $f.$r = $r; return $f;
  37251. };
  37252. Allocator.prototype.Get = function(size) { return this.$val.Get(size); };
  37253. Allocator.ptr.prototype.Put = function(buf) {
  37254. var alloc, bits, buf, x, y;
  37255. alloc = this;
  37256. bits = msb(buf.$capacity);
  37257. if ((buf.$capacity === 0) || buf.$capacity > 65536 || !((buf.$capacity === ((y = bits, y < 32 ? (1 << y) : 0) >> 0)))) {
  37258. return errors.New("allocator Put() incorrect buffer size");
  37259. }
  37260. (x = alloc.buffers, ((bits < 0 || bits >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + bits])).Put(buf);
  37261. return $ifaceNil;
  37262. };
  37263. Allocator.prototype.Put = function(buf) { return this.$val.Put(buf); };
  37264. msb = function(size) {
  37265. var size, v, x;
  37266. v = ((size >>> 0));
  37267. v = (v | ((v >>> 1 >>> 0))) >>> 0;
  37268. v = (v | ((v >>> 2 >>> 0))) >>> 0;
  37269. v = (v | ((v >>> 4 >>> 0))) >>> 0;
  37270. v = (v | ((v >>> 8 >>> 0))) >>> 0;
  37271. v = (v | ((v >>> 16 >>> 0))) >>> 0;
  37272. return (x = (($imul(v, 130329821) >>> 0)) >>> 27 >>> 0, ((x < 0 || x >= debruijinPos.length) ? ($throwRuntimeError("index out of range"), undefined) : debruijinPos[x]));
  37273. };
  37274. newFrame = function(version, cmd, sid) {
  37275. var cmd, sid, version;
  37276. return new Frame.ptr(version, cmd, sid, sliceType$1.nil);
  37277. };
  37278. rawHeader.prototype.Version = function() {
  37279. var h;
  37280. h = this.$val;
  37281. return h[0];
  37282. };
  37283. $ptrType(rawHeader).prototype.Version = function() { return new rawHeader(this.$get()).Version(); };
  37284. rawHeader.prototype.Cmd = function() {
  37285. var h;
  37286. h = this.$val;
  37287. return h[1];
  37288. };
  37289. $ptrType(rawHeader).prototype.Cmd = function() { return new rawHeader(this.$get()).Cmd(); };
  37290. rawHeader.prototype.Length = function() {
  37291. var h;
  37292. h = this.$val;
  37293. return $clone(binary.LittleEndian, binary.littleEndian).Uint16($subslice(new sliceType$1(h), 2));
  37294. };
  37295. $ptrType(rawHeader).prototype.Length = function() { return new rawHeader(this.$get()).Length(); };
  37296. rawHeader.prototype.StreamID = function() {
  37297. var h;
  37298. h = this.$val;
  37299. return $clone(binary.LittleEndian, binary.littleEndian).Uint32($subslice(new sliceType$1(h), 4));
  37300. };
  37301. $ptrType(rawHeader).prototype.StreamID = function() { return new rawHeader(this.$get()).StreamID(); };
  37302. rawHeader.prototype.String = function() {
  37303. var _r, h, $s, $r;
  37304. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; h = $f.h; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  37305. h = this.$val;
  37306. _r = fmt.Sprintf("Version:%d Cmd:%d StreamID:%d Length:%d", new sliceType$2([new $Uint8(new rawHeader($clone(h, rawHeader)).Version()), new $Uint8(new rawHeader($clone(h, rawHeader)).Cmd()), new $Uint32(new rawHeader($clone(h, rawHeader)).StreamID()), new $Uint16(new rawHeader($clone(h, rawHeader)).Length())])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  37307. $s = -1; return _r;
  37308. /* */ } return; } if ($f === undefined) { $f = { $blk: rawHeader.prototype.String }; } $f._r = _r; $f.h = h; $f.$s = $s; $f.$r = $r; return $f;
  37309. };
  37310. $ptrType(rawHeader).prototype.String = function() { return new rawHeader(this.$get()).String(); };
  37311. updHeader.prototype.Consumed = function() {
  37312. var h;
  37313. h = this.$val;
  37314. return $clone(binary.LittleEndian, binary.littleEndian).Uint32(new sliceType$1(h));
  37315. };
  37316. $ptrType(updHeader).prototype.Consumed = function() { return new updHeader(this.$get()).Consumed(); };
  37317. updHeader.prototype.Window = function() {
  37318. var h;
  37319. h = this.$val;
  37320. return $clone(binary.LittleEndian, binary.littleEndian).Uint32($subslice(new sliceType$1(h), 4));
  37321. };
  37322. $ptrType(updHeader).prototype.Window = function() { return new updHeader(this.$get()).Window(); };
  37323. DefaultConfig = function() {
  37324. return new Config.ptr(1, new time.Duration(2, 1410065408), new time.Duration(6, 4230196224), 32768, 4194304, 65536);
  37325. };
  37326. $pkg.DefaultConfig = DefaultConfig;
  37327. VerifyConfig = function(config) {
  37328. var _r, config, x, x$1, x$2, $s, $r;
  37329. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; config = $f.config; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  37330. if (!((config.Version === 1) || (config.Version === 2))) {
  37331. $s = -1; return errors.New("unsupported protocol version");
  37332. }
  37333. if ((x = config.KeepAliveInterval, (x.$high === 0 && x.$low === 0))) {
  37334. $s = -1; return errors.New("keep-alive interval must be positive");
  37335. }
  37336. /* */ if ((x$1 = config.KeepAliveTimeout, x$2 = config.KeepAliveInterval, (x$1.$high < x$2.$high || (x$1.$high === x$2.$high && x$1.$low < x$2.$low)))) { $s = 1; continue; }
  37337. /* */ $s = 2; continue;
  37338. /* if ((x$1 = config.KeepAliveTimeout, x$2 = config.KeepAliveInterval, (x$1.$high < x$2.$high || (x$1.$high === x$2.$high && x$1.$low < x$2.$low)))) { */ case 1:
  37339. _r = fmt.Errorf("keep-alive timeout must be larger than keep-alive interval", new sliceType$2([])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  37340. $s = -1; return _r;
  37341. /* } */ case 2:
  37342. if (config.MaxFrameSize <= 0) {
  37343. $s = -1; return errors.New("max frame size must be positive");
  37344. }
  37345. if (config.MaxFrameSize > 65535) {
  37346. $s = -1; return errors.New("max frame size must not be larger than 65535");
  37347. }
  37348. if (config.MaxReceiveBuffer <= 0) {
  37349. $s = -1; return errors.New("max receive buffer must be positive");
  37350. }
  37351. if (config.MaxStreamBuffer <= 0) {
  37352. $s = -1; return errors.New("max stream buffer must be positive");
  37353. }
  37354. if (config.MaxStreamBuffer > config.MaxReceiveBuffer) {
  37355. $s = -1; return errors.New("max stream buffer must not be larger than max receive buffer");
  37356. }
  37357. if (config.MaxStreamBuffer > 2147483647) {
  37358. $s = -1; return errors.New("max stream buffer cannot be larger than 2147483647");
  37359. }
  37360. $s = -1; return $ifaceNil;
  37361. /* */ } return; } if ($f === undefined) { $f = { $blk: VerifyConfig }; } $f._r = _r; $f.config = config; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f;
  37362. };
  37363. $pkg.VerifyConfig = VerifyConfig;
  37364. Client = function(conn, config) {
  37365. var _r, config, conn, err, $s, $r;
  37366. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; config = $f.config; conn = $f.conn; err = $f.err; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  37367. if (config === ptrType$1.nil) {
  37368. config = DefaultConfig();
  37369. }
  37370. _r = VerifyConfig(config); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  37371. err = _r;
  37372. if (!($interfaceIsEqual(err, $ifaceNil))) {
  37373. $s = -1; return [ptrType$2.nil, err];
  37374. }
  37375. $s = -1; return [newSession(config, conn, true), $ifaceNil];
  37376. /* */ } return; } if ($f === undefined) { $f = { $blk: Client }; } $f._r = _r; $f.config = config; $f.conn = conn; $f.err = err; $f.$s = $s; $f.$r = $r; return $f;
  37377. };
  37378. $pkg.Client = Client;
  37379. newSession = function(config, conn, client) {
  37380. var client, config, conn, s;
  37381. s = new Session.ptr($ifaceNil, ptrType$1.nil, 0, new sync.Mutex.ptr(0, 0), 0, $chanNil, false, new sync.Mutex.ptr(0, 0), $chanNil, new sync.Once.ptr(new sync.Mutex.ptr(0, 0), 0), new atomic.Value.ptr($ifaceNil), new atomic.Value.ptr($ifaceNil), $chanNil, $chanNil, new sync.Once.ptr(new sync.Mutex.ptr(0, 0), 0), new sync.Once.ptr(new sync.Mutex.ptr(0, 0), 0), new atomic.Value.ptr($ifaceNil), $chanNil, new sync.Once.ptr(new sync.Mutex.ptr(0, 0), 0), $chanNil, 0, 0, new atomic.Value.ptr($ifaceNil), $chanNil, $chanNil);
  37382. s.die = new $Chan(structType, 0);
  37383. s.conn = conn;
  37384. s.config = config;
  37385. s.streams = {};
  37386. s.chAccepts = new $Chan(ptrType$3, 1024);
  37387. s.bucket = ((config.MaxReceiveBuffer >> 0));
  37388. s.bucketNotify = new $Chan(structType, 1);
  37389. s.shaper = new $Chan(writeRequest, 0);
  37390. s.writes = new $Chan(writeRequest, 0);
  37391. s.chSocketReadError = new $Chan(structType, 0);
  37392. s.chSocketWriteError = new $Chan(structType, 0);
  37393. s.chProtoError = new $Chan(structType, 0);
  37394. if (client) {
  37395. s.nextStreamID = 1;
  37396. } else {
  37397. s.nextStreamID = 0;
  37398. }
  37399. $go($methodVal(s, "shaperLoop"), []);
  37400. $go($methodVal(s, "recvLoop"), []);
  37401. $go($methodVal(s, "sendLoop"), []);
  37402. $go($methodVal(s, "keepalive"), []);
  37403. return s;
  37404. };
  37405. Session.ptr.prototype.OpenStream = function() {
  37406. var _key, _r, _r$1, _selection, _tuple, err, s, sid, stream, $s, $deferred, $r;
  37407. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _key = $f._key; _r = $f._r; _r$1 = $f._r$1; _selection = $f._selection; _tuple = $f._tuple; err = $f.err; s = $f.s; sid = $f.sid; stream = $f.stream; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  37408. s = this;
  37409. if (s.IsClosed()) {
  37410. $s = -1; return [ptrType$3.nil, io.ErrClosedPipe];
  37411. }
  37412. $r = s.nextStreamIDLock.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37413. /* */ if (s.goAway > 0) { $s = 2; continue; }
  37414. /* */ $s = 3; continue;
  37415. /* if (s.goAway > 0) { */ case 2:
  37416. $r = s.nextStreamIDLock.Unlock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37417. $s = -1; return [ptrType$3.nil, $pkg.ErrGoAway];
  37418. /* } */ case 3:
  37419. s.nextStreamID = s.nextStreamID + (2) >>> 0;
  37420. sid = s.nextStreamID;
  37421. /* */ if (sid === (_r = sid % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))) { $s = 5; continue; }
  37422. /* */ $s = 6; continue;
  37423. /* if (sid === (_r = sid % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))) { */ case 5:
  37424. s.goAway = 1;
  37425. $r = s.nextStreamIDLock.Unlock(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37426. $s = -1; return [ptrType$3.nil, $pkg.ErrGoAway];
  37427. /* } */ case 6:
  37428. $r = s.nextStreamIDLock.Unlock(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37429. stream = newStream(sid, s.config.MaxFrameSize, s);
  37430. _r$1 = s.writeFrame($clone(newFrame(((s.config.Version << 24 >>> 24)), 0, sid), Frame)); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  37431. _tuple = _r$1;
  37432. err = _tuple[1];
  37433. if (!($interfaceIsEqual(err, $ifaceNil))) {
  37434. $s = -1; return [ptrType$3.nil, err];
  37435. }
  37436. $r = s.streamLock.Lock(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37437. $deferred.push([$methodVal(s.streamLock, "Unlock"), []]);
  37438. _selection = $select([[s.chSocketReadError], [s.chSocketWriteError], [s.die], []]);
  37439. if (_selection[0] === 0) {
  37440. $s = -1; return [ptrType$3.nil, $assertType(s.socketReadError.Load(), $error)];
  37441. } else if (_selection[0] === 1) {
  37442. $s = -1; return [ptrType$3.nil, $assertType(s.socketWriteError.Load(), $error)];
  37443. } else if (_selection[0] === 2) {
  37444. $s = -1; return [ptrType$3.nil, io.ErrClosedPipe];
  37445. } else if (_selection[0] === 3) {
  37446. _key = sid; (s.streams || $throwRuntimeError("assignment to entry in nil map"))[$Uint32.keyFor(_key)] = { k: _key, v: stream };
  37447. $s = -1; return [stream, $ifaceNil];
  37448. }
  37449. $s = -1; return [ptrType$3.nil, $ifaceNil];
  37450. /* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType$3.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: Session.ptr.prototype.OpenStream }; } $f._key = _key; $f._r = _r; $f._r$1 = _r$1; $f._selection = _selection; $f._tuple = _tuple; $f.err = err; $f.s = s; $f.sid = sid; $f.stream = stream; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  37451. };
  37452. Session.prototype.OpenStream = function() { return this.$val.OpenStream(); };
  37453. Session.ptr.prototype.Open = function() {
  37454. var _r, _returncast, s, $s, $r;
  37455. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _returncast = $f._returncast; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  37456. s = this;
  37457. _r = s.OpenStream(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  37458. _returncast = _r;
  37459. $s = -1; return [_returncast[0], _returncast[1]];
  37460. /* */ } return; } if ($f === undefined) { $f = { $blk: Session.ptr.prototype.Open }; } $f._r = _r; $f._returncast = _returncast; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  37461. };
  37462. Session.prototype.Open = function() { return this.$val.Open(); };
  37463. Session.ptr.prototype.AcceptStream = function() {
  37464. var _r, _selection, _tuple, d, deadline, ok, s, stream, timer, $s, $deferred, $r;
  37465. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _selection = $f._selection; _tuple = $f._tuple; d = $f.d; deadline = $f.deadline; ok = $f.ok; s = $f.s; stream = $f.stream; timer = $f.timer; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  37466. s = this;
  37467. deadline = $chanNil;
  37468. _tuple = $assertType(s.deadline.Load(), time.Time, true);
  37469. d = $clone(_tuple[0], time.Time);
  37470. ok = _tuple[1];
  37471. if (ok && !$clone(d, time.Time).IsZero()) {
  37472. timer = time.NewTimer(time.Until($clone(d, time.Time)));
  37473. $deferred.push([$methodVal(timer, "Stop"), []]);
  37474. deadline = timer.C;
  37475. }
  37476. _r = $select([[s.chAccepts], [deadline], [s.chSocketReadError], [s.chProtoError], [s.die]]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  37477. _selection = _r;
  37478. if (_selection[0] === 0) {
  37479. stream = _selection[1][0];
  37480. $s = -1; return [stream, $ifaceNil];
  37481. } else if (_selection[0] === 1) {
  37482. $s = -1; return [ptrType$3.nil, $pkg.ErrTimeout];
  37483. } else if (_selection[0] === 2) {
  37484. $s = -1; return [ptrType$3.nil, $assertType(s.socketReadError.Load(), $error)];
  37485. } else if (_selection[0] === 3) {
  37486. $s = -1; return [ptrType$3.nil, $assertType(s.protoError.Load(), $error)];
  37487. } else if (_selection[0] === 4) {
  37488. $s = -1; return [ptrType$3.nil, io.ErrClosedPipe];
  37489. }
  37490. $s = -1; return [ptrType$3.nil, $ifaceNil];
  37491. /* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType$3.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: Session.ptr.prototype.AcceptStream }; } $f._r = _r; $f._selection = _selection; $f._tuple = _tuple; $f.d = d; $f.deadline = deadline; $f.ok = ok; $f.s = s; $f.stream = stream; $f.timer = timer; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  37492. };
  37493. Session.prototype.AcceptStream = function() { return this.$val.AcceptStream(); };
  37494. Session.ptr.prototype.Accept = function() {
  37495. var _r, _returncast, s, $s, $r;
  37496. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _returncast = $f._returncast; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  37497. s = this;
  37498. _r = s.AcceptStream(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  37499. _returncast = _r;
  37500. $s = -1; return [_returncast[0], _returncast[1]];
  37501. /* */ } return; } if ($f === undefined) { $f = { $blk: Session.ptr.prototype.Accept }; } $f._r = _r; $f._returncast = _returncast; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  37502. };
  37503. Session.prototype.Accept = function() { return this.$val.Accept(); };
  37504. Session.ptr.prototype.Close = function() {
  37505. var _entry, _entry$1, _i, _keys, _r, _ref, k, once, s, $s, $r;
  37506. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _i = $f._i; _keys = $f._keys; _r = $f._r; _ref = $f._ref; k = $f.k; once = $f.once; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  37507. once = [once];
  37508. s = [s];
  37509. s[0] = this;
  37510. once[0] = false;
  37511. $r = s[0].dieOnce.Do((function(once, s) { return function() {
  37512. $close(s[0].die);
  37513. once[0] = true;
  37514. }; })(once, s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37515. /* */ if (once[0]) { $s = 2; continue; }
  37516. /* */ $s = 3; continue;
  37517. /* if (once[0]) { */ case 2:
  37518. $r = s[0].streamLock.Lock(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37519. _ref = s[0].streams;
  37520. _i = 0;
  37521. _keys = $keys(_ref);
  37522. /* while (true) { */ case 6:
  37523. /* if (!(_i < _keys.length)) { break; } */ if(!(_i < _keys.length)) { $s = 7; continue; }
  37524. _entry = _ref[_keys[_i]];
  37525. if (_entry === undefined) {
  37526. _i++;
  37527. /* continue; */ $s = 6; continue;
  37528. }
  37529. k = _entry.k;
  37530. $r = (_entry$1 = s[0].streams[$Uint32.keyFor(k)], _entry$1 !== undefined ? _entry$1.v : ptrType$3.nil).sessionClose(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37531. _i++;
  37532. /* } */ $s = 6; continue; case 7:
  37533. $r = s[0].streamLock.Unlock(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37534. _r = s[0].conn.Close(); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  37535. $s = -1; return _r;
  37536. /* } else { */ case 3:
  37537. $s = -1; return io.ErrClosedPipe;
  37538. /* } */ case 4:
  37539. $s = -1; return $ifaceNil;
  37540. /* */ } return; } if ($f === undefined) { $f = { $blk: Session.ptr.prototype.Close }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._i = _i; $f._keys = _keys; $f._r = _r; $f._ref = _ref; $f.k = k; $f.once = once; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  37541. };
  37542. Session.prototype.Close = function() { return this.$val.Close(); };
  37543. Session.ptr.prototype.notifyBucket = function() {
  37544. var _selection, s, $r;
  37545. /* */ var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _selection = $f._selection; s = $f.s; $r = $f.$r; }
  37546. s = this;
  37547. _selection = $select([[s.bucketNotify, new structType.ptr()], []]);
  37548. if (_selection[0] === 0) {
  37549. } else if (_selection[0] === 1) {
  37550. }
  37551. /* */ if ($f === undefined) { $f = { $blk: Session.ptr.prototype.notifyBucket }; } $f._selection = _selection; $f.s = s; $f.$r = $r; return $f;
  37552. };
  37553. Session.prototype.notifyBucket = function() { return this.$val.notifyBucket(); };
  37554. Session.ptr.prototype.notifyReadError = function(err) {
  37555. var err, s, $s, $r;
  37556. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  37557. err = [err];
  37558. s = [s];
  37559. s[0] = this;
  37560. $r = s[0].socketReadErrorOnce.Do((function(err, s) { return function() {
  37561. s[0].socketReadError.Store(err[0]);
  37562. $close(s[0].chSocketReadError);
  37563. }; })(err, s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37564. $s = -1; return;
  37565. /* */ } return; } if ($f === undefined) { $f = { $blk: Session.ptr.prototype.notifyReadError }; } $f.err = err; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  37566. };
  37567. Session.prototype.notifyReadError = function(err) { return this.$val.notifyReadError(err); };
  37568. Session.ptr.prototype.notifyWriteError = function(err) {
  37569. var err, s, $s, $r;
  37570. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  37571. err = [err];
  37572. s = [s];
  37573. s[0] = this;
  37574. $r = s[0].socketWriteErrorOnce.Do((function(err, s) { return function() {
  37575. s[0].socketWriteError.Store(err[0]);
  37576. $close(s[0].chSocketWriteError);
  37577. }; })(err, s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37578. $s = -1; return;
  37579. /* */ } return; } if ($f === undefined) { $f = { $blk: Session.ptr.prototype.notifyWriteError }; } $f.err = err; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  37580. };
  37581. Session.prototype.notifyWriteError = function(err) { return this.$val.notifyWriteError(err); };
  37582. Session.ptr.prototype.notifyProtoError = function(err) {
  37583. var err, s, $s, $r;
  37584. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  37585. err = [err];
  37586. s = [s];
  37587. s[0] = this;
  37588. $r = s[0].protoErrorOnce.Do((function(err, s) { return function() {
  37589. s[0].protoError.Store(err[0]);
  37590. $close(s[0].chProtoError);
  37591. }; })(err, s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37592. $s = -1; return;
  37593. /* */ } return; } if ($f === undefined) { $f = { $blk: Session.ptr.prototype.notifyProtoError }; } $f.err = err; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  37594. };
  37595. Session.prototype.notifyProtoError = function(err) { return this.$val.notifyProtoError(err); };
  37596. Session.ptr.prototype.IsClosed = function() {
  37597. var _selection, s, $r;
  37598. /* */ var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _selection = $f._selection; s = $f.s; $r = $f.$r; }
  37599. s = this;
  37600. _selection = $select([[s.die], []]);
  37601. if (_selection[0] === 0) {
  37602. return true;
  37603. } else if (_selection[0] === 1) {
  37604. return false;
  37605. }
  37606. /* */ if ($f === undefined) { $f = { $blk: Session.ptr.prototype.IsClosed }; } $f._selection = _selection; $f.s = s; $f.$r = $r; return $f;
  37607. };
  37608. Session.prototype.IsClosed = function() { return this.$val.IsClosed(); };
  37609. Session.ptr.prototype.NumStreams = function() {
  37610. var s, $s, $deferred, $r;
  37611. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; s = $f.s; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  37612. s = this;
  37613. if (s.IsClosed()) {
  37614. $s = -1; return 0;
  37615. }
  37616. $r = s.streamLock.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37617. $deferred.push([$methodVal(s.streamLock, "Unlock"), []]);
  37618. $s = -1; return $keys(s.streams).length;
  37619. /* */ } return; } } catch(err) { $err = err; $s = -1; return 0; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: Session.ptr.prototype.NumStreams }; } $f.s = s; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  37620. };
  37621. Session.prototype.NumStreams = function() { return this.$val.NumStreams(); };
  37622. Session.ptr.prototype.SetDeadline = function(t) {
  37623. var s, t;
  37624. s = this;
  37625. s.deadline.Store(new t.constructor.elem(t));
  37626. return $ifaceNil;
  37627. };
  37628. Session.prototype.SetDeadline = function(t) { return this.$val.SetDeadline(t); };
  37629. Session.ptr.prototype.LocalAddr = function() {
  37630. var _r, _tuple, ok, s, ts, $s, $r;
  37631. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; ok = $f.ok; s = $f.s; ts = $f.ts; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  37632. s = this;
  37633. _tuple = $assertType(s.conn, interfaceType, true);
  37634. ts = _tuple[0];
  37635. ok = _tuple[1];
  37636. /* */ if (ok) { $s = 1; continue; }
  37637. /* */ $s = 2; continue;
  37638. /* if (ok) { */ case 1:
  37639. _r = ts.LocalAddr(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  37640. $s = -1; return _r;
  37641. /* } */ case 2:
  37642. $s = -1; return $ifaceNil;
  37643. /* */ } return; } if ($f === undefined) { $f = { $blk: Session.ptr.prototype.LocalAddr }; } $f._r = _r; $f._tuple = _tuple; $f.ok = ok; $f.s = s; $f.ts = ts; $f.$s = $s; $f.$r = $r; return $f;
  37644. };
  37645. Session.prototype.LocalAddr = function() { return this.$val.LocalAddr(); };
  37646. Session.ptr.prototype.RemoteAddr = function() {
  37647. var _r, _tuple, ok, s, ts, $s, $r;
  37648. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; ok = $f.ok; s = $f.s; ts = $f.ts; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  37649. s = this;
  37650. _tuple = $assertType(s.conn, interfaceType$1, true);
  37651. ts = _tuple[0];
  37652. ok = _tuple[1];
  37653. /* */ if (ok) { $s = 1; continue; }
  37654. /* */ $s = 2; continue;
  37655. /* if (ok) { */ case 1:
  37656. _r = ts.RemoteAddr(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  37657. $s = -1; return _r;
  37658. /* } */ case 2:
  37659. $s = -1; return $ifaceNil;
  37660. /* */ } return; } if ($f === undefined) { $f = { $blk: Session.ptr.prototype.RemoteAddr }; } $f._r = _r; $f._tuple = _tuple; $f.ok = ok; $f.s = s; $f.ts = ts; $f.$s = $s; $f.$r = $r; return $f;
  37661. };
  37662. Session.prototype.RemoteAddr = function() { return this.$val.RemoteAddr(); };
  37663. Session.ptr.prototype.streamClosed = function(sid) {
  37664. var _entry, _r, n, s, sid, $s, $r;
  37665. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _r = $f._r; n = $f.n; s = $f.s; sid = $f.sid; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  37666. s = this;
  37667. $r = s.streamLock.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37668. _r = (_entry = s.streams[$Uint32.keyFor(sid)], _entry !== undefined ? _entry.v : ptrType$3.nil).recycleTokens(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  37669. n = _r;
  37670. if (n > 0) {
  37671. if (atomic.AddInt32((s.$ptr_bucket || (s.$ptr_bucket = new ptrType$4(function() { return this.$target.bucket; }, function($v) { this.$target.bucket = $v; }, s))), ((n >> 0))) > 0) {
  37672. s.notifyBucket();
  37673. }
  37674. }
  37675. delete s.streams[$Uint32.keyFor(sid)];
  37676. $r = s.streamLock.Unlock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37677. $s = -1; return;
  37678. /* */ } return; } if ($f === undefined) { $f = { $blk: Session.ptr.prototype.streamClosed }; } $f._entry = _entry; $f._r = _r; $f.n = n; $f.s = s; $f.sid = sid; $f.$s = $s; $f.$r = $r; return $f;
  37679. };
  37680. Session.prototype.streamClosed = function(sid) { return this.$val.streamClosed(sid); };
  37681. Session.ptr.prototype.returnTokens = function(n) {
  37682. var n, s;
  37683. s = this;
  37684. if (atomic.AddInt32((s.$ptr_bucket || (s.$ptr_bucket = new ptrType$4(function() { return this.$target.bucket; }, function($v) { this.$target.bucket = $v; }, s))), ((n >> 0))) > 0) {
  37685. s.notifyBucket();
  37686. }
  37687. };
  37688. Session.prototype.returnTokens = function(n) { return this.$val.returnTokens(n); };
  37689. Session.ptr.prototype.recvLoop = function() {
  37690. var _1, _entry, _entry$1, _entry$2, _entry$3, _key, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _selection, _selection$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, err, err$1, err$2, hdr, newbuf, ok, ok$1, ok$2, ok$3, s, sid, stream, stream$1, stream$2, stream$3, updHdr, written, $s, $r;
  37691. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _entry$3 = $f._entry$3; _key = $f._key; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _selection = $f._selection; _selection$1 = $f._selection$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; hdr = $f.hdr; newbuf = $f.newbuf; ok = $f.ok; ok$1 = $f.ok$1; ok$2 = $f.ok$2; ok$3 = $f.ok$3; s = $f.s; sid = $f.sid; stream = $f.stream; stream$1 = $f.stream$1; stream$2 = $f.stream$2; stream$3 = $f.stream$3; updHdr = $f.updHdr; written = $f.written; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  37692. s = this;
  37693. hdr = arrayType.zero();
  37694. updHdr = arrayType.zero();
  37695. /* while (true) { */ case 1:
  37696. /* while (true) { */ case 3:
  37697. /* if (!(atomic.LoadInt32((s.$ptr_bucket || (s.$ptr_bucket = new ptrType$4(function() { return this.$target.bucket; }, function($v) { this.$target.bucket = $v; }, s)))) <= 0 && !s.IsClosed())) { break; } */ if(!(atomic.LoadInt32((s.$ptr_bucket || (s.$ptr_bucket = new ptrType$4(function() { return this.$target.bucket; }, function($v) { this.$target.bucket = $v; }, s)))) <= 0 && !s.IsClosed())) { $s = 4; continue; }
  37698. _r = $select([[s.bucketNotify], [s.die]]); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  37699. _selection = _r;
  37700. if (_selection[0] === 0) {
  37701. } else if (_selection[0] === 1) {
  37702. $s = -1; return;
  37703. }
  37704. /* } */ $s = 3; continue; case 4:
  37705. _r$1 = io.ReadFull(s.conn, new sliceType$1(hdr)); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  37706. _tuple = _r$1;
  37707. err = _tuple[1];
  37708. /* */ if ($interfaceIsEqual(err, $ifaceNil)) { $s = 7; continue; }
  37709. /* */ $s = 8; continue;
  37710. /* if ($interfaceIsEqual(err, $ifaceNil)) { */ case 7:
  37711. atomic.StoreInt32((s.$ptr_dataReady || (s.$ptr_dataReady = new ptrType$4(function() { return this.$target.dataReady; }, function($v) { this.$target.dataReady = $v; }, s))), 1);
  37712. /* */ if (!((new rawHeader($clone(hdr, rawHeader)).Version() === ((s.config.Version << 24 >>> 24))))) { $s = 10; continue; }
  37713. /* */ $s = 11; continue;
  37714. /* if (!((new rawHeader($clone(hdr, rawHeader)).Version() === ((s.config.Version << 24 >>> 24))))) { */ case 10:
  37715. $r = s.notifyProtoError($pkg.ErrInvalidProtocol); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37716. $s = -1; return;
  37717. /* } */ case 11:
  37718. sid = new rawHeader($clone(hdr, rawHeader)).StreamID();
  37719. _1 = new rawHeader($clone(hdr, rawHeader)).Cmd();
  37720. /* */ if (_1 === (3)) { $s = 14; continue; }
  37721. /* */ if (_1 === (0)) { $s = 15; continue; }
  37722. /* */ if (_1 === (1)) { $s = 16; continue; }
  37723. /* */ if (_1 === (2)) { $s = 17; continue; }
  37724. /* */ if (_1 === (4)) { $s = 18; continue; }
  37725. /* */ $s = 19; continue;
  37726. /* if (_1 === (3)) { */ case 14:
  37727. $s = 20; continue;
  37728. /* } else if (_1 === (0)) { */ case 15:
  37729. $r = s.streamLock.Lock(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37730. _tuple$1 = (_entry = s.streams[$Uint32.keyFor(sid)], _entry !== undefined ? [_entry.v, true] : [ptrType$3.nil, false]);
  37731. ok = _tuple$1[1];
  37732. /* */ if (!ok) { $s = 22; continue; }
  37733. /* */ $s = 23; continue;
  37734. /* if (!ok) { */ case 22:
  37735. stream = newStream(sid, s.config.MaxFrameSize, s);
  37736. _key = sid; (s.streams || $throwRuntimeError("assignment to entry in nil map"))[$Uint32.keyFor(_key)] = { k: _key, v: stream };
  37737. _r$2 = $select([[s.chAccepts, stream], [s.die]]); /* */ $s = 24; case 24: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  37738. _selection$1 = _r$2;
  37739. if (_selection$1[0] === 0) {
  37740. } else if (_selection$1[0] === 1) {
  37741. }
  37742. /* } */ case 23:
  37743. $r = s.streamLock.Unlock(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37744. $s = 20; continue;
  37745. /* } else if (_1 === (1)) { */ case 16:
  37746. $r = s.streamLock.Lock(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37747. _tuple$2 = (_entry$1 = s.streams[$Uint32.keyFor(sid)], _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$3.nil, false]);
  37748. stream$1 = _tuple$2[0];
  37749. ok$1 = _tuple$2[1];
  37750. /* */ if (ok$1) { $s = 27; continue; }
  37751. /* */ $s = 28; continue;
  37752. /* if (ok$1) { */ case 27:
  37753. $r = stream$1.fin(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37754. stream$1.notifyReadEvent();
  37755. /* } */ case 28:
  37756. $r = s.streamLock.Unlock(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37757. $s = 20; continue;
  37758. /* } else if (_1 === (2)) { */ case 17:
  37759. /* */ if (new rawHeader($clone(hdr, rawHeader)).Length() > 0) { $s = 31; continue; }
  37760. /* */ $s = 32; continue;
  37761. /* if (new rawHeader($clone(hdr, rawHeader)).Length() > 0) { */ case 31:
  37762. _r$3 = defaultAllocator.Get(((new rawHeader($clone(hdr, rawHeader)).Length() >> 0))); /* */ $s = 33; case 33: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  37763. newbuf = _r$3;
  37764. _r$4 = io.ReadFull(s.conn, newbuf); /* */ $s = 34; case 34: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  37765. _tuple$3 = _r$4;
  37766. written = _tuple$3[0];
  37767. err$1 = _tuple$3[1];
  37768. /* */ if ($interfaceIsEqual(err$1, $ifaceNil)) { $s = 35; continue; }
  37769. /* */ $s = 36; continue;
  37770. /* if ($interfaceIsEqual(err$1, $ifaceNil)) { */ case 35:
  37771. $r = s.streamLock.Lock(); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37772. _tuple$4 = (_entry$2 = s.streams[$Uint32.keyFor(sid)], _entry$2 !== undefined ? [_entry$2.v, true] : [ptrType$3.nil, false]);
  37773. stream$2 = _tuple$4[0];
  37774. ok$2 = _tuple$4[1];
  37775. /* */ if (ok$2) { $s = 39; continue; }
  37776. /* */ $s = 40; continue;
  37777. /* if (ok$2) { */ case 39:
  37778. _r$5 = stream$2.pushBytes(newbuf); /* */ $s = 41; case 41: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  37779. _r$5;
  37780. atomic.AddInt32((s.$ptr_bucket || (s.$ptr_bucket = new ptrType$4(function() { return this.$target.bucket; }, function($v) { this.$target.bucket = $v; }, s))), -((written >> 0)));
  37781. stream$2.notifyReadEvent();
  37782. /* } */ case 40:
  37783. $r = s.streamLock.Unlock(); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37784. $s = 37; continue;
  37785. /* } else { */ case 36:
  37786. $r = s.notifyReadError(err$1); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37787. $s = -1; return;
  37788. /* } */ case 37:
  37789. /* } */ case 32:
  37790. $s = 20; continue;
  37791. /* } else if (_1 === (4)) { */ case 18:
  37792. _r$6 = io.ReadFull(s.conn, new sliceType$1(updHdr)); /* */ $s = 44; case 44: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  37793. _tuple$5 = _r$6;
  37794. err$2 = _tuple$5[1];
  37795. /* */ if ($interfaceIsEqual(err$2, $ifaceNil)) { $s = 45; continue; }
  37796. /* */ $s = 46; continue;
  37797. /* if ($interfaceIsEqual(err$2, $ifaceNil)) { */ case 45:
  37798. $r = s.streamLock.Lock(); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37799. _tuple$6 = (_entry$3 = s.streams[$Uint32.keyFor(sid)], _entry$3 !== undefined ? [_entry$3.v, true] : [ptrType$3.nil, false]);
  37800. stream$3 = _tuple$6[0];
  37801. ok$3 = _tuple$6[1];
  37802. if (ok$3) {
  37803. stream$3.update(new updHeader($clone(updHdr, updHeader)).Consumed(), new updHeader($clone(updHdr, updHeader)).Window());
  37804. }
  37805. $r = s.streamLock.Unlock(); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37806. $s = 47; continue;
  37807. /* } else { */ case 46:
  37808. $r = s.notifyReadError(err$2); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37809. $s = -1; return;
  37810. /* } */ case 47:
  37811. $s = 20; continue;
  37812. /* } else { */ case 19:
  37813. $r = s.notifyProtoError($pkg.ErrInvalidProtocol); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37814. $s = -1; return;
  37815. /* } */ case 20:
  37816. case 13:
  37817. $s = 9; continue;
  37818. /* } else { */ case 8:
  37819. $r = s.notifyReadError(err); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37820. $s = -1; return;
  37821. /* } */ case 9:
  37822. /* } */ $s = 1; continue; case 2:
  37823. $s = -1; return;
  37824. /* */ } return; } if ($f === undefined) { $f = { $blk: Session.ptr.prototype.recvLoop }; } $f._1 = _1; $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._entry$3 = _entry$3; $f._key = _key; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._selection = _selection; $f._selection$1 = _selection$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.hdr = hdr; $f.newbuf = newbuf; $f.ok = ok; $f.ok$1 = ok$1; $f.ok$2 = ok$2; $f.ok$3 = ok$3; $f.s = s; $f.sid = sid; $f.stream = stream; $f.stream$1 = stream$1; $f.stream$2 = stream$2; $f.stream$3 = stream$3; $f.updHdr = updHdr; $f.written = written; $f.$s = $s; $f.$r = $r; return $f;
  37825. };
  37826. Session.prototype.recvLoop = function() { return this.$val.recvLoop(); };
  37827. Session.ptr.prototype.keepalive = function() {
  37828. var _r, _r$1, _r$2, _selection, s, tickerPing, tickerTimeout, $s, $deferred, $r;
  37829. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _selection = $f._selection; s = $f.s; tickerPing = $f.tickerPing; tickerTimeout = $f.tickerTimeout; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  37830. s = this;
  37831. tickerPing = time.NewTicker(s.config.KeepAliveInterval);
  37832. tickerTimeout = time.NewTicker(s.config.KeepAliveTimeout);
  37833. $deferred.push([$methodVal(tickerPing, "Stop"), []]);
  37834. $deferred.push([$methodVal(tickerTimeout, "Stop"), []]);
  37835. /* while (true) { */ case 1:
  37836. _r = $select([[tickerPing.C], [tickerTimeout.C], [s.die]]); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  37837. _selection = _r;
  37838. /* */ if (_selection[0] === 0) { $s = 4; continue; }
  37839. /* */ if (_selection[0] === 1) { $s = 5; continue; }
  37840. /* */ if (_selection[0] === 2) { $s = 6; continue; }
  37841. /* */ $s = 7; continue;
  37842. /* if (_selection[0] === 0) { */ case 4:
  37843. _r$1 = s.writeFrameInternal($clone(newFrame(((s.config.Version << 24 >>> 24)), 3, 0), Frame), tickerPing.C, new $Uint64(0, 0)); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  37844. _r$1;
  37845. s.notifyBucket();
  37846. $s = 7; continue;
  37847. /* } else if (_selection[0] === 1) { */ case 5:
  37848. /* */ if (!atomic.CompareAndSwapInt32((s.$ptr_dataReady || (s.$ptr_dataReady = new ptrType$4(function() { return this.$target.dataReady; }, function($v) { this.$target.dataReady = $v; }, s))), 1, 0)) { $s = 9; continue; }
  37849. /* */ $s = 10; continue;
  37850. /* if (!atomic.CompareAndSwapInt32((s.$ptr_dataReady || (s.$ptr_dataReady = new ptrType$4(function() { return this.$target.dataReady; }, function($v) { this.$target.dataReady = $v; }, s))), 1, 0)) { */ case 9:
  37851. /* */ if (atomic.LoadInt32((s.$ptr_bucket || (s.$ptr_bucket = new ptrType$4(function() { return this.$target.bucket; }, function($v) { this.$target.bucket = $v; }, s)))) > 0) { $s = 11; continue; }
  37852. /* */ $s = 12; continue;
  37853. /* if (atomic.LoadInt32((s.$ptr_bucket || (s.$ptr_bucket = new ptrType$4(function() { return this.$target.bucket; }, function($v) { this.$target.bucket = $v; }, s)))) > 0) { */ case 11:
  37854. _r$2 = s.Close(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  37855. _r$2;
  37856. $s = -1; return;
  37857. /* } */ case 12:
  37858. /* } */ case 10:
  37859. $s = 7; continue;
  37860. /* } else if (_selection[0] === 2) { */ case 6:
  37861. $s = -1; return;
  37862. /* } */ case 7:
  37863. /* } */ $s = 1; continue; case 2:
  37864. $s = -1; return;
  37865. /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: Session.ptr.prototype.keepalive }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._selection = _selection; $f.s = s; $f.tickerPing = tickerPing; $f.tickerTimeout = tickerTimeout; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  37866. };
  37867. Session.prototype.keepalive = function() { return this.$val.keepalive(); };
  37868. Session.ptr.prototype.shaperLoop = function() {
  37869. var _r, _r$1, _selection, chWrite, next, r, reqs, s, $s, $r;
  37870. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _selection = $f._selection; chWrite = $f.chWrite; next = $f.next; r = $f.r; reqs = $f.reqs; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  37871. reqs = [reqs];
  37872. s = this;
  37873. reqs[0] = shaperHeap.nil;
  37874. next = new writeRequest.ptr(new $Uint64(0, 0), new Frame.ptr(0, 0, 0, sliceType$1.nil), $chanNil);
  37875. chWrite = $chanNil;
  37876. /* while (true) { */ case 1:
  37877. /* */ if (reqs[0].$length > 0) { $s = 3; continue; }
  37878. /* */ $s = 4; continue;
  37879. /* if (reqs[0].$length > 0) { */ case 3:
  37880. chWrite = s.writes;
  37881. _r = heap.Pop((reqs.$ptr || (reqs.$ptr = new ptrType$5(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, reqs)))); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  37882. writeRequest.copy(next, $assertType(_r, writeRequest));
  37883. $s = 5; continue;
  37884. /* } else { */ case 4:
  37885. chWrite = $chanNil;
  37886. /* } */ case 5:
  37887. _r$1 = $select([[s.die], [s.shaper], [chWrite, $clone(next, writeRequest)]]); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  37888. _selection = _r$1;
  37889. /* */ if (_selection[0] === 0) { $s = 8; continue; }
  37890. /* */ if (_selection[0] === 1) { $s = 9; continue; }
  37891. /* */ if (_selection[0] === 2) { $s = 10; continue; }
  37892. /* */ $s = 11; continue;
  37893. /* if (_selection[0] === 0) { */ case 8:
  37894. $s = -1; return;
  37895. /* } else if (_selection[0] === 1) { */ case 9:
  37896. r = $clone(_selection[1][0], writeRequest);
  37897. /* */ if (!(chWrite === $chanNil)) { $s = 12; continue; }
  37898. /* */ $s = 13; continue;
  37899. /* if (!(chWrite === $chanNil)) { */ case 12:
  37900. $r = heap.Push((reqs.$ptr || (reqs.$ptr = new ptrType$5(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, reqs))), new next.constructor.elem(next)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37901. /* } */ case 13:
  37902. $r = heap.Push((reqs.$ptr || (reqs.$ptr = new ptrType$5(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, reqs))), new r.constructor.elem(r)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37903. $s = 11; continue;
  37904. /* } else if (_selection[0] === 2) { */ case 10:
  37905. /* } */ case 11:
  37906. /* } */ $s = 1; continue; case 2:
  37907. $s = -1; return;
  37908. /* */ } return; } if ($f === undefined) { $f = { $blk: Session.ptr.prototype.shaperLoop }; } $f._r = _r; $f._r$1 = _r$1; $f._selection = _selection; $f.chWrite = chWrite; $f.next = next; $f.r = r; $f.reqs = reqs; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  37909. };
  37910. Session.prototype.shaperLoop = function() { return this.$val.shaperLoop(); };
  37911. Session.ptr.prototype.sendLoop = function() {
  37912. var _r, _r$1, _r$2, _selection, _tuple, _tuple$1, _tuple$2, buf, bw, err, n, ok, request, result, s, vec, $s, $r;
  37913. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _selection = $f._selection; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; buf = $f.buf; bw = $f.bw; err = $f.err; n = $f.n; ok = $f.ok; request = $f.request; result = $f.result; s = $f.s; vec = $f.vec; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  37914. s = this;
  37915. buf = sliceType$1.nil;
  37916. n = 0;
  37917. err = $ifaceNil;
  37918. vec = sliceType$3.nil;
  37919. _tuple = $assertType(s.conn, buffersWriter, true);
  37920. bw = _tuple[0];
  37921. ok = _tuple[1];
  37922. if (ok) {
  37923. buf = $makeSlice(sliceType$1, 8);
  37924. vec = $makeSlice(sliceType$3, 2);
  37925. } else {
  37926. buf = $makeSlice(sliceType$1, 65544);
  37927. }
  37928. /* while (true) { */ case 1:
  37929. _r = $select([[s.die], [s.writes]]); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  37930. _selection = _r;
  37931. /* */ if (_selection[0] === 0) { $s = 4; continue; }
  37932. /* */ if (_selection[0] === 1) { $s = 5; continue; }
  37933. /* */ $s = 6; continue;
  37934. /* if (_selection[0] === 0) { */ case 4:
  37935. $s = -1; return;
  37936. /* } else if (_selection[0] === 1) { */ case 5:
  37937. request = $clone(_selection[1][0], writeRequest);
  37938. (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0] = request.frame.ver);
  37939. (1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1] = request.frame.cmd);
  37940. $clone(binary.LittleEndian, binary.littleEndian).PutUint16($subslice(buf, 2), ((request.frame.data.$length << 16 >>> 16)));
  37941. $clone(binary.LittleEndian, binary.littleEndian).PutUint32($subslice(buf, 4), request.frame.sid);
  37942. /* */ if (vec.$length > 0) { $s = 7; continue; }
  37943. /* */ $s = 8; continue;
  37944. /* if (vec.$length > 0) { */ case 7:
  37945. (0 >= vec.$length ? ($throwRuntimeError("index out of range"), undefined) : vec.$array[vec.$offset + 0] = $subslice(buf, 0, 8));
  37946. (1 >= vec.$length ? ($throwRuntimeError("index out of range"), undefined) : vec.$array[vec.$offset + 1] = request.frame.data);
  37947. _r$1 = bw.WriteBuffers(vec); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  37948. _tuple$1 = _r$1;
  37949. n = _tuple$1[0];
  37950. err = _tuple$1[1];
  37951. $s = 9; continue;
  37952. /* } else { */ case 8:
  37953. $copySlice($subslice(buf, 8), request.frame.data);
  37954. _r$2 = s.conn.Write($subslice(buf, 0, (8 + request.frame.data.$length >> 0))); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  37955. _tuple$2 = _r$2;
  37956. n = _tuple$2[0];
  37957. err = _tuple$2[1];
  37958. /* } */ case 9:
  37959. n = n - (8) >> 0;
  37960. if (n < 0) {
  37961. n = 0;
  37962. }
  37963. result = new writeResult.ptr(n, err);
  37964. $r = $send(request.result, $clone($clone(result, writeResult), writeResult)); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37965. $close(request.result);
  37966. /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 13; continue; }
  37967. /* */ $s = 14; continue;
  37968. /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 13:
  37969. $r = s.notifyWriteError(err); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  37970. $s = -1; return;
  37971. /* } */ case 14:
  37972. /* } */ case 6:
  37973. /* } */ $s = 1; continue; case 2:
  37974. $s = -1; return;
  37975. /* */ } return; } if ($f === undefined) { $f = { $blk: Session.ptr.prototype.sendLoop }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._selection = _selection; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.buf = buf; $f.bw = bw; $f.err = err; $f.n = n; $f.ok = ok; $f.request = request; $f.result = result; $f.s = s; $f.vec = vec; $f.$s = $s; $f.$r = $r; return $f;
  37976. };
  37977. Session.prototype.sendLoop = function() { return this.$val.sendLoop(); };
  37978. Session.ptr.prototype.writeFrame = function(f) {
  37979. var _r, _tuple, err, f, n, s, $s, $r;
  37980. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; f = $f.f; n = $f.n; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  37981. n = 0;
  37982. err = $ifaceNil;
  37983. s = this;
  37984. _r = s.writeFrameInternal($clone(f, Frame), $chanNil, new $Uint64(0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  37985. _tuple = _r;
  37986. n = _tuple[0];
  37987. err = _tuple[1];
  37988. $s = -1; return [n, err];
  37989. /* */ } return; } if ($f === undefined) { $f = { $blk: Session.ptr.prototype.writeFrame }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.f = f; $f.n = n; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  37990. };
  37991. Session.prototype.writeFrame = function(f) { return this.$val.writeFrame(f); };
  37992. Session.ptr.prototype.writeFrameInternal = function(f, deadline, prio) {
  37993. var _r, _r$1, _selection, _selection$1, deadline, f, prio, req, result, s, $s, $r;
  37994. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _selection = $f._selection; _selection$1 = $f._selection$1; deadline = $f.deadline; f = $f.f; prio = $f.prio; req = $f.req; result = $f.result; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  37995. s = this;
  37996. req = new writeRequest.ptr(prio, $clone(f, Frame), new $Chan(writeResult, 1));
  37997. _r = $select([[s.shaper, $clone(req, writeRequest)], [s.die], [s.chSocketWriteError], [deadline]]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  37998. _selection = _r;
  37999. /* */ if (_selection[0] === 0) { $s = 2; continue; }
  38000. /* */ if (_selection[0] === 1) { $s = 3; continue; }
  38001. /* */ if (_selection[0] === 2) { $s = 4; continue; }
  38002. /* */ if (_selection[0] === 3) { $s = 5; continue; }
  38003. /* */ $s = 6; continue;
  38004. /* if (_selection[0] === 0) { */ case 2:
  38005. $s = 6; continue;
  38006. /* } else if (_selection[0] === 1) { */ case 3:
  38007. $s = -1; return [0, io.ErrClosedPipe];
  38008. /* } else if (_selection[0] === 2) { */ case 4:
  38009. $s = -1; return [0, $assertType(s.socketWriteError.Load(), $error)];
  38010. /* } else if (_selection[0] === 3) { */ case 5:
  38011. $s = -1; return [0, $pkg.ErrTimeout];
  38012. /* } */ case 6:
  38013. _r$1 = $select([[req.result], [s.die], [s.chSocketWriteError], [deadline]]); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  38014. _selection$1 = _r$1;
  38015. if (_selection$1[0] === 0) {
  38016. result = $clone(_selection$1[1][0], writeResult);
  38017. $s = -1; return [result.n, result.err];
  38018. } else if (_selection$1[0] === 1) {
  38019. $s = -1; return [0, io.ErrClosedPipe];
  38020. } else if (_selection$1[0] === 2) {
  38021. $s = -1; return [0, $assertType(s.socketWriteError.Load(), $error)];
  38022. } else if (_selection$1[0] === 3) {
  38023. $s = -1; return [0, $pkg.ErrTimeout];
  38024. }
  38025. $s = -1; return [0, $ifaceNil];
  38026. /* */ } return; } if ($f === undefined) { $f = { $blk: Session.ptr.prototype.writeFrameInternal }; } $f._r = _r; $f._r$1 = _r$1; $f._selection = _selection; $f._selection$1 = _selection$1; $f.deadline = deadline; $f.f = f; $f.prio = prio; $f.req = req; $f.result = result; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  38027. };
  38028. Session.prototype.writeFrameInternal = function(f, deadline, prio) { return this.$val.writeFrameInternal(f, deadline, prio); };
  38029. shaperHeap.prototype.Len = function() {
  38030. var h;
  38031. h = this;
  38032. return h.$length;
  38033. };
  38034. $ptrType(shaperHeap).prototype.Len = function() { return this.$get().Len(); };
  38035. shaperHeap.prototype.Less = function(i, j) {
  38036. var h, i, j, x, x$1;
  38037. h = this;
  38038. return (x = ((i < 0 || i >= h.$length) ? ($throwRuntimeError("index out of range"), undefined) : h.$array[h.$offset + i]).prio, x$1 = ((j < 0 || j >= h.$length) ? ($throwRuntimeError("index out of range"), undefined) : h.$array[h.$offset + j]).prio, (x.$high < x$1.$high || (x.$high === x$1.$high && x.$low < x$1.$low)));
  38039. };
  38040. $ptrType(shaperHeap).prototype.Less = function(i, j) { return this.$get().Less(i, j); };
  38041. shaperHeap.prototype.Swap = function(i, j) {
  38042. var _tmp, _tmp$1, h, i, j;
  38043. h = this;
  38044. _tmp = $clone(((j < 0 || j >= h.$length) ? ($throwRuntimeError("index out of range"), undefined) : h.$array[h.$offset + j]), writeRequest);
  38045. _tmp$1 = $clone(((i < 0 || i >= h.$length) ? ($throwRuntimeError("index out of range"), undefined) : h.$array[h.$offset + i]), writeRequest);
  38046. writeRequest.copy(((i < 0 || i >= h.$length) ? ($throwRuntimeError("index out of range"), undefined) : h.$array[h.$offset + i]), _tmp);
  38047. writeRequest.copy(((j < 0 || j >= h.$length) ? ($throwRuntimeError("index out of range"), undefined) : h.$array[h.$offset + j]), _tmp$1);
  38048. };
  38049. $ptrType(shaperHeap).prototype.Swap = function(i, j) { return this.$get().Swap(i, j); };
  38050. $ptrType(shaperHeap).prototype.Push = function(x) {
  38051. var h, x;
  38052. h = this;
  38053. h.$set($append(h.$get(), $assertType(x, writeRequest)));
  38054. };
  38055. $ptrType(shaperHeap).prototype.Pop = function() {
  38056. var h, n, old, x, x$1;
  38057. h = this;
  38058. old = h.$get();
  38059. n = old.$length;
  38060. x$1 = $clone((x = n - 1 >> 0, ((x < 0 || x >= old.$length) ? ($throwRuntimeError("index out of range"), undefined) : old.$array[old.$offset + x])), writeRequest);
  38061. h.$set($subslice(old, 0, (n - 1 >> 0)));
  38062. return new x$1.constructor.elem(x$1);
  38063. };
  38064. newStream = function(id, frameSize, sess) {
  38065. var frameSize, id, s, sess;
  38066. s = new Stream.ptr(0, ptrType$2.nil, sliceType$3.nil, sliceType$3.nil, new sync.Mutex.ptr(0, 0), 0, $chanNil, $chanNil, new sync.Once.ptr(new sync.Mutex.ptr(0, 0), 0), $chanNil, new sync.Once.ptr(new sync.Mutex.ptr(0, 0), 0), new atomic.Value.ptr($ifaceNil), new atomic.Value.ptr($ifaceNil), 0, 0, 0, 0, 0, $chanNil);
  38067. s.id = id;
  38068. s.chReadEvent = new $Chan(structType, 1);
  38069. s.chUpdate = new $Chan(structType, 1);
  38070. s.frameSize = frameSize;
  38071. s.sess = sess;
  38072. s.die = new $Chan(structType, 0);
  38073. s.chFinEvent = new $Chan(structType, 0);
  38074. s.peerWindow = 262144;
  38075. return s;
  38076. };
  38077. Stream.ptr.prototype.ID = function() {
  38078. var s;
  38079. s = this;
  38080. return s.id;
  38081. };
  38082. Stream.prototype.ID = function() { return this.$val.ID(); };
  38083. Stream.ptr.prototype.Read = function(b) {
  38084. var _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, err, ew, n, s, $s, $r;
  38085. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; err = $f.err; ew = $f.ew; n = $f.n; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  38086. n = 0;
  38087. err = $ifaceNil;
  38088. s = this;
  38089. /* while (true) { */ case 1:
  38090. _r = s.tryRead(b); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  38091. _tuple = _r;
  38092. n = _tuple[0];
  38093. err = _tuple[1];
  38094. /* */ if ($interfaceIsEqual(err, $pkg.ErrWouldBlock)) { $s = 4; continue; }
  38095. /* */ $s = 5; continue;
  38096. /* if ($interfaceIsEqual(err, $pkg.ErrWouldBlock)) { */ case 4:
  38097. _r$1 = s.waitRead(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  38098. ew = _r$1;
  38099. if (!($interfaceIsEqual(ew, $ifaceNil))) {
  38100. _tmp = 0;
  38101. _tmp$1 = ew;
  38102. n = _tmp;
  38103. err = _tmp$1;
  38104. $s = -1; return [n, err];
  38105. }
  38106. $s = 6; continue;
  38107. /* } else { */ case 5:
  38108. _tmp$2 = n;
  38109. _tmp$3 = err;
  38110. n = _tmp$2;
  38111. err = _tmp$3;
  38112. $s = -1; return [n, err];
  38113. /* } */ case 6:
  38114. /* } */ $s = 1; continue; case 2:
  38115. $s = -1; return [n, err];
  38116. /* */ } return; } if ($f === undefined) { $f = { $blk: Stream.ptr.prototype.Read }; } $f._r = _r; $f._r$1 = _r$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.ew = ew; $f.n = n; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  38117. };
  38118. Stream.prototype.Read = function(b) { return this.$val.Read(b); };
  38119. Stream.ptr.prototype.tryRead = function(b) {
  38120. var _r, _selection, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, b, err, n, s, x, x$1, x$2, x$3, x$4, x$5, $s, $r;
  38121. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _selection = $f._selection; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tuple = $f._tuple; b = $f.b; err = $f.err; n = $f.n; s = $f.s; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  38122. n = 0;
  38123. err = $ifaceNil;
  38124. s = this;
  38125. /* */ if (s.sess.config.Version === 2) { $s = 1; continue; }
  38126. /* */ $s = 2; continue;
  38127. /* if (s.sess.config.Version === 2) { */ case 1:
  38128. _r = s.tryReadv2(b); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  38129. _tuple = _r;
  38130. n = _tuple[0];
  38131. err = _tuple[1];
  38132. $s = -1; return [n, err];
  38133. /* } */ case 2:
  38134. if (b.$length === 0) {
  38135. _tmp = 0;
  38136. _tmp$1 = $ifaceNil;
  38137. n = _tmp;
  38138. err = _tmp$1;
  38139. $s = -1; return [n, err];
  38140. }
  38141. $r = s.bufferLock.Lock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38142. if (s.buffers.$length > 0) {
  38143. n = $copySlice(b, (x = s.buffers, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])));
  38144. (x$2 = s.buffers, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0] = $subslice((x$1 = s.buffers, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), n)));
  38145. if ((x$3 = s.buffers, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).$length === 0) {
  38146. (x$4 = s.buffers, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0] = sliceType$1.nil));
  38147. s.buffers = $subslice(s.buffers, 1);
  38148. defaultAllocator.Put((x$5 = s.heads, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])));
  38149. s.heads = $subslice(s.heads, 1);
  38150. }
  38151. }
  38152. $r = s.bufferLock.Unlock(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38153. if (n > 0) {
  38154. s.sess.returnTokens(n);
  38155. _tmp$2 = n;
  38156. _tmp$3 = $ifaceNil;
  38157. n = _tmp$2;
  38158. err = _tmp$3;
  38159. $s = -1; return [n, err];
  38160. }
  38161. _selection = $select([[s.die], []]);
  38162. if (_selection[0] === 0) {
  38163. _tmp$4 = 0;
  38164. _tmp$5 = io.EOF;
  38165. n = _tmp$4;
  38166. err = _tmp$5;
  38167. $s = -1; return [n, err];
  38168. } else if (_selection[0] === 1) {
  38169. _tmp$6 = 0;
  38170. _tmp$7 = $pkg.ErrWouldBlock;
  38171. n = _tmp$6;
  38172. err = _tmp$7;
  38173. $s = -1; return [n, err];
  38174. }
  38175. $s = -1; return [n, err];
  38176. /* */ } return; } if ($f === undefined) { $f = { $blk: Stream.ptr.prototype.tryRead }; } $f._r = _r; $f._selection = _selection; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.n = n; $f.s = s; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.$s = $s; $f.$r = $r; return $f;
  38177. };
  38178. Stream.prototype.tryRead = function(b) { return this.$val.tryRead(b); };
  38179. Stream.ptr.prototype.tryReadv2 = function(b) {
  38180. var _q, _r, _selection, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, b, err, err$1, n, notifyConsumed, s, x, x$1, x$2, x$3, x$4, x$5, $s, $r;
  38181. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; _selection = $f._selection; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; b = $f.b; err = $f.err; err$1 = $f.err$1; n = $f.n; notifyConsumed = $f.notifyConsumed; s = $f.s; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  38182. n = 0;
  38183. err = $ifaceNil;
  38184. s = this;
  38185. if (b.$length === 0) {
  38186. _tmp = 0;
  38187. _tmp$1 = $ifaceNil;
  38188. n = _tmp;
  38189. err = _tmp$1;
  38190. $s = -1; return [n, err];
  38191. }
  38192. notifyConsumed = 0;
  38193. $r = s.bufferLock.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38194. if (s.buffers.$length > 0) {
  38195. n = $copySlice(b, (x = s.buffers, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])));
  38196. (x$2 = s.buffers, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0] = $subslice((x$1 = s.buffers, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), n)));
  38197. if ((x$3 = s.buffers, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).$length === 0) {
  38198. (x$4 = s.buffers, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0] = sliceType$1.nil));
  38199. s.buffers = $subslice(s.buffers, 1);
  38200. defaultAllocator.Put((x$5 = s.heads, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])));
  38201. s.heads = $subslice(s.heads, 1);
  38202. }
  38203. }
  38204. s.numRead = s.numRead + (((n >>> 0))) >>> 0;
  38205. s.incr = s.incr + (((n >>> 0))) >>> 0;
  38206. if (s.incr >= (((_q = s.sess.config.MaxStreamBuffer / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >>> 0)) || (s.numRead === ((n >>> 0)))) {
  38207. notifyConsumed = s.numRead;
  38208. s.incr = 0;
  38209. }
  38210. $r = s.bufferLock.Unlock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38211. /* */ if (n > 0) { $s = 3; continue; }
  38212. /* */ $s = 4; continue;
  38213. /* if (n > 0) { */ case 3:
  38214. s.sess.returnTokens(n);
  38215. /* */ if (notifyConsumed > 0) { $s = 5; continue; }
  38216. /* */ $s = 6; continue;
  38217. /* if (notifyConsumed > 0) { */ case 5:
  38218. _r = s.sendWindowUpdate(notifyConsumed); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  38219. err$1 = _r;
  38220. _tmp$2 = n;
  38221. _tmp$3 = err$1;
  38222. n = _tmp$2;
  38223. err = _tmp$3;
  38224. $s = -1; return [n, err];
  38225. /* } else { */ case 6:
  38226. _tmp$4 = n;
  38227. _tmp$5 = $ifaceNil;
  38228. n = _tmp$4;
  38229. err = _tmp$5;
  38230. $s = -1; return [n, err];
  38231. /* } */ case 7:
  38232. /* } */ case 4:
  38233. _selection = $select([[s.die], []]);
  38234. if (_selection[0] === 0) {
  38235. _tmp$6 = 0;
  38236. _tmp$7 = io.EOF;
  38237. n = _tmp$6;
  38238. err = _tmp$7;
  38239. $s = -1; return [n, err];
  38240. } else if (_selection[0] === 1) {
  38241. _tmp$8 = 0;
  38242. _tmp$9 = $pkg.ErrWouldBlock;
  38243. n = _tmp$8;
  38244. err = _tmp$9;
  38245. $s = -1; return [n, err];
  38246. }
  38247. $s = -1; return [n, err];
  38248. /* */ } return; } if ($f === undefined) { $f = { $blk: Stream.ptr.prototype.tryReadv2 }; } $f._q = _q; $f._r = _r; $f._selection = _selection; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f.b = b; $f.err = err; $f.err$1 = err$1; $f.n = n; $f.notifyConsumed = notifyConsumed; $f.s = s; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.$s = $s; $f.$r = $r; return $f;
  38249. };
  38250. Stream.prototype.tryReadv2 = function(b) { return this.$val.tryReadv2(b); };
  38251. Stream.ptr.prototype.WriteTo = function(w) {
  38252. var _r, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, buf, err, ew, ew$1, n, nw, s, w, x, x$1, $s, $r;
  38253. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; buf = $f.buf; err = $f.err; ew = $f.ew; ew$1 = $f.ew$1; n = $f.n; nw = $f.nw; s = $f.s; w = $f.w; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  38254. n = new $Int64(0, 0);
  38255. err = $ifaceNil;
  38256. s = this;
  38257. /* */ if (s.sess.config.Version === 2) { $s = 1; continue; }
  38258. /* */ $s = 2; continue;
  38259. /* if (s.sess.config.Version === 2) { */ case 1:
  38260. _r = s.writeTov2(w); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  38261. _tuple = _r;
  38262. n = _tuple[0];
  38263. err = _tuple[1];
  38264. $s = -1; return [n, err];
  38265. /* } */ case 2:
  38266. /* while (true) { */ case 4:
  38267. buf = sliceType$1.nil;
  38268. $r = s.bufferLock.Lock(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38269. if (s.buffers.$length > 0) {
  38270. buf = (x = s.buffers, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]));
  38271. s.buffers = $subslice(s.buffers, 1);
  38272. s.heads = $subslice(s.heads, 1);
  38273. }
  38274. $r = s.bufferLock.Unlock(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38275. /* */ if (!(buf === sliceType$1.nil)) { $s = 8; continue; }
  38276. /* */ $s = 9; continue;
  38277. /* if (!(buf === sliceType$1.nil)) { */ case 8:
  38278. _r$1 = w.Write(buf); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  38279. _tuple$1 = _r$1;
  38280. nw = _tuple$1[0];
  38281. ew = _tuple$1[1];
  38282. s.sess.returnTokens(buf.$length);
  38283. defaultAllocator.Put(buf);
  38284. if (nw > 0) {
  38285. n = (x$1 = (new $Int64(0, nw)), new $Int64(n.$high + x$1.$high, n.$low + x$1.$low));
  38286. }
  38287. if (!($interfaceIsEqual(ew, $ifaceNil))) {
  38288. _tmp = n;
  38289. _tmp$1 = ew;
  38290. n = _tmp;
  38291. err = _tmp$1;
  38292. $s = -1; return [n, err];
  38293. }
  38294. $s = 10; continue;
  38295. /* } else { */ case 9:
  38296. _r$2 = s.waitRead(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  38297. ew$1 = _r$2;
  38298. if (!($interfaceIsEqual(ew$1, $ifaceNil))) {
  38299. _tmp$2 = n;
  38300. _tmp$3 = ew$1;
  38301. n = _tmp$2;
  38302. err = _tmp$3;
  38303. $s = -1; return [n, err];
  38304. }
  38305. /* } */ case 10:
  38306. /* } */ $s = 4; continue; case 5:
  38307. $s = -1; return [n, err];
  38308. /* */ } return; } if ($f === undefined) { $f = { $blk: Stream.ptr.prototype.WriteTo }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.buf = buf; $f.err = err; $f.ew = ew; $f.ew$1 = ew$1; $f.n = n; $f.nw = nw; $f.s = s; $f.w = w; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f;
  38309. };
  38310. Stream.prototype.WriteTo = function(w) { return this.$val.WriteTo(w); };
  38311. Stream.ptr.prototype.writeTov2 = function(w) {
  38312. var _q, _r, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, buf, err, err$1, ew, ew$1, n, notifyConsumed, nw, s, w, x, x$1, $s, $r;
  38313. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; buf = $f.buf; err = $f.err; err$1 = $f.err$1; ew = $f.ew; ew$1 = $f.ew$1; n = $f.n; notifyConsumed = $f.notifyConsumed; nw = $f.nw; s = $f.s; w = $f.w; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  38314. n = new $Int64(0, 0);
  38315. err = $ifaceNil;
  38316. s = this;
  38317. /* while (true) { */ case 1:
  38318. notifyConsumed = 0;
  38319. buf = sliceType$1.nil;
  38320. $r = s.bufferLock.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38321. if (s.buffers.$length > 0) {
  38322. buf = (x = s.buffers, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]));
  38323. s.buffers = $subslice(s.buffers, 1);
  38324. s.heads = $subslice(s.heads, 1);
  38325. }
  38326. s.numRead = s.numRead + (((buf.$length >>> 0))) >>> 0;
  38327. s.incr = s.incr + (((buf.$length >>> 0))) >>> 0;
  38328. if (s.incr >= (((_q = s.sess.config.MaxStreamBuffer / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >>> 0)) || (s.numRead === ((buf.$length >>> 0)))) {
  38329. notifyConsumed = s.numRead;
  38330. s.incr = 0;
  38331. }
  38332. $r = s.bufferLock.Unlock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38333. /* */ if (!(buf === sliceType$1.nil)) { $s = 5; continue; }
  38334. /* */ $s = 6; continue;
  38335. /* if (!(buf === sliceType$1.nil)) { */ case 5:
  38336. _r = w.Write(buf); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  38337. _tuple = _r;
  38338. nw = _tuple[0];
  38339. ew = _tuple[1];
  38340. s.sess.returnTokens(buf.$length);
  38341. defaultAllocator.Put(buf);
  38342. if (nw > 0) {
  38343. n = (x$1 = (new $Int64(0, nw)), new $Int64(n.$high + x$1.$high, n.$low + x$1.$low));
  38344. }
  38345. if (!($interfaceIsEqual(ew, $ifaceNil))) {
  38346. _tmp = n;
  38347. _tmp$1 = ew;
  38348. n = _tmp;
  38349. err = _tmp$1;
  38350. $s = -1; return [n, err];
  38351. }
  38352. /* */ if (notifyConsumed > 0) { $s = 9; continue; }
  38353. /* */ $s = 10; continue;
  38354. /* if (notifyConsumed > 0) { */ case 9:
  38355. _r$1 = s.sendWindowUpdate(notifyConsumed); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  38356. err$1 = _r$1;
  38357. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  38358. _tmp$2 = n;
  38359. _tmp$3 = err$1;
  38360. n = _tmp$2;
  38361. err = _tmp$3;
  38362. $s = -1; return [n, err];
  38363. }
  38364. /* } */ case 10:
  38365. $s = 7; continue;
  38366. /* } else { */ case 6:
  38367. _r$2 = s.waitRead(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  38368. ew$1 = _r$2;
  38369. if (!($interfaceIsEqual(ew$1, $ifaceNil))) {
  38370. _tmp$4 = n;
  38371. _tmp$5 = ew$1;
  38372. n = _tmp$4;
  38373. err = _tmp$5;
  38374. $s = -1; return [n, err];
  38375. }
  38376. /* } */ case 7:
  38377. /* } */ $s = 1; continue; case 2:
  38378. $s = -1; return [n, err];
  38379. /* */ } return; } if ($f === undefined) { $f = { $blk: Stream.ptr.prototype.writeTov2 }; } $f._q = _q; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f.buf = buf; $f.err = err; $f.err$1 = err$1; $f.ew = ew; $f.ew$1 = ew$1; $f.n = n; $f.notifyConsumed = notifyConsumed; $f.nw = nw; $f.s = s; $f.w = w; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f;
  38380. };
  38381. Stream.prototype.writeTov2 = function(w) { return this.$val.writeTov2(w); };
  38382. Stream.ptr.prototype.sendWindowUpdate = function(consumed) {
  38383. var _r, _tuple, _tuple$1, consumed, d, deadline, err, frame, hdr, ok, s, timer, $s, $deferred, $r;
  38384. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; consumed = $f.consumed; d = $f.d; deadline = $f.deadline; err = $f.err; frame = $f.frame; hdr = $f.hdr; ok = $f.ok; s = $f.s; timer = $f.timer; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  38385. s = this;
  38386. timer = ptrType$6.nil;
  38387. deadline = $chanNil;
  38388. _tuple = $assertType(s.readDeadline.Load(), time.Time, true);
  38389. d = $clone(_tuple[0], time.Time);
  38390. ok = _tuple[1];
  38391. if (ok && !$clone(d, time.Time).IsZero()) {
  38392. timer = time.NewTimer(time.Until($clone(d, time.Time)));
  38393. $deferred.push([$methodVal(timer, "Stop"), []]);
  38394. deadline = timer.C;
  38395. }
  38396. frame = $clone(newFrame(((s.sess.config.Version << 24 >>> 24)), 4, s.id), Frame);
  38397. hdr = arrayType.zero();
  38398. $clone(binary.LittleEndian, binary.littleEndian).PutUint32(new sliceType$1(hdr), consumed);
  38399. $clone(binary.LittleEndian, binary.littleEndian).PutUint32($subslice(new sliceType$1(hdr), 4), ((s.sess.config.MaxStreamBuffer >>> 0)));
  38400. frame.data = new sliceType$1(hdr);
  38401. _r = s.sess.writeFrameInternal($clone(frame, Frame), deadline, new $Uint64(0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  38402. _tuple$1 = _r;
  38403. err = _tuple$1[1];
  38404. $s = -1; return err;
  38405. /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: Stream.ptr.prototype.sendWindowUpdate }; } $f._r = _r; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.consumed = consumed; $f.d = d; $f.deadline = deadline; $f.err = err; $f.frame = frame; $f.hdr = hdr; $f.ok = ok; $f.s = s; $f.timer = timer; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  38406. };
  38407. Stream.prototype.sendWindowUpdate = function(consumed) { return this.$val.sendWindowUpdate(consumed); };
  38408. Stream.ptr.prototype.waitRead = function() {
  38409. var _r, _selection, _tuple, d, deadline, ok, s, timer, $s, $deferred, $r;
  38410. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _selection = $f._selection; _tuple = $f._tuple; d = $f.d; deadline = $f.deadline; ok = $f.ok; s = $f.s; timer = $f.timer; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  38411. s = this;
  38412. timer = ptrType$6.nil;
  38413. deadline = $chanNil;
  38414. _tuple = $assertType(s.readDeadline.Load(), time.Time, true);
  38415. d = $clone(_tuple[0], time.Time);
  38416. ok = _tuple[1];
  38417. if (ok && !$clone(d, time.Time).IsZero()) {
  38418. timer = time.NewTimer(time.Until($clone(d, time.Time)));
  38419. $deferred.push([$methodVal(timer, "Stop"), []]);
  38420. deadline = timer.C;
  38421. }
  38422. _r = $select([[s.chReadEvent], [s.chFinEvent], [s.sess.chSocketReadError], [s.sess.chProtoError], [deadline], [s.die]]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  38423. _selection = _r;
  38424. if (_selection[0] === 0) {
  38425. $s = -1; return $ifaceNil;
  38426. } else if (_selection[0] === 1) {
  38427. $s = -1; return io.EOF;
  38428. } else if (_selection[0] === 2) {
  38429. $s = -1; return $assertType(s.sess.socketReadError.Load(), $error);
  38430. } else if (_selection[0] === 3) {
  38431. $s = -1; return $assertType(s.sess.protoError.Load(), $error);
  38432. } else if (_selection[0] === 4) {
  38433. $s = -1; return $pkg.ErrTimeout;
  38434. } else if (_selection[0] === 5) {
  38435. $s = -1; return io.ErrClosedPipe;
  38436. }
  38437. $s = -1; return $ifaceNil;
  38438. /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: Stream.ptr.prototype.waitRead }; } $f._r = _r; $f._selection = _selection; $f._tuple = _tuple; $f.d = d; $f.deadline = deadline; $f.ok = ok; $f.s = s; $f.timer = timer; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  38439. };
  38440. Stream.prototype.waitRead = function() { return this.$val.waitRead(); };
  38441. Stream.ptr.prototype.Write = function(b) {
  38442. var _r, _r$1, _selection, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, b, bts, d, deadline, err, err$1, frame, n, n$1, ok, s, sent, sz, timer, $s, $deferred, $r;
  38443. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _selection = $f._selection; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; b = $f.b; bts = $f.bts; d = $f.d; deadline = $f.deadline; err = $f.err; err$1 = $f.err$1; frame = $f.frame; n = $f.n; n$1 = $f.n$1; ok = $f.ok; s = $f.s; sent = $f.sent; sz = $f.sz; timer = $f.timer; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  38444. n = 0;
  38445. err = $ifaceNil;
  38446. s = this;
  38447. /* */ if (s.sess.config.Version === 2) { $s = 1; continue; }
  38448. /* */ $s = 2; continue;
  38449. /* if (s.sess.config.Version === 2) { */ case 1:
  38450. _r = s.writeV2(b); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  38451. _tuple = _r;
  38452. n = _tuple[0];
  38453. err = _tuple[1];
  38454. $s = -1; return [n, err];
  38455. /* } */ case 2:
  38456. deadline = $chanNil;
  38457. _tuple$1 = $assertType(s.writeDeadline.Load(), time.Time, true);
  38458. d = $clone(_tuple$1[0], time.Time);
  38459. ok = _tuple$1[1];
  38460. if (ok && !$clone(d, time.Time).IsZero()) {
  38461. timer = time.NewTimer(time.Until($clone(d, time.Time)));
  38462. $deferred.push([$methodVal(timer, "Stop"), []]);
  38463. deadline = timer.C;
  38464. }
  38465. _selection = $select([[s.die], []]);
  38466. if (_selection[0] === 0) {
  38467. _tmp = 0;
  38468. _tmp$1 = io.ErrClosedPipe;
  38469. n = _tmp;
  38470. err = _tmp$1;
  38471. $s = -1; return [n, err];
  38472. } else if (_selection[0] === 1) {
  38473. }
  38474. sent = 0;
  38475. frame = $clone(newFrame(((s.sess.config.Version << 24 >>> 24)), 2, s.id), Frame);
  38476. bts = b;
  38477. /* while (true) { */ case 4:
  38478. /* if (!(bts.$length > 0)) { break; } */ if(!(bts.$length > 0)) { $s = 5; continue; }
  38479. sz = bts.$length;
  38480. if (sz > s.frameSize) {
  38481. sz = s.frameSize;
  38482. }
  38483. frame.data = $subslice(bts, 0, sz);
  38484. bts = $subslice(bts, sz);
  38485. _r$1 = s.sess.writeFrameInternal($clone(frame, Frame), deadline, (new $Uint64(0, s.numWritten))); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  38486. _tuple$2 = _r$1;
  38487. n$1 = _tuple$2[0];
  38488. err$1 = _tuple$2[1];
  38489. s.numWritten = s.numWritten + (1) >>> 0;
  38490. sent = sent + (n$1) >> 0;
  38491. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  38492. _tmp$2 = sent;
  38493. _tmp$3 = err$1;
  38494. n = _tmp$2;
  38495. err = _tmp$3;
  38496. $s = -1; return [n, err];
  38497. }
  38498. /* } */ $s = 4; continue; case 5:
  38499. _tmp$4 = sent;
  38500. _tmp$5 = $ifaceNil;
  38501. n = _tmp$4;
  38502. err = _tmp$5;
  38503. $s = -1; return [n, err];
  38504. /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [n, err]; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: Stream.ptr.prototype.Write }; } $f._r = _r; $f._r$1 = _r$1; $f._selection = _selection; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.b = b; $f.bts = bts; $f.d = d; $f.deadline = deadline; $f.err = err; $f.err$1 = err$1; $f.frame = frame; $f.n = n; $f.n$1 = n$1; $f.ok = ok; $f.s = s; $f.sent = sent; $f.sz = sz; $f.timer = timer; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  38505. };
  38506. Stream.prototype.Write = function(b) { return this.$val.Write(b); };
  38507. Stream.ptr.prototype.writeV2 = function(b) {
  38508. var _r, _r$1, _selection, _selection$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, b, bts, d, deadline, err, err$1, frame, inflight, n, n$1, ok, s, sent, sz, timer, win, $s, $deferred, $r;
  38509. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _selection = $f._selection; _selection$1 = $f._selection$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$10 = $f._tmp$10; _tmp$11 = $f._tmp$11; _tmp$12 = $f._tmp$12; _tmp$13 = $f._tmp$13; _tmp$14 = $f._tmp$14; _tmp$15 = $f._tmp$15; _tmp$16 = $f._tmp$16; _tmp$17 = $f._tmp$17; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; b = $f.b; bts = $f.bts; d = $f.d; deadline = $f.deadline; err = $f.err; err$1 = $f.err$1; frame = $f.frame; inflight = $f.inflight; n = $f.n; n$1 = $f.n$1; ok = $f.ok; s = $f.s; sent = $f.sent; sz = $f.sz; timer = $f.timer; win = $f.win; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  38510. n = 0;
  38511. err = $ifaceNil;
  38512. s = this;
  38513. if (b.$length === 0) {
  38514. _tmp = 0;
  38515. _tmp$1 = $ifaceNil;
  38516. n = _tmp;
  38517. err = _tmp$1;
  38518. $s = -1; return [n, err];
  38519. }
  38520. _selection = $select([[s.die], []]);
  38521. if (_selection[0] === 0) {
  38522. _tmp$2 = 0;
  38523. _tmp$3 = io.ErrClosedPipe;
  38524. n = _tmp$2;
  38525. err = _tmp$3;
  38526. $s = -1; return [n, err];
  38527. } else if (_selection[0] === 1) {
  38528. }
  38529. deadline = $chanNil;
  38530. _tuple = $assertType(s.writeDeadline.Load(), time.Time, true);
  38531. d = $clone(_tuple[0], time.Time);
  38532. ok = _tuple[1];
  38533. if (ok && !$clone(d, time.Time).IsZero()) {
  38534. timer = time.NewTimer(time.Until($clone(d, time.Time)));
  38535. $deferred.push([$methodVal(timer, "Stop"), []]);
  38536. deadline = timer.C;
  38537. }
  38538. sent = 0;
  38539. frame = $clone(newFrame(((s.sess.config.Version << 24 >>> 24)), 2, s.id), Frame);
  38540. /* while (true) { */ case 1:
  38541. bts = sliceType$1.nil;
  38542. inflight = (((atomic.LoadUint32((s.$ptr_numWritten || (s.$ptr_numWritten = new ptrType$7(function() { return this.$target.numWritten; }, function($v) { this.$target.numWritten = $v; }, s)))) - atomic.LoadUint32((s.$ptr_peerConsumed || (s.$ptr_peerConsumed = new ptrType$7(function() { return this.$target.peerConsumed; }, function($v) { this.$target.peerConsumed = $v; }, s)))) >>> 0) >> 0));
  38543. if (inflight < 0) {
  38544. _tmp$4 = 0;
  38545. _tmp$5 = $pkg.ErrConsumed;
  38546. n = _tmp$4;
  38547. err = _tmp$5;
  38548. $s = -1; return [n, err];
  38549. }
  38550. win = ((atomic.LoadUint32((s.$ptr_peerWindow || (s.$ptr_peerWindow = new ptrType$7(function() { return this.$target.peerWindow; }, function($v) { this.$target.peerWindow = $v; }, s)))) >> 0)) - inflight >> 0;
  38551. /* */ if (win > 0) { $s = 3; continue; }
  38552. /* */ $s = 4; continue;
  38553. /* if (win > 0) { */ case 3:
  38554. if (win > ((b.$length >> 0))) {
  38555. bts = b;
  38556. b = sliceType$1.nil;
  38557. } else {
  38558. bts = $subslice(b, 0, win);
  38559. b = $subslice(b, win);
  38560. }
  38561. /* while (true) { */ case 5:
  38562. /* if (!(bts.$length > 0)) { break; } */ if(!(bts.$length > 0)) { $s = 6; continue; }
  38563. sz = bts.$length;
  38564. if (sz > s.frameSize) {
  38565. sz = s.frameSize;
  38566. }
  38567. frame.data = $subslice(bts, 0, sz);
  38568. bts = $subslice(bts, sz);
  38569. _r = s.sess.writeFrameInternal($clone(frame, Frame), deadline, (new $Uint64(0, atomic.LoadUint32((s.$ptr_numWritten || (s.$ptr_numWritten = new ptrType$7(function() { return this.$target.numWritten; }, function($v) { this.$target.numWritten = $v; }, s))))))); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  38570. _tuple$1 = _r;
  38571. n$1 = _tuple$1[0];
  38572. err$1 = _tuple$1[1];
  38573. atomic.AddUint32((s.$ptr_numWritten || (s.$ptr_numWritten = new ptrType$7(function() { return this.$target.numWritten; }, function($v) { this.$target.numWritten = $v; }, s))), ((sz >>> 0)));
  38574. sent = sent + (n$1) >> 0;
  38575. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  38576. _tmp$6 = sent;
  38577. _tmp$7 = err$1;
  38578. n = _tmp$6;
  38579. err = _tmp$7;
  38580. $s = -1; return [n, err];
  38581. }
  38582. /* } */ $s = 5; continue; case 6:
  38583. /* } */ case 4:
  38584. /* */ if (b.$length > 0) { $s = 8; continue; }
  38585. /* */ $s = 9; continue;
  38586. /* if (b.$length > 0) { */ case 8:
  38587. _r$1 = $select([[s.chFinEvent], [s.die], [deadline], [s.sess.chSocketWriteError], [s.chUpdate]]); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  38588. _selection$1 = _r$1;
  38589. if (_selection$1[0] === 0) {
  38590. _tmp$8 = 0;
  38591. _tmp$9 = io.EOF;
  38592. n = _tmp$8;
  38593. err = _tmp$9;
  38594. $s = -1; return [n, err];
  38595. } else if (_selection$1[0] === 1) {
  38596. _tmp$10 = sent;
  38597. _tmp$11 = io.ErrClosedPipe;
  38598. n = _tmp$10;
  38599. err = _tmp$11;
  38600. $s = -1; return [n, err];
  38601. } else if (_selection$1[0] === 2) {
  38602. _tmp$12 = sent;
  38603. _tmp$13 = $pkg.ErrTimeout;
  38604. n = _tmp$12;
  38605. err = _tmp$13;
  38606. $s = -1; return [n, err];
  38607. } else if (_selection$1[0] === 3) {
  38608. _tmp$14 = sent;
  38609. _tmp$15 = $assertType(s.sess.socketWriteError.Load(), $error);
  38610. n = _tmp$14;
  38611. err = _tmp$15;
  38612. $s = -1; return [n, err];
  38613. } else if (_selection$1[0] === 4) {
  38614. /* continue; */ $s = 1; continue;
  38615. }
  38616. $s = 10; continue;
  38617. /* } else { */ case 9:
  38618. _tmp$16 = sent;
  38619. _tmp$17 = $ifaceNil;
  38620. n = _tmp$16;
  38621. err = _tmp$17;
  38622. $s = -1; return [n, err];
  38623. /* } */ case 10:
  38624. /* } */ $s = 1; continue; case 2:
  38625. $s = -1; return [n, err];
  38626. /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [n, err]; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: Stream.ptr.prototype.writeV2 }; } $f._r = _r; $f._r$1 = _r$1; $f._selection = _selection; $f._selection$1 = _selection$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$10 = _tmp$10; $f._tmp$11 = _tmp$11; $f._tmp$12 = _tmp$12; $f._tmp$13 = _tmp$13; $f._tmp$14 = _tmp$14; $f._tmp$15 = _tmp$15; $f._tmp$16 = _tmp$16; $f._tmp$17 = _tmp$17; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.b = b; $f.bts = bts; $f.d = d; $f.deadline = deadline; $f.err = err; $f.err$1 = err$1; $f.frame = frame; $f.inflight = inflight; $f.n = n; $f.n$1 = n$1; $f.ok = ok; $f.s = s; $f.sent = sent; $f.sz = sz; $f.timer = timer; $f.win = win; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  38627. };
  38628. Stream.prototype.writeV2 = function(b) { return this.$val.writeV2(b); };
  38629. Stream.ptr.prototype.Close = function() {
  38630. var _r, _tuple, err, once, s, $s, $r;
  38631. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; once = $f.once; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  38632. once = [once];
  38633. s = [s];
  38634. s[0] = this;
  38635. once[0] = false;
  38636. err = $ifaceNil;
  38637. $r = s[0].dieOnce.Do((function(once, s) { return function() {
  38638. $close(s[0].die);
  38639. once[0] = true;
  38640. }; })(once, s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38641. /* */ if (once[0]) { $s = 2; continue; }
  38642. /* */ $s = 3; continue;
  38643. /* if (once[0]) { */ case 2:
  38644. _r = s[0].sess.writeFrame($clone(newFrame(((s[0].sess.config.Version << 24 >>> 24)), 1, s[0].id), Frame)); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  38645. _tuple = _r;
  38646. err = _tuple[1];
  38647. $r = s[0].sess.streamClosed(s[0].id); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38648. $s = -1; return err;
  38649. /* } else { */ case 3:
  38650. $s = -1; return io.ErrClosedPipe;
  38651. /* } */ case 4:
  38652. $s = -1; return $ifaceNil;
  38653. /* */ } return; } if ($f === undefined) { $f = { $blk: Stream.ptr.prototype.Close }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.once = once; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  38654. };
  38655. Stream.prototype.Close = function() { return this.$val.Close(); };
  38656. Stream.ptr.prototype.GetDieCh = function() {
  38657. var s;
  38658. s = this;
  38659. return s.die;
  38660. };
  38661. Stream.prototype.GetDieCh = function() { return this.$val.GetDieCh(); };
  38662. Stream.ptr.prototype.SetReadDeadline = function(t) {
  38663. var s, t;
  38664. s = this;
  38665. s.readDeadline.Store(new t.constructor.elem(t));
  38666. s.notifyReadEvent();
  38667. return $ifaceNil;
  38668. };
  38669. Stream.prototype.SetReadDeadline = function(t) { return this.$val.SetReadDeadline(t); };
  38670. Stream.ptr.prototype.SetWriteDeadline = function(t) {
  38671. var s, t;
  38672. s = this;
  38673. s.writeDeadline.Store(new t.constructor.elem(t));
  38674. return $ifaceNil;
  38675. };
  38676. Stream.prototype.SetWriteDeadline = function(t) { return this.$val.SetWriteDeadline(t); };
  38677. Stream.ptr.prototype.SetDeadline = function(t) {
  38678. var err, err$1, s, t;
  38679. s = this;
  38680. err = s.SetReadDeadline($clone(t, time.Time));
  38681. if (!($interfaceIsEqual(err, $ifaceNil))) {
  38682. return err;
  38683. }
  38684. err$1 = s.SetWriteDeadline($clone(t, time.Time));
  38685. if (!($interfaceIsEqual(err$1, $ifaceNil))) {
  38686. return err$1;
  38687. }
  38688. return $ifaceNil;
  38689. };
  38690. Stream.prototype.SetDeadline = function(t) { return this.$val.SetDeadline(t); };
  38691. Stream.ptr.prototype.sessionClose = function() {
  38692. var s, $s, $r;
  38693. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  38694. s = [s];
  38695. s[0] = this;
  38696. $r = s[0].dieOnce.Do((function(s) { return function() {
  38697. $close(s[0].die);
  38698. }; })(s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38699. $s = -1; return;
  38700. /* */ } return; } if ($f === undefined) { $f = { $blk: Stream.ptr.prototype.sessionClose }; } $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  38701. };
  38702. Stream.prototype.sessionClose = function() { return this.$val.sessionClose(); };
  38703. Stream.ptr.prototype.LocalAddr = function() {
  38704. var _r, _tuple, ok, s, ts, $s, $r;
  38705. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; ok = $f.ok; s = $f.s; ts = $f.ts; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  38706. s = this;
  38707. _tuple = $assertType(s.sess.conn, interfaceType, true);
  38708. ts = _tuple[0];
  38709. ok = _tuple[1];
  38710. /* */ if (ok) { $s = 1; continue; }
  38711. /* */ $s = 2; continue;
  38712. /* if (ok) { */ case 1:
  38713. _r = ts.LocalAddr(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  38714. $s = -1; return _r;
  38715. /* } */ case 2:
  38716. $s = -1; return $ifaceNil;
  38717. /* */ } return; } if ($f === undefined) { $f = { $blk: Stream.ptr.prototype.LocalAddr }; } $f._r = _r; $f._tuple = _tuple; $f.ok = ok; $f.s = s; $f.ts = ts; $f.$s = $s; $f.$r = $r; return $f;
  38718. };
  38719. Stream.prototype.LocalAddr = function() { return this.$val.LocalAddr(); };
  38720. Stream.ptr.prototype.RemoteAddr = function() {
  38721. var _r, _tuple, ok, s, ts, $s, $r;
  38722. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; ok = $f.ok; s = $f.s; ts = $f.ts; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  38723. s = this;
  38724. _tuple = $assertType(s.sess.conn, interfaceType$1, true);
  38725. ts = _tuple[0];
  38726. ok = _tuple[1];
  38727. /* */ if (ok) { $s = 1; continue; }
  38728. /* */ $s = 2; continue;
  38729. /* if (ok) { */ case 1:
  38730. _r = ts.RemoteAddr(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  38731. $s = -1; return _r;
  38732. /* } */ case 2:
  38733. $s = -1; return $ifaceNil;
  38734. /* */ } return; } if ($f === undefined) { $f = { $blk: Stream.ptr.prototype.RemoteAddr }; } $f._r = _r; $f._tuple = _tuple; $f.ok = ok; $f.s = s; $f.ts = ts; $f.$s = $s; $f.$r = $r; return $f;
  38735. };
  38736. Stream.prototype.RemoteAddr = function() { return this.$val.RemoteAddr(); };
  38737. Stream.ptr.prototype.pushBytes = function(buf) {
  38738. var buf, err, s, written, $s, $r;
  38739. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; buf = $f.buf; err = $f.err; s = $f.s; written = $f.written; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  38740. written = 0;
  38741. err = $ifaceNil;
  38742. s = this;
  38743. $r = s.bufferLock.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38744. s.buffers = $append(s.buffers, buf);
  38745. s.heads = $append(s.heads, buf);
  38746. $r = s.bufferLock.Unlock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38747. $s = -1; return [written, err];
  38748. /* */ } return; } if ($f === undefined) { $f = { $blk: Stream.ptr.prototype.pushBytes }; } $f.buf = buf; $f.err = err; $f.s = s; $f.written = written; $f.$s = $s; $f.$r = $r; return $f;
  38749. };
  38750. Stream.prototype.pushBytes = function(buf) { return this.$val.pushBytes(buf); };
  38751. Stream.ptr.prototype.recycleTokens = function() {
  38752. var _i, _ref, k, n, s, x, x$1, $s, $r;
  38753. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _ref = $f._ref; k = $f.k; n = $f.n; s = $f.s; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  38754. n = 0;
  38755. s = this;
  38756. $r = s.bufferLock.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38757. _ref = s.buffers;
  38758. _i = 0;
  38759. while (true) {
  38760. if (!(_i < _ref.$length)) { break; }
  38761. k = _i;
  38762. n = n + ((x = s.buffers, ((k < 0 || k >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + k])).$length) >> 0;
  38763. defaultAllocator.Put((x$1 = s.heads, ((k < 0 || k >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + k])));
  38764. _i++;
  38765. }
  38766. s.buffers = sliceType$3.nil;
  38767. s.heads = sliceType$3.nil;
  38768. $r = s.bufferLock.Unlock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38769. $s = -1; return n;
  38770. /* */ } return; } if ($f === undefined) { $f = { $blk: Stream.ptr.prototype.recycleTokens }; } $f._i = _i; $f._ref = _ref; $f.k = k; $f.n = n; $f.s = s; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f;
  38771. };
  38772. Stream.prototype.recycleTokens = function() { return this.$val.recycleTokens(); };
  38773. Stream.ptr.prototype.notifyReadEvent = function() {
  38774. var _selection, s, $r;
  38775. /* */ var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _selection = $f._selection; s = $f.s; $r = $f.$r; }
  38776. s = this;
  38777. _selection = $select([[s.chReadEvent, new structType.ptr()], []]);
  38778. if (_selection[0] === 0) {
  38779. } else if (_selection[0] === 1) {
  38780. }
  38781. /* */ if ($f === undefined) { $f = { $blk: Stream.ptr.prototype.notifyReadEvent }; } $f._selection = _selection; $f.s = s; $f.$r = $r; return $f;
  38782. };
  38783. Stream.prototype.notifyReadEvent = function() { return this.$val.notifyReadEvent(); };
  38784. Stream.ptr.prototype.update = function(consumed, window) {
  38785. var _selection, consumed, s, window, $r;
  38786. /* */ var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _selection = $f._selection; consumed = $f.consumed; s = $f.s; window = $f.window; $r = $f.$r; }
  38787. s = this;
  38788. atomic.StoreUint32((s.$ptr_peerConsumed || (s.$ptr_peerConsumed = new ptrType$7(function() { return this.$target.peerConsumed; }, function($v) { this.$target.peerConsumed = $v; }, s))), consumed);
  38789. atomic.StoreUint32((s.$ptr_peerWindow || (s.$ptr_peerWindow = new ptrType$7(function() { return this.$target.peerWindow; }, function($v) { this.$target.peerWindow = $v; }, s))), window);
  38790. _selection = $select([[s.chUpdate, new structType.ptr()], []]);
  38791. if (_selection[0] === 0) {
  38792. } else if (_selection[0] === 1) {
  38793. }
  38794. /* */ if ($f === undefined) { $f = { $blk: Stream.ptr.prototype.update }; } $f._selection = _selection; $f.consumed = consumed; $f.s = s; $f.window = window; $f.$r = $r; return $f;
  38795. };
  38796. Stream.prototype.update = function(consumed, window) { return this.$val.update(consumed, window); };
  38797. Stream.ptr.prototype.fin = function() {
  38798. var s, $s, $r;
  38799. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  38800. s = [s];
  38801. s[0] = this;
  38802. $r = s[0].finEventOnce.Do((function(s) { return function() {
  38803. $close(s[0].chFinEvent);
  38804. }; })(s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38805. $s = -1; return;
  38806. /* */ } return; } if ($f === undefined) { $f = { $blk: Stream.ptr.prototype.fin }; } $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  38807. };
  38808. Stream.prototype.fin = function() { return this.$val.fin(); };
  38809. ptrType.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([$Int], [sliceType$1], false)}, {prop: "Put", name: "Put", pkg: "", typ: $funcType([sliceType$1], [$error], false)}];
  38810. rawHeader.methods = [{prop: "Version", name: "Version", pkg: "", typ: $funcType([], [$Uint8], false)}, {prop: "Cmd", name: "Cmd", pkg: "", typ: $funcType([], [$Uint8], false)}, {prop: "Length", name: "Length", pkg: "", typ: $funcType([], [$Uint16], false)}, {prop: "StreamID", name: "StreamID", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
  38811. updHeader.methods = [{prop: "Consumed", name: "Consumed", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "Window", name: "Window", pkg: "", typ: $funcType([], [$Uint32], false)}];
  38812. ptrType$2.methods = [{prop: "OpenStream", name: "OpenStream", pkg: "", typ: $funcType([], [ptrType$3, $error], false)}, {prop: "Open", name: "Open", pkg: "", typ: $funcType([], [io.ReadWriteCloser, $error], false)}, {prop: "AcceptStream", name: "AcceptStream", pkg: "", typ: $funcType([], [ptrType$3, $error], false)}, {prop: "Accept", name: "Accept", pkg: "", typ: $funcType([], [io.ReadWriteCloser, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "notifyBucket", name: "notifyBucket", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", typ: $funcType([], [], false)}, {prop: "notifyReadError", name: "notifyReadError", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", typ: $funcType([$error], [], false)}, {prop: "notifyWriteError", name: "notifyWriteError", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", typ: $funcType([$error], [], false)}, {prop: "notifyProtoError", name: "notifyProtoError", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", typ: $funcType([$error], [], false)}, {prop: "IsClosed", name: "IsClosed", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "NumStreams", name: "NumStreams", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "LocalAddr", name: "LocalAddr", pkg: "", typ: $funcType([], [net.Addr], false)}, {prop: "RemoteAddr", name: "RemoteAddr", pkg: "", typ: $funcType([], [net.Addr], false)}, {prop: "streamClosed", name: "streamClosed", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", typ: $funcType([$Uint32], [], false)}, {prop: "returnTokens", name: "returnTokens", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", typ: $funcType([$Int], [], false)}, {prop: "recvLoop", name: "recvLoop", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", typ: $funcType([], [], false)}, {prop: "keepalive", name: "keepalive", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", typ: $funcType([], [], false)}, {prop: "shaperLoop", name: "shaperLoop", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", typ: $funcType([], [], false)}, {prop: "sendLoop", name: "sendLoop", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", typ: $funcType([], [], false)}, {prop: "writeFrame", name: "writeFrame", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", typ: $funcType([Frame], [$Int, $error], false)}, {prop: "writeFrameInternal", name: "writeFrameInternal", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", typ: $funcType([Frame, chanType$1, $Uint64], [$Int, $error], false)}];
  38813. shaperHeap.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}];
  38814. ptrType$5.methods = [{prop: "Push", name: "Push", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "Pop", name: "Pop", pkg: "", typ: $funcType([], [$emptyInterface], false)}];
  38815. ptrType$3.methods = [{prop: "ID", name: "ID", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "tryRead", name: "tryRead", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "tryReadv2", name: "tryReadv2", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "writeTov2", name: "writeTov2", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "sendWindowUpdate", name: "sendWindowUpdate", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", typ: $funcType([$Uint32], [$error], false)}, {prop: "waitRead", name: "waitRead", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", typ: $funcType([], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "writeV2", name: "writeV2", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "GetDieCh", name: "GetDieCh", pkg: "", typ: $funcType([], [chanType$5], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "sessionClose", name: "sessionClose", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", typ: $funcType([], [], false)}, {prop: "LocalAddr", name: "LocalAddr", pkg: "", typ: $funcType([], [net.Addr], false)}, {prop: "RemoteAddr", name: "RemoteAddr", pkg: "", typ: $funcType([], [net.Addr], false)}, {prop: "pushBytes", name: "pushBytes", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "recycleTokens", name: "recycleTokens", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", typ: $funcType([], [$Int], false)}, {prop: "notifyReadEvent", name: "notifyReadEvent", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", typ: $funcType([], [], false)}, {prop: "update", name: "update", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", typ: $funcType([$Uint32, $Uint32], [], false)}, {prop: "fin", name: "fin", pkg: "github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", typ: $funcType([], [], false)}];
  38816. Allocator.init("github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", [{prop: "buffers", name: "buffers", embedded: false, exported: false, typ: sliceType, tag: ""}]);
  38817. Frame.init("github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", [{prop: "ver", name: "ver", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "cmd", name: "cmd", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "sid", name: "sid", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "data", name: "data", embedded: false, exported: false, typ: sliceType$1, tag: ""}]);
  38818. rawHeader.init($Uint8, 8);
  38819. updHeader.init($Uint8, 8);
  38820. Config.init("", [{prop: "Version", name: "Version", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "KeepAliveInterval", name: "KeepAliveInterval", embedded: false, exported: true, typ: time.Duration, tag: ""}, {prop: "KeepAliveTimeout", name: "KeepAliveTimeout", embedded: false, exported: true, typ: time.Duration, tag: ""}, {prop: "MaxFrameSize", name: "MaxFrameSize", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "MaxReceiveBuffer", name: "MaxReceiveBuffer", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "MaxStreamBuffer", name: "MaxStreamBuffer", embedded: false, exported: true, typ: $Int, tag: ""}]);
  38821. writeRequest.init("github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", [{prop: "prio", name: "prio", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "frame", name: "frame", embedded: false, exported: false, typ: Frame, tag: ""}, {prop: "result", name: "result", embedded: false, exported: false, typ: chanType, tag: ""}]);
  38822. writeResult.init("github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", [{prop: "n", name: "n", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]);
  38823. buffersWriter.init([{prop: "WriteBuffers", name: "WriteBuffers", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}]);
  38824. Session.init("github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", [{prop: "conn", name: "conn", embedded: false, exported: false, typ: io.ReadWriteCloser, tag: ""}, {prop: "config", name: "config", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "nextStreamID", name: "nextStreamID", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "nextStreamIDLock", name: "nextStreamIDLock", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "bucket", name: "bucket", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "bucketNotify", name: "bucketNotify", embedded: false, exported: false, typ: chanType$2, tag: ""}, {prop: "streams", name: "streams", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "streamLock", name: "streamLock", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "die", name: "die", embedded: false, exported: false, typ: chanType$2, tag: ""}, {prop: "dieOnce", name: "dieOnce", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "socketReadError", name: "socketReadError", embedded: false, exported: false, typ: atomic.Value, tag: ""}, {prop: "socketWriteError", name: "socketWriteError", embedded: false, exported: false, typ: atomic.Value, tag: ""}, {prop: "chSocketReadError", name: "chSocketReadError", embedded: false, exported: false, typ: chanType$2, tag: ""}, {prop: "chSocketWriteError", name: "chSocketWriteError", embedded: false, exported: false, typ: chanType$2, tag: ""}, {prop: "socketReadErrorOnce", name: "socketReadErrorOnce", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "socketWriteErrorOnce", name: "socketWriteErrorOnce", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "protoError", name: "protoError", embedded: false, exported: false, typ: atomic.Value, tag: ""}, {prop: "chProtoError", name: "chProtoError", embedded: false, exported: false, typ: chanType$2, tag: ""}, {prop: "protoErrorOnce", name: "protoErrorOnce", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "chAccepts", name: "chAccepts", embedded: false, exported: false, typ: chanType$3, tag: ""}, {prop: "dataReady", name: "dataReady", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "goAway", name: "goAway", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "deadline", name: "deadline", embedded: false, exported: false, typ: atomic.Value, tag: ""}, {prop: "shaper", name: "shaper", embedded: false, exported: false, typ: chanType$4, tag: ""}, {prop: "writes", name: "writes", embedded: false, exported: false, typ: chanType$4, tag: ""}]);
  38825. shaperHeap.init(writeRequest);
  38826. Stream.init("github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux", [{prop: "id", name: "id", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "sess", name: "sess", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "buffers", name: "buffers", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "heads", name: "heads", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "bufferLock", name: "bufferLock", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "frameSize", name: "frameSize", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "chReadEvent", name: "chReadEvent", embedded: false, exported: false, typ: chanType$2, tag: ""}, {prop: "die", name: "die", embedded: false, exported: false, typ: chanType$2, tag: ""}, {prop: "dieOnce", name: "dieOnce", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "chFinEvent", name: "chFinEvent", embedded: false, exported: false, typ: chanType$2, tag: ""}, {prop: "finEventOnce", name: "finEventOnce", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "readDeadline", name: "readDeadline", embedded: false, exported: false, typ: atomic.Value, tag: ""}, {prop: "writeDeadline", name: "writeDeadline", embedded: false, exported: false, typ: atomic.Value, tag: ""}, {prop: "numRead", name: "numRead", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "numWritten", name: "numWritten", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "incr", name: "incr", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "peerConsumed", name: "peerConsumed", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "peerWindow", name: "peerWindow", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "chUpdate", name: "chUpdate", embedded: false, exported: false, typ: chanType$2, tag: ""}]);
  38827. $init = function() {
  38828. $pkg.$init = function() {};
  38829. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  38830. $r = heap.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38831. $r = binary.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38832. $r = errors.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38833. $r = fmt.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38834. $r = io.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38835. $r = math.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38836. $r = net.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38837. $r = sync.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38838. $r = atomic.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38839. $r = time.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38840. defaultAllocator = ptrType.nil;
  38841. debruijinPos = $toNativeArray($kindUint8, [0, 9, 1, 10, 13, 21, 2, 29, 11, 14, 16, 18, 22, 25, 3, 30, 8, 12, 20, 28, 15, 17, 24, 7, 19, 27, 23, 6, 26, 5, 4, 31]);
  38842. $pkg.ErrInvalidProtocol = errors.New("invalid protocol");
  38843. $pkg.ErrConsumed = errors.New("peer consumed more than sent");
  38844. $pkg.ErrGoAway = errors.New("stream id overflows, should start a new connection");
  38845. $pkg.ErrTimeout = errors.New("timeout");
  38846. $pkg.ErrWouldBlock = errors.New("operation would block on IO");
  38847. init();
  38848. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  38849. };
  38850. $pkg.$init = $init;
  38851. return $pkg;
  38852. })();
  38853. $packages["github.com/xiaokangwang/BrowserBridge/bridge"] = (function() {
  38854. var $pkg = {}, $init, fmt, proto, websocket, smux, io, time, Settings, sliceType, ptrType, Bridge;
  38855. fmt = $packages["fmt"];
  38856. proto = $packages["github.com/xiaokangwang/BrowserBridge/proto"];
  38857. websocket = $packages["github.com/xiaokangwang/BrowserBridge/vendor/github.com/gopherjs/websocket"];
  38858. smux = $packages["github.com/xiaokangwang/BrowserBridge/vendor/github.com/xtaci/smux"];
  38859. io = $packages["io"];
  38860. time = $packages["time"];
  38861. Settings = $pkg.Settings = $newType(0, $kindStruct, "bridge.Settings", true, "github.com/xiaokangwang/BrowserBridge/bridge", true, function(DialAddr_) {
  38862. this.$val = this;
  38863. if (arguments.length === 0) {
  38864. this.DialAddr = "";
  38865. return;
  38866. }
  38867. this.DialAddr = DialAddr_;
  38868. });
  38869. sliceType = $sliceType($emptyInterface);
  38870. ptrType = $ptrType(smux.Config);
  38871. Bridge = function(s) {
  38872. var DoConnect, _r, delay, s, $s, $r;
  38873. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; DoConnect = $f.DoConnect; _r = $f._r; delay = $f.delay; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  38874. s = [s];
  38875. /* while (true) { */ case 1:
  38876. delay = time.NewTimer(new time.Duration(0, 1000000000));
  38877. DoConnect = (function(s) { return function $b() {
  38878. var _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, conn, err, err$1, smuxc, stream, $s, $r;
  38879. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; conn = $f.conn; err = $f.err; err$1 = $f.err$1; smuxc = $f.smuxc; stream = $f.stream; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  38880. _r = websocket.Dial(s[0].DialAddr); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  38881. _tuple = _r;
  38882. conn = _tuple[0];
  38883. err = _tuple[1];
  38884. /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
  38885. /* */ $s = 3; continue;
  38886. /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
  38887. _r$1 = fmt.Println(new sliceType([err, new $String(s[0].DialAddr)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  38888. _r$1;
  38889. $s = -1; return;
  38890. /* } */ case 3:
  38891. _r$2 = smux.Client(conn, ptrType.nil); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  38892. _tuple$1 = _r$2;
  38893. smuxc = _tuple$1[0];
  38894. err = _tuple$1[1];
  38895. if (!($interfaceIsEqual(err, $ifaceNil))) {
  38896. $s = -1; return;
  38897. }
  38898. /* while (true) { */ case 6:
  38899. stream = [stream];
  38900. _r$3 = smuxc.Accept(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  38901. _tuple$2 = _r$3;
  38902. stream[0] = _tuple$2[0];
  38903. err$1 = _tuple$2[1];
  38904. /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 9; continue; }
  38905. /* */ $s = 10; continue;
  38906. /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 9:
  38907. _r$4 = fmt.Println(new sliceType([err$1])); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
  38908. _r$4;
  38909. $s = -1; return;
  38910. /* } */ case 10:
  38911. $go((function(s, stream) { return function $b() {
  38912. var _r$10, _r$11, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple$3, _tuple$4, conn2, err$2, req, $s, $r;
  38913. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; conn2 = $f.conn2; err$2 = $f.err$2; req = $f.req; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  38914. _r$5 = proto.ReadRequest(stream[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
  38915. _tuple$3 = _r$5;
  38916. err$2 = _tuple$3[0];
  38917. req = _tuple$3[1];
  38918. /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 2; continue; }
  38919. /* */ $s = 3; continue;
  38920. /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 2:
  38921. _r$6 = fmt.Println(new sliceType([err$2])); /* */ $s = 4; case 4: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
  38922. _r$6;
  38923. $s = -1; return;
  38924. /* } */ case 3:
  38925. _r$7 = websocket.Dial(req.Destination); /* */ $s = 5; case 5: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
  38926. _tuple$4 = _r$7;
  38927. conn2 = _tuple$4[0];
  38928. err$2 = _tuple$4[1];
  38929. /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 6; continue; }
  38930. /* */ $s = 7; continue;
  38931. /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 6:
  38932. _r$8 = fmt.Println(new sliceType([err$2])); /* */ $s = 8; case 8: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
  38933. _r$8;
  38934. _r$9 = stream[0].Close(); /* */ $s = 9; case 9: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
  38935. _r$9;
  38936. $s = -1; return;
  38937. /* } */ case 7:
  38938. $go(io.Copy, [stream[0], conn2]);
  38939. _r$10 = io.Copy(conn2, stream[0]); /* */ $s = 10; case 10: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
  38940. _r$10;
  38941. _r$11 = stream[0].Close(); /* */ $s = 11; case 11: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
  38942. _r$11;
  38943. $s = -1; return;
  38944. /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f.conn2 = conn2; $f.err$2 = err$2; $f.req = req; $f.$s = $s; $f.$r = $r; return $f;
  38945. }; })(s, stream), []);
  38946. /* } */ $s = 6; continue; case 7:
  38947. $s = -1; return;
  38948. /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.conn = conn; $f.err = err; $f.err$1 = err$1; $f.smuxc = smuxc; $f.stream = stream; $f.$s = $s; $f.$r = $r; return $f;
  38949. }; })(s);
  38950. $r = DoConnect(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38951. _r = $recv(delay.C); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  38952. _r[0];
  38953. /* } */ $s = 1; continue; case 2:
  38954. $s = -1; return;
  38955. /* */ } return; } if ($f === undefined) { $f = { $blk: Bridge }; } $f.DoConnect = DoConnect; $f._r = _r; $f.delay = delay; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
  38956. };
  38957. $pkg.Bridge = Bridge;
  38958. Settings.init("", [{prop: "DialAddr", name: "DialAddr", embedded: false, exported: true, typ: $String, tag: ""}]);
  38959. $init = function() {
  38960. $pkg.$init = function() {};
  38961. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  38962. $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38963. $r = proto.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38964. $r = websocket.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38965. $r = smux.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38966. $r = io.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38967. $r = time.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  38968. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  38969. };
  38970. $pkg.$init = $init;
  38971. return $pkg;
  38972. })();
  38973. $packages["log"] = (function() {
  38974. var $pkg = {}, $init, fmt, nosync, io, os, runtime, time, Logger, sliceType, arrayType, ptrType, sliceType$1, ptrType$1, std, New, itoa, Println;
  38975. fmt = $packages["fmt"];
  38976. nosync = $packages["github.com/gopherjs/gopherjs/nosync"];
  38977. io = $packages["io"];
  38978. os = $packages["os"];
  38979. runtime = $packages["runtime"];
  38980. time = $packages["time"];
  38981. Logger = $pkg.Logger = $newType(0, $kindStruct, "log.Logger", true, "log", true, function(mu_, prefix_, flag_, out_, buf_) {
  38982. this.$val = this;
  38983. if (arguments.length === 0) {
  38984. this.mu = new nosync.Mutex.ptr(false);
  38985. this.prefix = "";
  38986. this.flag = 0;
  38987. this.out = $ifaceNil;
  38988. this.buf = sliceType.nil;
  38989. return;
  38990. }
  38991. this.mu = mu_;
  38992. this.prefix = prefix_;
  38993. this.flag = flag_;
  38994. this.out = out_;
  38995. this.buf = buf_;
  38996. });
  38997. sliceType = $sliceType($Uint8);
  38998. arrayType = $arrayType($Uint8, 20);
  38999. ptrType = $ptrType(sliceType);
  39000. sliceType$1 = $sliceType($emptyInterface);
  39001. ptrType$1 = $ptrType(Logger);
  39002. New = function(out, prefix, flag) {
  39003. var flag, out, prefix;
  39004. return new Logger.ptr(new nosync.Mutex.ptr(false), prefix, flag, out, sliceType.nil);
  39005. };
  39006. $pkg.New = New;
  39007. Logger.ptr.prototype.SetOutput = function(w) {
  39008. var l, w, $deferred;
  39009. /* */ var $err = null; try { $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  39010. l = this;
  39011. l.mu.Lock();
  39012. $deferred.push([$methodVal(l.mu, "Unlock"), []]);
  39013. l.out = w;
  39014. /* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); }
  39015. };
  39016. Logger.prototype.SetOutput = function(w) { return this.$val.SetOutput(w); };
  39017. itoa = function(buf, i, wid) {
  39018. var _q, b, bp, buf, i, q, wid;
  39019. b = arrayType.zero();
  39020. bp = 19;
  39021. while (true) {
  39022. if (!(i >= 10 || wid > 1)) { break; }
  39023. wid = wid - (1) >> 0;
  39024. q = (_q = i / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
  39025. ((bp < 0 || bp >= b.length) ? ($throwRuntimeError("index out of range"), undefined) : b[bp] = ((((48 + i >> 0) - ($imul(q, 10)) >> 0) << 24 >>> 24)));
  39026. bp = bp - (1) >> 0;
  39027. i = q;
  39028. }
  39029. ((bp < 0 || bp >= b.length) ? ($throwRuntimeError("index out of range"), undefined) : b[bp] = (((48 + i >> 0) << 24 >>> 24)));
  39030. buf.$set($appendSlice(buf.$get(), $subslice(new sliceType(b), bp)));
  39031. };
  39032. Logger.ptr.prototype.formatHeader = function(buf, t, file, line) {
  39033. var _q, _r, _r$1, _tuple, _tuple$1, buf, day, file, hour, i, l, line, min, month, sec, short$1, t, year, $s, $r;
  39034. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; buf = $f.buf; day = $f.day; file = $f.file; hour = $f.hour; i = $f.i; l = $f.l; line = $f.line; min = $f.min; month = $f.month; sec = $f.sec; short$1 = $f.short$1; t = $f.t; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  39035. l = this;
  39036. buf.$set($appendSlice(buf.$get(), l.prefix));
  39037. /* */ if (!(((l.flag & 7) === 0))) { $s = 1; continue; }
  39038. /* */ $s = 2; continue;
  39039. /* if (!(((l.flag & 7) === 0))) { */ case 1:
  39040. if (!(((l.flag & 32) === 0))) {
  39041. time.Time.copy(t, $clone(t, time.Time).UTC());
  39042. }
  39043. /* */ if (!(((l.flag & 1) === 0))) { $s = 3; continue; }
  39044. /* */ $s = 4; continue;
  39045. /* if (!(((l.flag & 1) === 0))) { */ case 3:
  39046. _r = $clone(t, time.Time).Date(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  39047. _tuple = _r;
  39048. year = _tuple[0];
  39049. month = _tuple[1];
  39050. day = _tuple[2];
  39051. itoa(buf, year, 4);
  39052. buf.$set($append(buf.$get(), 47));
  39053. itoa(buf, ((month >> 0)), 2);
  39054. buf.$set($append(buf.$get(), 47));
  39055. itoa(buf, day, 2);
  39056. buf.$set($append(buf.$get(), 32));
  39057. /* } */ case 4:
  39058. /* */ if (!(((l.flag & 6) === 0))) { $s = 6; continue; }
  39059. /* */ $s = 7; continue;
  39060. /* if (!(((l.flag & 6) === 0))) { */ case 6:
  39061. _r$1 = $clone(t, time.Time).Clock(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  39062. _tuple$1 = _r$1;
  39063. hour = _tuple$1[0];
  39064. min = _tuple$1[1];
  39065. sec = _tuple$1[2];
  39066. itoa(buf, hour, 2);
  39067. buf.$set($append(buf.$get(), 58));
  39068. itoa(buf, min, 2);
  39069. buf.$set($append(buf.$get(), 58));
  39070. itoa(buf, sec, 2);
  39071. if (!(((l.flag & 4) === 0))) {
  39072. buf.$set($append(buf.$get(), 46));
  39073. itoa(buf, (_q = $clone(t, time.Time).Nanosecond() / 1000, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), 6);
  39074. }
  39075. buf.$set($append(buf.$get(), 32));
  39076. /* } */ case 7:
  39077. /* } */ case 2:
  39078. if (!(((l.flag & 24) === 0))) {
  39079. if (!(((l.flag & 16) === 0))) {
  39080. short$1 = file;
  39081. i = file.length - 1 >> 0;
  39082. while (true) {
  39083. if (!(i > 0)) { break; }
  39084. if (file.charCodeAt(i) === 47) {
  39085. short$1 = $substring(file, (i + 1 >> 0));
  39086. break;
  39087. }
  39088. i = i - (1) >> 0;
  39089. }
  39090. file = short$1;
  39091. }
  39092. buf.$set($appendSlice(buf.$get(), file));
  39093. buf.$set($append(buf.$get(), 58));
  39094. itoa(buf, line, -1);
  39095. buf.$set($appendSlice(buf.$get(), ": "));
  39096. }
  39097. $s = -1; return;
  39098. /* */ } return; } if ($f === undefined) { $f = { $blk: Logger.ptr.prototype.formatHeader }; } $f._q = _q; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.buf = buf; $f.day = day; $f.file = file; $f.hour = hour; $f.i = i; $f.l = l; $f.line = line; $f.min = min; $f.month = month; $f.sec = sec; $f.short$1 = short$1; $f.t = t; $f.year = year; $f.$s = $s; $f.$r = $r; return $f;
  39099. };
  39100. Logger.prototype.formatHeader = function(buf, t, file, line) { return this.$val.formatHeader(buf, t, file, line); };
  39101. Logger.ptr.prototype.Output = function(calldepth, s) {
  39102. var _r, _tuple, _tuple$1, calldepth, err, file, l, line, now, ok, s, $s, $deferred, $r;
  39103. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; calldepth = $f.calldepth; err = $f.err; file = $f.file; l = $f.l; line = $f.line; now = $f.now; ok = $f.ok; s = $f.s; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  39104. l = this;
  39105. now = $clone(time.Now(), time.Time);
  39106. file = "";
  39107. line = 0;
  39108. l.mu.Lock();
  39109. $deferred.push([$methodVal(l.mu, "Unlock"), []]);
  39110. if (!(((l.flag & 24) === 0))) {
  39111. l.mu.Unlock();
  39112. ok = false;
  39113. _tuple = runtime.Caller(calldepth);
  39114. file = _tuple[1];
  39115. line = _tuple[2];
  39116. ok = _tuple[3];
  39117. if (!ok) {
  39118. file = "???";
  39119. line = 0;
  39120. }
  39121. l.mu.Lock();
  39122. }
  39123. l.buf = $subslice(l.buf, 0, 0);
  39124. $r = l.formatHeader((l.$ptr_buf || (l.$ptr_buf = new ptrType(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, l))), $clone(now, time.Time), file, line); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  39125. l.buf = $appendSlice(l.buf, s);
  39126. if ((s.length === 0) || !((s.charCodeAt((s.length - 1 >> 0)) === 10))) {
  39127. l.buf = $append(l.buf, 10);
  39128. }
  39129. _r = l.out.Write(l.buf); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  39130. _tuple$1 = _r;
  39131. err = _tuple$1[1];
  39132. $s = -1; return err;
  39133. /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: Logger.ptr.prototype.Output }; } $f._r = _r; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.calldepth = calldepth; $f.err = err; $f.file = file; $f.l = l; $f.line = line; $f.now = now; $f.ok = ok; $f.s = s; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
  39134. };
  39135. Logger.prototype.Output = function(calldepth, s) { return this.$val.Output(calldepth, s); };
  39136. Logger.ptr.prototype.Printf = function(format, v) {
  39137. var _arg, _r, _r$1, format, l, v, $s, $r;
  39138. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _r = $f._r; _r$1 = $f._r$1; format = $f.format; l = $f.l; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  39139. l = this;
  39140. _r = fmt.Sprintf(format, v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  39141. _arg = _r;
  39142. _r$1 = l.Output(2, _arg); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  39143. _r$1;
  39144. $s = -1; return;
  39145. /* */ } return; } if ($f === undefined) { $f = { $blk: Logger.ptr.prototype.Printf }; } $f._arg = _arg; $f._r = _r; $f._r$1 = _r$1; $f.format = format; $f.l = l; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  39146. };
  39147. Logger.prototype.Printf = function(format, v) { return this.$val.Printf(format, v); };
  39148. Logger.ptr.prototype.Print = function(v) {
  39149. var _arg, _r, _r$1, l, v, $s, $r;
  39150. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _r = $f._r; _r$1 = $f._r$1; l = $f.l; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  39151. l = this;
  39152. _r = fmt.Sprint(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  39153. _arg = _r;
  39154. _r$1 = l.Output(2, _arg); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  39155. _r$1;
  39156. $s = -1; return;
  39157. /* */ } return; } if ($f === undefined) { $f = { $blk: Logger.ptr.prototype.Print }; } $f._arg = _arg; $f._r = _r; $f._r$1 = _r$1; $f.l = l; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  39158. };
  39159. Logger.prototype.Print = function(v) { return this.$val.Print(v); };
  39160. Logger.ptr.prototype.Println = function(v) {
  39161. var _arg, _r, _r$1, l, v, $s, $r;
  39162. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _r = $f._r; _r$1 = $f._r$1; l = $f.l; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  39163. l = this;
  39164. _r = fmt.Sprintln(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  39165. _arg = _r;
  39166. _r$1 = l.Output(2, _arg); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  39167. _r$1;
  39168. $s = -1; return;
  39169. /* */ } return; } if ($f === undefined) { $f = { $blk: Logger.ptr.prototype.Println }; } $f._arg = _arg; $f._r = _r; $f._r$1 = _r$1; $f.l = l; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  39170. };
  39171. Logger.prototype.Println = function(v) { return this.$val.Println(v); };
  39172. Logger.ptr.prototype.Fatal = function(v) {
  39173. var _arg, _r, _r$1, l, v, $s, $r;
  39174. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _r = $f._r; _r$1 = $f._r$1; l = $f.l; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  39175. l = this;
  39176. _r = fmt.Sprint(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  39177. _arg = _r;
  39178. _r$1 = l.Output(2, _arg); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  39179. _r$1;
  39180. os.Exit(1);
  39181. $s = -1; return;
  39182. /* */ } return; } if ($f === undefined) { $f = { $blk: Logger.ptr.prototype.Fatal }; } $f._arg = _arg; $f._r = _r; $f._r$1 = _r$1; $f.l = l; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  39183. };
  39184. Logger.prototype.Fatal = function(v) { return this.$val.Fatal(v); };
  39185. Logger.ptr.prototype.Fatalf = function(format, v) {
  39186. var _arg, _r, _r$1, format, l, v, $s, $r;
  39187. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _r = $f._r; _r$1 = $f._r$1; format = $f.format; l = $f.l; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  39188. l = this;
  39189. _r = fmt.Sprintf(format, v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  39190. _arg = _r;
  39191. _r$1 = l.Output(2, _arg); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  39192. _r$1;
  39193. os.Exit(1);
  39194. $s = -1; return;
  39195. /* */ } return; } if ($f === undefined) { $f = { $blk: Logger.ptr.prototype.Fatalf }; } $f._arg = _arg; $f._r = _r; $f._r$1 = _r$1; $f.format = format; $f.l = l; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  39196. };
  39197. Logger.prototype.Fatalf = function(format, v) { return this.$val.Fatalf(format, v); };
  39198. Logger.ptr.prototype.Fatalln = function(v) {
  39199. var _arg, _r, _r$1, l, v, $s, $r;
  39200. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _r = $f._r; _r$1 = $f._r$1; l = $f.l; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  39201. l = this;
  39202. _r = fmt.Sprintln(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  39203. _arg = _r;
  39204. _r$1 = l.Output(2, _arg); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  39205. _r$1;
  39206. os.Exit(1);
  39207. $s = -1; return;
  39208. /* */ } return; } if ($f === undefined) { $f = { $blk: Logger.ptr.prototype.Fatalln }; } $f._arg = _arg; $f._r = _r; $f._r$1 = _r$1; $f.l = l; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  39209. };
  39210. Logger.prototype.Fatalln = function(v) { return this.$val.Fatalln(v); };
  39211. Logger.ptr.prototype.Panic = function(v) {
  39212. var _r, _r$1, l, s, v, $s, $r;
  39213. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; l = $f.l; s = $f.s; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  39214. l = this;
  39215. _r = fmt.Sprint(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  39216. s = _r;
  39217. _r$1 = l.Output(2, s); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  39218. _r$1;
  39219. $panic(new $String(s));
  39220. $s = -1; return;
  39221. /* */ } return; } if ($f === undefined) { $f = { $blk: Logger.ptr.prototype.Panic }; } $f._r = _r; $f._r$1 = _r$1; $f.l = l; $f.s = s; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  39222. };
  39223. Logger.prototype.Panic = function(v) { return this.$val.Panic(v); };
  39224. Logger.ptr.prototype.Panicf = function(format, v) {
  39225. var _r, _r$1, format, l, s, v, $s, $r;
  39226. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; format = $f.format; l = $f.l; s = $f.s; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  39227. l = this;
  39228. _r = fmt.Sprintf(format, v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  39229. s = _r;
  39230. _r$1 = l.Output(2, s); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  39231. _r$1;
  39232. $panic(new $String(s));
  39233. $s = -1; return;
  39234. /* */ } return; } if ($f === undefined) { $f = { $blk: Logger.ptr.prototype.Panicf }; } $f._r = _r; $f._r$1 = _r$1; $f.format = format; $f.l = l; $f.s = s; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  39235. };
  39236. Logger.prototype.Panicf = function(format, v) { return this.$val.Panicf(format, v); };
  39237. Logger.ptr.prototype.Panicln = function(v) {
  39238. var _r, _r$1, l, s, v, $s, $r;
  39239. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; l = $f.l; s = $f.s; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  39240. l = this;
  39241. _r = fmt.Sprintln(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  39242. s = _r;
  39243. _r$1 = l.Output(2, s); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  39244. _r$1;
  39245. $panic(new $String(s));
  39246. $s = -1; return;
  39247. /* */ } return; } if ($f === undefined) { $f = { $blk: Logger.ptr.prototype.Panicln }; } $f._r = _r; $f._r$1 = _r$1; $f.l = l; $f.s = s; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  39248. };
  39249. Logger.prototype.Panicln = function(v) { return this.$val.Panicln(v); };
  39250. Logger.ptr.prototype.Flags = function() {
  39251. var l, $deferred;
  39252. /* */ var $err = null; try { $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  39253. l = this;
  39254. l.mu.Lock();
  39255. $deferred.push([$methodVal(l.mu, "Unlock"), []]);
  39256. return l.flag;
  39257. /* */ } catch(err) { $err = err; return 0; } finally { $callDeferred($deferred, $err); }
  39258. };
  39259. Logger.prototype.Flags = function() { return this.$val.Flags(); };
  39260. Logger.ptr.prototype.SetFlags = function(flag) {
  39261. var flag, l, $deferred;
  39262. /* */ var $err = null; try { $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  39263. l = this;
  39264. l.mu.Lock();
  39265. $deferred.push([$methodVal(l.mu, "Unlock"), []]);
  39266. l.flag = flag;
  39267. /* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); }
  39268. };
  39269. Logger.prototype.SetFlags = function(flag) { return this.$val.SetFlags(flag); };
  39270. Logger.ptr.prototype.Prefix = function() {
  39271. var l, $deferred;
  39272. /* */ var $err = null; try { $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  39273. l = this;
  39274. l.mu.Lock();
  39275. $deferred.push([$methodVal(l.mu, "Unlock"), []]);
  39276. return l.prefix;
  39277. /* */ } catch(err) { $err = err; return ""; } finally { $callDeferred($deferred, $err); }
  39278. };
  39279. Logger.prototype.Prefix = function() { return this.$val.Prefix(); };
  39280. Logger.ptr.prototype.SetPrefix = function(prefix) {
  39281. var l, prefix, $deferred;
  39282. /* */ var $err = null; try { $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  39283. l = this;
  39284. l.mu.Lock();
  39285. $deferred.push([$methodVal(l.mu, "Unlock"), []]);
  39286. l.prefix = prefix;
  39287. /* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); }
  39288. };
  39289. Logger.prototype.SetPrefix = function(prefix) { return this.$val.SetPrefix(prefix); };
  39290. Logger.ptr.prototype.Writer = function() {
  39291. var l, $deferred;
  39292. /* */ var $err = null; try { $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
  39293. l = this;
  39294. l.mu.Lock();
  39295. $deferred.push([$methodVal(l.mu, "Unlock"), []]);
  39296. return l.out;
  39297. /* */ } catch(err) { $err = err; return $ifaceNil; } finally { $callDeferred($deferred, $err); }
  39298. };
  39299. Logger.prototype.Writer = function() { return this.$val.Writer(); };
  39300. Println = function(v) {
  39301. var _arg, _r, _r$1, v, $s, $r;
  39302. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _r = $f._r; _r$1 = $f._r$1; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  39303. _r = fmt.Sprintln(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  39304. _arg = _r;
  39305. _r$1 = std.Output(2, _arg); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  39306. _r$1;
  39307. $s = -1; return;
  39308. /* */ } return; } if ($f === undefined) { $f = { $blk: Println }; } $f._arg = _arg; $f._r = _r; $f._r$1 = _r$1; $f.v = v; $f.$s = $s; $f.$r = $r; return $f;
  39309. };
  39310. $pkg.Println = Println;
  39311. ptrType$1.methods = [{prop: "SetOutput", name: "SetOutput", pkg: "", typ: $funcType([io.Writer], [], false)}, {prop: "formatHeader", name: "formatHeader", pkg: "log", typ: $funcType([ptrType, time.Time, $String, $Int], [], false)}, {prop: "Output", name: "Output", pkg: "", typ: $funcType([$Int, $String], [$error], false)}, {prop: "Printf", name: "Printf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Print", name: "Print", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Println", name: "Println", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Fatal", name: "Fatal", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Fatalf", name: "Fatalf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Fatalln", name: "Fatalln", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Panic", name: "Panic", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Panicf", name: "Panicf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Panicln", name: "Panicln", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Flags", name: "Flags", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "SetFlags", name: "SetFlags", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Prefix", name: "Prefix", pkg: "", typ: $funcType([], [$String], false)}, {prop: "SetPrefix", name: "SetPrefix", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Writer", name: "Writer", pkg: "", typ: $funcType([], [io.Writer], false)}];
  39312. Logger.init("log", [{prop: "mu", name: "mu", embedded: false, exported: false, typ: nosync.Mutex, tag: ""}, {prop: "prefix", name: "prefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "flag", name: "flag", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "out", name: "out", embedded: false, exported: false, typ: io.Writer, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType, tag: ""}]);
  39313. $init = function() {
  39314. $pkg.$init = function() {};
  39315. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  39316. $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  39317. $r = nosync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  39318. $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  39319. $r = os.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  39320. $r = runtime.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  39321. $r = time.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  39322. std = New(os.Stderr, "", 3);
  39323. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  39324. };
  39325. $pkg.$init = $init;
  39326. return $pkg;
  39327. })();
  39328. $packages["github.com/xiaokangwang/BrowserBridge/bridge/bridgejs"] = (function() {
  39329. var $pkg = {}, $init, fmt, js, bridge, log, url, sliceType, main;
  39330. fmt = $packages["fmt"];
  39331. js = $packages["github.com/gopherjs/gopherjs/js"];
  39332. bridge = $packages["github.com/xiaokangwang/BrowserBridge/bridge"];
  39333. log = $packages["log"];
  39334. url = $packages["net/url"];
  39335. sliceType = $sliceType($emptyInterface);
  39336. main = function() {
  39337. var _r, $s, $r;
  39338. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  39339. _r = fmt.Println(new sliceType([new $String("V3")])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
  39340. _r;
  39341. $go((function $b() {
  39342. var _r$1, _r$2, _r$3, _tuple, err, host, link, urlw, $s, $r;
  39343. /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; err = $f.err; host = $f.host; link = $f.link; urlw = $f.urlw; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  39344. link = $internalize($global.window.location.href, $String);
  39345. _r$1 = url.Parse(link); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
  39346. _tuple = _r$1;
  39347. urlw = _tuple[0];
  39348. err = _tuple[1];
  39349. /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
  39350. /* */ $s = 3; continue;
  39351. /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
  39352. $r = log.Println(new sliceType([err])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  39353. /* } */ case 3:
  39354. host = urlw.Host;
  39355. _r$2 = fmt.Sprintf("ws://%v/link", new sliceType([new $String(host)])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
  39356. $r = log.Println(new sliceType([new $String(_r$2)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  39357. _r$3 = fmt.Sprintf("ws://%v/link", new sliceType([new $String(host)])); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
  39358. $r = bridge.Bridge(new bridge.Settings.ptr(_r$3)); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  39359. $global.location.reload();
  39360. $s = -1; return;
  39361. /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f.err = err; $f.host = host; $f.link = link; $f.urlw = urlw; $f.$s = $s; $f.$r = $r; return $f;
  39362. }), []);
  39363. $s = -1; return;
  39364. /* */ } return; } if ($f === undefined) { $f = { $blk: main }; } $f._r = _r; $f.$s = $s; $f.$r = $r; return $f;
  39365. };
  39366. $init = function() {
  39367. $pkg.$init = function() {};
  39368. /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
  39369. $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  39370. $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  39371. $r = bridge.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  39372. $r = log.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  39373. $r = url.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  39374. /* */ if ($pkg === $mainPkg) { $s = 6; continue; }
  39375. /* */ $s = 7; continue;
  39376. /* if ($pkg === $mainPkg) { */ case 6:
  39377. $r = main(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
  39378. $mainFinished = true;
  39379. /* } */ case 7:
  39380. /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
  39381. };
  39382. $pkg.$init = $init;
  39383. return $pkg;
  39384. })();
  39385. $synthesizeMethods();
  39386. var $mainPkg = $packages["github.com/xiaokangwang/BrowserBridge/bridge/bridgejs"];
  39387. $packages["runtime"].$init();
  39388. $go($mainPkg.$init, []);
  39389. $flushConsole();
  39390. }).call(this);
  39391. //# sourceMappingURL=bridgejs.js.map