app-service.js 1.5 MB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667
  1. (this["webpackJsonp"] = this["webpackJsonp"] || []).push([["app-service"],[
  2. /* 0 */
  3. /*!**************************************************!*\
  4. !*** D:/Work2/Orienteering/TrackOffical/main.js ***!
  5. \**************************************************/
  6. /*! no static exports found */
  7. /***/ (function(module, exports, __webpack_require__) {
  8. "use strict";
  9. eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\n__webpack_require__(/*! uni-pages */ 6);\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 41));\nvar _App = _interopRequireDefault(__webpack_require__(/*! ./App */ 42));\nvar _ass_api_grpc_web_pb = __webpack_require__(/*! ./grpc/ass_api_grpc_web_pb.js */ 45);\nvar _SqliteHelper = _interopRequireDefault(__webpack_require__(/*! ./utils/SqliteHelper.js */ 47));\nvar _ouuNfc = _interopRequireDefault(__webpack_require__(/*! ./utils/ouu-nfc.js */ 54));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n_vue.default.config.productionTip = false;\n_App.default.mpType = 'app';\n\n// 建立grpc连接服务 \n\n// 测试版\nvar client = new _ass_api_grpc_web_pb.ApiAssClient(\"http://192.168.0.3:10000\", null, null);\n\n// 正式版\n// let client = new ApiAssClient(\"http://otapi.beswell.com:10000\", null, null)\n\n// 挂载为全局方法 \n_vue.default.prototype.$client = client;\n\n// import { usqlite } from '@/uni_modules/onemue-USQLite/js_sdk/usqlite.js'\n\n_vue.default.prototype.$dbHelper = _SqliteHelper.default;\n_vue.default.prototype.$nfc = _ouuNfc.default;\n_ouuNfc.default.listenNFCStatus();\nvar app = new _vue.default(_objectSpread({}, _App.default));\napp.$mount();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vbWFpbi5qcyJdLCJuYW1lcyI6WyJWdWUiLCJjb25maWciLCJwcm9kdWN0aW9uVGlwIiwiQXBwIiwibXBUeXBlIiwiY2xpZW50IiwiQXBpQXNzQ2xpZW50IiwicHJvdG90eXBlIiwiJGNsaWVudCIsIiRkYkhlbHBlciIsIlNxbGl0ZUhlbHBlciIsIiRuZmMiLCJuZmMiLCJsaXN0ZW5ORkNTdGF0dXMiLCJhcHAiLCIkbW91bnQiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQXNCQTtBQUNBO0FBQW9DO0FBQUE7QUFuQnBDQSxZQUFHLENBQUNDLE1BQU0sQ0FBQ0MsYUFBYSxHQUFHLEtBQUs7QUFFaENDLFlBQUcsQ0FBQ0MsTUFBTSxHQUFHLEtBQUs7O0FBRWxCOztBQUVBO0FBQ0EsSUFBSUMsTUFBTSxHQUFHLElBQUlDLGlDQUFZLENBQUMsMEJBQTBCLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQzs7QUFFckU7QUFDQTs7QUFFQTtBQUNBTixZQUFHLENBQUNPLFNBQVMsQ0FBQ0MsT0FBTyxHQUFHSCxNQUFNOztBQUk5Qjs7QUFJQUwsWUFBRyxDQUFDTyxTQUFTLENBQUNFLFNBQVMsR0FBR0MscUJBQVk7QUFDdENWLFlBQUcsQ0FBQ08sU0FBUyxDQUFDSSxJQUFJLEdBQUdDLGVBQUc7QUFDeEJBLGVBQUcsQ0FBQ0MsZUFBZSxFQUFFO0FBV3JCLElBQU1DLEdBQUcsR0FBRyxJQUFJZCxZQUFHLG1CQUNmRyxZQUFHLEVBQ0w7QUFDRlcsR0FBRyxDQUFDQyxNQUFNLEVBQUUiLCJmaWxlIjoiMC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAndW5pLXBhZ2VzJztcclxuaW1wb3J0IFZ1ZSBmcm9tICd2dWUnXHJcbmltcG9ydCBBcHAgZnJvbSAnLi9BcHAnXHJcbmltcG9ydCB7XHJcblx0QXBpQXNzQ2xpZW50XHJcbn0gZnJvbSBcIi4vZ3JwYy9hc3NfYXBpX2dycGNfd2ViX3BiLmpzXCJcclxuXHJcblZ1ZS5jb25maWcucHJvZHVjdGlvblRpcCA9IGZhbHNlXHJcblxyXG5BcHAubXBUeXBlID0gJ2FwcCdcclxuXHJcbi8vIOW7uueri2dycGPov57mjqXmnI3liqEgXHJcblxyXG4vLyDmtYvor5XniYhcclxubGV0IGNsaWVudCA9IG5ldyBBcGlBc3NDbGllbnQoXCJodHRwOi8vMTkyLjE2OC4wLjM6MTAwMDBcIiwgbnVsbCwgbnVsbClcclxuXHJcbi8vIOato+W8j+eJiFxyXG4vLyBsZXQgY2xpZW50ID0gbmV3IEFwaUFzc0NsaWVudChcImh0dHA6Ly9vdGFwaS5iZXN3ZWxsLmNvbToxMDAwMFwiLCBudWxsLCBudWxsKVxyXG5cclxuLy8g5oyC6L295Li65YWo5bGA5pa55rOVIFxyXG5WdWUucHJvdG90eXBlLiRjbGllbnQgPSBjbGllbnRcclxuXHJcblxyXG5cclxuLy8gaW1wb3J0IHsgdXNxbGl0ZSB9IGZyb20gJ0AvdW5pX21vZHVsZXMvb25lbXVlLVVTUUxpdGUvanNfc2RrL3VzcWxpdGUuanMnXHJcbmltcG9ydCBTcWxpdGVIZWxwZXIgZnJvbSAnLi91dGlscy9TcWxpdGVIZWxwZXIuanMnXHJcbmltcG9ydCBuZmMgZnJvbSAnLi91dGlscy9vdXUtbmZjLmpzJ1xyXG5cclxuVnVlLnByb3RvdHlwZS4kZGJIZWxwZXIgPSBTcWxpdGVIZWxwZXJcclxuVnVlLnByb3RvdHlwZS4kbmZjID0gbmZjXHJcbm5mYy5saXN0ZW5ORkNTdGF0dXMoKTtcclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbmNvbnN0IGFwcCA9IG5ldyBWdWUoe1xyXG5cdC4uLkFwcFxyXG59KVxyXG5hcHAuJG1vdW50KClcclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///0\n");
  10. /***/ }),
  11. /* 1 */
  12. /*!**********************************************************************!*\
  13. !*** ./node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
  14. \**********************************************************************/
  15. /*! no static exports found */
  16. /***/ (function(module, exports) {
  17. function _interopRequireDefault(obj) {
  18. return obj && obj.__esModule ? obj : {
  19. "default": obj
  20. };
  21. }
  22. module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
  23. /***/ }),
  24. /* 2 */
  25. /*!***************************************************************!*\
  26. !*** ./node_modules/@babel/runtime/helpers/defineProperty.js ***!
  27. \***************************************************************/
  28. /*! no static exports found */
  29. /***/ (function(module, exports, __webpack_require__) {
  30. var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ 3);
  31. function _defineProperty(obj, key, value) {
  32. key = toPropertyKey(key);
  33. if (key in obj) {
  34. Object.defineProperty(obj, key, {
  35. value: value,
  36. enumerable: true,
  37. configurable: true,
  38. writable: true
  39. });
  40. } else {
  41. obj[key] = value;
  42. }
  43. return obj;
  44. }
  45. module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
  46. /***/ }),
  47. /* 3 */
  48. /*!**************************************************************!*\
  49. !*** ./node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
  50. \**************************************************************/
  51. /*! no static exports found */
  52. /***/ (function(module, exports, __webpack_require__) {
  53. var _typeof = __webpack_require__(/*! ./typeof.js */ 4)["default"];
  54. var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ 5);
  55. function _toPropertyKey(arg) {
  56. var key = toPrimitive(arg, "string");
  57. return _typeof(key) === "symbol" ? key : String(key);
  58. }
  59. module.exports = _toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
  60. /***/ }),
  61. /* 4 */
  62. /*!*******************************************************!*\
  63. !*** ./node_modules/@babel/runtime/helpers/typeof.js ***!
  64. \*******************************************************/
  65. /*! no static exports found */
  66. /***/ (function(module, exports) {
  67. function _typeof(obj) {
  68. "@babel/helpers - typeof";
  69. return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
  70. return typeof obj;
  71. } : function (obj) {
  72. return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
  73. }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj);
  74. }
  75. module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
  76. /***/ }),
  77. /* 5 */
  78. /*!************************************************************!*\
  79. !*** ./node_modules/@babel/runtime/helpers/toPrimitive.js ***!
  80. \************************************************************/
  81. /*! no static exports found */
  82. /***/ (function(module, exports, __webpack_require__) {
  83. var _typeof = __webpack_require__(/*! ./typeof.js */ 4)["default"];
  84. function _toPrimitive(input, hint) {
  85. if (_typeof(input) !== "object" || input === null) return input;
  86. var prim = input[Symbol.toPrimitive];
  87. if (prim !== undefined) {
  88. var res = prim.call(input, hint || "default");
  89. if (_typeof(res) !== "object") return res;
  90. throw new TypeError("@@toPrimitive must return a primitive value.");
  91. }
  92. return (hint === "string" ? String : Number)(input);
  93. }
  94. module.exports = _toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
  95. /***/ }),
  96. /* 6 */
  97. /*!*****************************************************!*\
  98. !*** D:/Work2/Orienteering/TrackOffical/pages.json ***!
  99. \*****************************************************/
  100. /*! no static exports found */
  101. /***/ (function(module, exports, __webpack_require__) {
  102. if (typeof Promise !== 'undefined' && !Promise.prototype.finally) {
  103. Promise.prototype.finally = function (callback) {
  104. var promise = this.constructor;
  105. return this.then(function (value) {
  106. return promise.resolve(callback()).then(function () {
  107. return value;
  108. });
  109. }, function (reason) {
  110. return promise.resolve(callback()).then(function () {
  111. throw reason;
  112. });
  113. });
  114. };
  115. }
  116. if (typeof uni !== 'undefined' && uni && uni.requireGlobal) {
  117. var global = uni.requireGlobal();
  118. ArrayBuffer = global.ArrayBuffer;
  119. Int8Array = global.Int8Array;
  120. Uint8Array = global.Uint8Array;
  121. Uint8ClampedArray = global.Uint8ClampedArray;
  122. Int16Array = global.Int16Array;
  123. Uint16Array = global.Uint16Array;
  124. Int32Array = global.Int32Array;
  125. Uint32Array = global.Uint32Array;
  126. Float32Array = global.Float32Array;
  127. Float64Array = global.Float64Array;
  128. BigInt64Array = global.BigInt64Array;
  129. BigUint64Array = global.BigUint64Array;
  130. }
  131. if (uni.restoreGlobal) {
  132. uni.restoreGlobal(weex, plus, setTimeout, clearTimeout, setInterval, clearInterval);
  133. }
  134. __definePage('pages/AO/mapShow', function () {
  135. return Vue.extend(__webpack_require__(/*! pages/AO/mapShow.vue?mpType=page */ 7).default);
  136. });
  137. __definePage('pages/nfc/nfc', function () {
  138. return Vue.extend(__webpack_require__(/*! pages/nfc/nfc.vue?mpType=page */ 11).default);
  139. });
  140. __definePage('pages/verify/verify', function () {
  141. return Vue.extend(__webpack_require__(/*! pages/verify/verify.vue?mpType=page */ 28).default);
  142. });
  143. /***/ }),
  144. /* 7 */
  145. /*!***************************************************************************!*\
  146. !*** D:/Work2/Orienteering/TrackOffical/pages/AO/mapShow.vue?mpType=page ***!
  147. \***************************************************************************/
  148. /*! exports provided: default */
  149. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  150. "use strict";
  151. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _mapShow_vue_vue_type_template_id_7c4266a1_scoped_true_filter_modules_eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mapShow.vue?vue&type=template&id=7c4266a1&scoped=true&filter-modules=eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19&mpType=page */ 8);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);\n\nvar renderjs\nvar script = {}\n\n\n/* normalize component */\n\nvar component = Object(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n script,\n _mapShow_vue_vue_type_template_id_7c4266a1_scoped_true_filter_modules_eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _mapShow_vue_vue_type_template_id_7c4266a1_scoped_true_filter_modules_eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"7c4266a1\",\n null,\n false,\n _mapShow_vue_vue_type_template_id_7c4266a1_scoped_true_filter_modules_eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/AO/mapShow.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUEyUztBQUMzUztBQUNBOzs7QUFHQTtBQUNvTDtBQUNwTCxnQkFBZ0IsMkxBQVU7QUFDMUI7QUFDQSxFQUFFLHlRQUFNO0FBQ1IsRUFBRSxrUkFBZTtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSw2UUFBVTtBQUNaO0FBQ0E7O0FBRUE7QUFDZSxnRiIsImZpbGUiOiI3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi9tYXBTaG93LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03YzQyNjZhMSZzY29wZWQ9dHJ1ZSZmaWx0ZXItbW9kdWxlcz1leUpzWldGbWJHVjBJanA3SW5SNWNHVWlPaUp5Wlc1a1pYSnFjeUlzSW1OdmJuUmxiblFpT2lJaUxDSnpkR0Z5ZENJNk16a3lMQ0poZEhSeWN5STZleUp0YjJSMWJHVWlPaUpzWldGbWJHVjBJaXdpYkdGdVp5STZJbXB6SW4wc0ltVnVaQ0k2TkRNd09YMTkmbXBUeXBlPXBhZ2VcIlxudmFyIHJlbmRlcmpzXG52YXIgc2NyaXB0ID0ge31cblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjdjNDI2NmExXCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInBhZ2VzL0FPL21hcFNob3cudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///7\n");
  152. /***/ }),
  153. /* 8 */
  154. /*!*************************************************************************************************************************************************************************************************************************************************************************************!*\
  155. !*** D:/Work2/Orienteering/TrackOffical/pages/AO/mapShow.vue?vue&type=template&id=7c4266a1&scoped=true&filter-modules=eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19&mpType=page ***!
  156. \*************************************************************************************************************************************************************************************************************************************************************************************/
  157. /*! exports provided: render, staticRenderFns, recyclableRender, components */
  158. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  159. "use strict";
  160. __webpack_require__.r(__webpack_exports__);
  161. /* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_mapShow_vue_vue_type_template_id_7c4266a1_scoped_true_filter_modules_eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./mapShow.vue?vue&type=template&id=7c4266a1&scoped=true&filter-modules=eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19&mpType=page */ 9);
  162. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_mapShow_vue_vue_type_template_id_7c4266a1_scoped_true_filter_modules_eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; });
  163. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_mapShow_vue_vue_type_template_id_7c4266a1_scoped_true_filter_modules_eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
  164. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_mapShow_vue_vue_type_template_id_7c4266a1_scoped_true_filter_modules_eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
  165. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_mapShow_vue_vue_type_template_id_7c4266a1_scoped_true_filter_modules_eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; });
  166. /***/ }),
  167. /* 9 */
  168. /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  169. !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/pages/AO/mapShow.vue?vue&type=template&id=7c4266a1&scoped=true&filter-modules=eyJsZWFmbGV0Ijp7InR5cGUiOiJyZW5kZXJqcyIsImNvbnRlbnQiOiIiLCJzdGFydCI6MzkyLCJhdHRycyI6eyJtb2R1bGUiOiJsZWFmbGV0IiwibGFuZyI6ImpzIn0sImVuZCI6NDMwOX19&mpType=page ***!
  170. \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  171. /*! exports provided: render, staticRenderFns, recyclableRender, components */
  172. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  173. "use strict";
  174. __webpack_require__.r(__webpack_exports__);
  175. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
  176. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
  177. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
  178. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
  179. var components
  180. try {
  181. components = {
  182. uniPopup:
  183. __webpack_require__(/*! @/uni_modules/uni-popup/components/uni-popup/uni-popup.vue */ 55)
  184. .default,
  185. }
  186. } catch (e) {
  187. if (
  188. e.message.indexOf("Cannot find module") !== -1 &&
  189. e.message.indexOf(".vue") !== -1
  190. ) {
  191. console.error(e.message)
  192. console.error("1. 排查组件名称拼写是否正确")
  193. console.error(
  194. "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"
  195. )
  196. console.error(
  197. "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件"
  198. )
  199. } else {
  200. throw e
  201. }
  202. }
  203. var render = function () {
  204. var _vm = this
  205. var _h = _vm.$createElement
  206. var _c = _vm._self._c || _h
  207. return _c("view", [
  208. _c("view", {
  209. staticClass: _vm._$s(1, "sc", "map"),
  210. attrs: { id: "map", _i: 1 },
  211. }),
  212. _c(
  213. "view",
  214. [
  215. _c(
  216. "uni-popup",
  217. {
  218. ref: "popup",
  219. attrs: { "background-color": "#fff", _i: 3 },
  220. on: { change: _vm.change },
  221. },
  222. [
  223. _c(
  224. "view",
  225. {
  226. staticClass: _vm._$s(4, "sc", "popup-content"),
  227. class: _vm._$s(4, "c", {
  228. "popup-height": _vm.type === "left" || _vm.type === "right",
  229. }),
  230. attrs: { _i: 4 },
  231. },
  232. [
  233. _c("text", {
  234. staticClass: _vm._$s(5, "sc", "text"),
  235. attrs: { _i: 5 },
  236. }),
  237. ]
  238. ),
  239. ]
  240. ),
  241. ],
  242. 1
  243. ),
  244. ])
  245. }
  246. var recyclableRender = false
  247. var staticRenderFns = []
  248. render._withStripped = true
  249. /***/ }),
  250. /* 10 */
  251. /*!**********************************************************************************************************!*\
  252. !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js ***!
  253. \**********************************************************************************************************/
  254. /*! exports provided: default */
  255. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  256. "use strict";
  257. __webpack_require__.r(__webpack_exports__);
  258. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; });
  259. /* globals __VUE_SSR_CONTEXT__ */
  260. // IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
  261. // This module is a runtime utility for cleaner component module output and will
  262. // be included in the final webpack user bundle.
  263. function normalizeComponent (
  264. scriptExports,
  265. render,
  266. staticRenderFns,
  267. functionalTemplate,
  268. injectStyles,
  269. scopeId,
  270. moduleIdentifier, /* server only */
  271. shadowMode, /* vue-cli only */
  272. components, // fixed by xxxxxx auto components
  273. renderjs // fixed by xxxxxx renderjs
  274. ) {
  275. // Vue.extend constructor export interop
  276. var options = typeof scriptExports === 'function'
  277. ? scriptExports.options
  278. : scriptExports
  279. // fixed by xxxxxx auto components
  280. if (components) {
  281. if (!options.components) {
  282. options.components = {}
  283. }
  284. var hasOwn = Object.prototype.hasOwnProperty
  285. for (var name in components) {
  286. if (hasOwn.call(components, name) && !hasOwn.call(options.components, name)) {
  287. options.components[name] = components[name]
  288. }
  289. }
  290. }
  291. // fixed by xxxxxx renderjs
  292. if (renderjs) {
  293. if(typeof renderjs.beforeCreate === 'function'){
  294. renderjs.beforeCreate = [renderjs.beforeCreate]
  295. }
  296. (renderjs.beforeCreate || (renderjs.beforeCreate = [])).unshift(function() {
  297. this[renderjs.__module] = this
  298. });
  299. (options.mixins || (options.mixins = [])).push(renderjs)
  300. }
  301. // render functions
  302. if (render) {
  303. options.render = render
  304. options.staticRenderFns = staticRenderFns
  305. options._compiled = true
  306. }
  307. // functional template
  308. if (functionalTemplate) {
  309. options.functional = true
  310. }
  311. // scopedId
  312. if (scopeId) {
  313. options._scopeId = 'data-v-' + scopeId
  314. }
  315. var hook
  316. if (moduleIdentifier) { // server build
  317. hook = function (context) {
  318. // 2.3 injection
  319. context =
  320. context || // cached call
  321. (this.$vnode && this.$vnode.ssrContext) || // stateful
  322. (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
  323. // 2.2 with runInNewContext: true
  324. if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
  325. context = __VUE_SSR_CONTEXT__
  326. }
  327. // inject component styles
  328. if (injectStyles) {
  329. injectStyles.call(this, context)
  330. }
  331. // register component module identifier for async chunk inferrence
  332. if (context && context._registeredComponents) {
  333. context._registeredComponents.add(moduleIdentifier)
  334. }
  335. }
  336. // used by ssr in case component is cached and beforeCreate
  337. // never gets called
  338. options._ssrRegister = hook
  339. } else if (injectStyles) {
  340. hook = shadowMode
  341. ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }
  342. : injectStyles
  343. }
  344. if (hook) {
  345. if (options.functional) {
  346. // for template-only hot-reload because in that case the render fn doesn't
  347. // go through the normalizer
  348. options._injectStyles = hook
  349. // register for functioal component in vue file
  350. var originalRender = options.render
  351. options.render = function renderWithStyleInjection (h, context) {
  352. hook.call(context)
  353. return originalRender(h, context)
  354. }
  355. } else {
  356. // inject component registration as beforeCreate hook
  357. var existing = options.beforeCreate
  358. options.beforeCreate = existing
  359. ? [].concat(existing, hook)
  360. : [hook]
  361. }
  362. }
  363. return {
  364. exports: scriptExports,
  365. options: options
  366. }
  367. }
  368. /***/ }),
  369. /* 11 */
  370. /*!************************************************************************!*\
  371. !*** D:/Work2/Orienteering/TrackOffical/pages/nfc/nfc.vue?mpType=page ***!
  372. \************************************************************************/
  373. /*! no static exports found */
  374. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  375. "use strict";
  376. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nfc_vue_vue_type_template_id_6158afae_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./nfc.vue?vue&type=template&id=6158afae&scoped=true&mpType=page */ 12);\n/* harmony import */ var _nfc_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./nfc.vue?vue&type=script&lang=js&mpType=page */ 25);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _nfc_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _nfc_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _nfc_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _nfc_vue_vue_type_template_id_6158afae_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _nfc_vue_vue_type_template_id_6158afae_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"6158afae\",\n null,\n false,\n _nfc_vue_vue_type_template_id_6158afae_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/nfc/nfc.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBdUk7QUFDdkk7QUFDa0U7QUFDTDs7O0FBRzdEO0FBQ29MO0FBQ3BMLGdCQUFnQiwyTEFBVTtBQUMxQixFQUFFLG9GQUFNO0FBQ1IsRUFBRSxxR0FBTTtBQUNSLEVBQUUsOEdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUseUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL25mYy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NjE1OGFmYWUmc2NvcGVkPXRydWUmbXBUeXBlPXBhZ2VcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL25mYy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIlxuZXhwb3J0ICogZnJvbSBcIi4vbmZjLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCI2MTU4YWZhZVwiLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJwYWdlcy9uZmMvbmZjLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///11\n");
  377. /***/ }),
  378. /* 12 */
  379. /*!******************************************************************************************************************!*\
  380. !*** D:/Work2/Orienteering/TrackOffical/pages/nfc/nfc.vue?vue&type=template&id=6158afae&scoped=true&mpType=page ***!
  381. \******************************************************************************************************************/
  382. /*! exports provided: render, staticRenderFns, recyclableRender, components */
  383. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  384. "use strict";
  385. __webpack_require__.r(__webpack_exports__);
  386. /* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_nfc_vue_vue_type_template_id_6158afae_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./nfc.vue?vue&type=template&id=6158afae&scoped=true&mpType=page */ 13);
  387. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_nfc_vue_vue_type_template_id_6158afae_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; });
  388. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_nfc_vue_vue_type_template_id_6158afae_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
  389. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_nfc_vue_vue_type_template_id_6158afae_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
  390. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_nfc_vue_vue_type_template_id_6158afae_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; });
  391. /***/ }),
  392. /* 13 */
  393. /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  394. !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/pages/nfc/nfc.vue?vue&type=template&id=6158afae&scoped=true&mpType=page ***!
  395. \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  396. /*! exports provided: render, staticRenderFns, recyclableRender, components */
  397. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  398. "use strict";
  399. __webpack_require__.r(__webpack_exports__);
  400. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
  401. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
  402. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
  403. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
  404. var components
  405. try {
  406. components = {
  407. uniEasyinput:
  408. __webpack_require__(/*! @/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue */ 14)
  409. .default,
  410. }
  411. } catch (e) {
  412. if (
  413. e.message.indexOf("Cannot find module") !== -1 &&
  414. e.message.indexOf(".vue") !== -1
  415. ) {
  416. console.error(e.message)
  417. console.error("1. 排查组件名称拼写是否正确")
  418. console.error(
  419. "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"
  420. )
  421. console.error(
  422. "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件"
  423. )
  424. } else {
  425. throw e
  426. }
  427. }
  428. var render = function () {
  429. var _vm = this
  430. var _h = _vm.$createElement
  431. var _c = _vm._self._c || _h
  432. return _c(
  433. "view",
  434. { staticClass: _vm._$s(0, "sc", "container"), attrs: { _i: 0 } },
  435. [
  436. _c("uni-easyinput", {
  437. attrs: { placeholder: "请输入要写入NFC的数据", _i: 1 },
  438. on: { input: _vm.input },
  439. model: {
  440. value: _vm._$s(1, "v-model", _vm.nfcWriteData),
  441. callback: function ($$v) {
  442. _vm.nfcWriteData = $$v
  443. },
  444. expression: "nfcWriteData",
  445. },
  446. }),
  447. _c(
  448. "view",
  449. { staticClass: _vm._$s(2, "sc", "btn-box"), attrs: { _i: 2 } },
  450. [
  451. _c("button", {
  452. staticClass: _vm._$s(3, "sc", "btn"),
  453. attrs: { _i: 3 },
  454. on: {
  455. click: function ($event) {
  456. return _vm.readData()
  457. },
  458. },
  459. }),
  460. _c("button", {
  461. staticClass: _vm._$s(4, "sc", "btn"),
  462. attrs: { _i: 4 },
  463. on: {
  464. click: function ($event) {
  465. return _vm.writeData()
  466. },
  467. },
  468. }),
  469. ]
  470. ),
  471. _c(
  472. "view",
  473. { staticClass: _vm._$s(5, "sc", "btn-box"), attrs: { _i: 5 } },
  474. [
  475. _c("button", {
  476. staticClass: _vm._$s(6, "sc", "btn"),
  477. attrs: { _i: 6 },
  478. on: {
  479. click: function ($event) {
  480. return _vm.getNfcState()
  481. },
  482. },
  483. }),
  484. _c("button", {
  485. staticClass: _vm._$s(7, "sc", "btn"),
  486. attrs: { _i: 7 },
  487. on: {
  488. click: function ($event) {
  489. return _vm.writeAndLock()
  490. },
  491. },
  492. }),
  493. ]
  494. ),
  495. _c(
  496. "view",
  497. { staticClass: _vm._$s(8, "sc", "btn-box"), attrs: { _i: 8 } },
  498. [
  499. _c("button", {
  500. staticClass: _vm._$s(9, "sc", "btn"),
  501. attrs: { _i: 9 },
  502. on: {
  503. click: function ($event) {
  504. return _vm.setPassword()
  505. },
  506. },
  507. }),
  508. _c("button", {
  509. staticClass: _vm._$s(10, "sc", "btn"),
  510. attrs: { _i: 10 },
  511. on: {
  512. click: function ($event) {
  513. return _vm.delPassword()
  514. },
  515. },
  516. }),
  517. ]
  518. ),
  519. ],
  520. 1
  521. )
  522. }
  523. var recyclableRender = false
  524. var staticRenderFns = []
  525. render._withStripped = true
  526. /***/ }),
  527. /* 14 */
  528. /*!***************************************************************************************************************!*\
  529. !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue ***!
  530. \***************************************************************************************************************/
  531. /*! no static exports found */
  532. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  533. "use strict";
  534. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-easyinput.vue?vue&type=template&id=abe12412& */ 15);\n/* harmony import */ var _uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-easyinput.vue?vue&type=script&lang=js& */ 23);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBMEg7QUFDMUg7QUFDaUU7QUFDTDs7O0FBRzVEO0FBQzBMO0FBQzFMLGdCQUFnQiwyTEFBVTtBQUMxQixFQUFFLG1GQUFNO0FBQ1IsRUFBRSx3RkFBTTtBQUNSLEVBQUUsaUdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsNEZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS1lYXN5aW5wdXQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWFiZTEyNDEyJlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vdW5pLWVhc3lpbnB1dC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3VuaS1lYXN5aW5wdXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvdW5pLWVhc3lpbnB1dC9jb21wb25lbnRzL3VuaS1lYXN5aW5wdXQvdW5pLWVhc3lpbnB1dC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///14\n");
  535. /***/ }),
  536. /* 15 */
  537. /*!**********************************************************************************************************************************************!*\
  538. !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue?vue&type=template&id=abe12412& ***!
  539. \**********************************************************************************************************************************************/
  540. /*! exports provided: render, staticRenderFns, recyclableRender, components */
  541. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  542. "use strict";
  543. __webpack_require__.r(__webpack_exports__);
  544. /* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-easyinput.vue?vue&type=template&id=abe12412& */ 16);
  545. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__["render"]; });
  546. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
  547. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
  548. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__["components"]; });
  549. /***/ }),
  550. /* 16 */
  551. /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  552. !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue?vue&type=template&id=abe12412& ***!
  553. \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  554. /*! exports provided: render, staticRenderFns, recyclableRender, components */
  555. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  556. "use strict";
  557. __webpack_require__.r(__webpack_exports__);
  558. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
  559. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
  560. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
  561. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
  562. var components
  563. try {
  564. components = {
  565. uniIcons:
  566. __webpack_require__(/*! @/uni_modules/uni-icons/components/uni-icons/uni-icons.vue */ 17)
  567. .default,
  568. }
  569. } catch (e) {
  570. if (
  571. e.message.indexOf("Cannot find module") !== -1 &&
  572. e.message.indexOf(".vue") !== -1
  573. ) {
  574. console.error(e.message)
  575. console.error("1. 排查组件名称拼写是否正确")
  576. console.error(
  577. "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"
  578. )
  579. console.error(
  580. "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件"
  581. )
  582. } else {
  583. throw e
  584. }
  585. }
  586. var render = function () {
  587. var _vm = this
  588. var _h = _vm.$createElement
  589. var _c = _vm._self._c || _h
  590. return _c(
  591. "view",
  592. {
  593. staticClass: _vm._$s(0, "sc", "uni-easyinput"),
  594. class: _vm._$s(0, "c", { "uni-easyinput-error": _vm.msg }),
  595. style: _vm._$s(0, "s", _vm.boxStyle),
  596. attrs: { _i: 0 },
  597. },
  598. [
  599. _c(
  600. "view",
  601. {
  602. staticClass: _vm._$s(1, "sc", "uni-easyinput__content"),
  603. class: _vm._$s(1, "c", _vm.inputContentClass),
  604. style: _vm._$s(1, "s", _vm.inputContentStyle),
  605. attrs: { _i: 1 },
  606. },
  607. [
  608. _vm._t(
  609. "prefixIcon",
  610. [
  611. _vm._$s(3, "i", _vm.prefixIcon)
  612. ? _c("uni-icons", {
  613. staticClass: _vm._$s(3, "sc", "content-clear-icon"),
  614. attrs: {
  615. type: _vm.prefixIcon,
  616. color: "#c0c4cc",
  617. size: "22",
  618. _i: 3,
  619. },
  620. on: {
  621. click: function ($event) {
  622. return _vm.onClickIcon("prefix")
  623. },
  624. },
  625. })
  626. : _vm._e(),
  627. ],
  628. { _i: 2 }
  629. ),
  630. _vm._$s(4, "i", _vm.type === "textarea")
  631. ? _c("textarea", {
  632. staticClass: _vm._$s(
  633. 4,
  634. "sc",
  635. "uni-easyinput__content-textarea"
  636. ),
  637. class: _vm._$s(4, "c", { "input-padding": _vm.inputBorder }),
  638. attrs: {
  639. name: _vm._$s(4, "a-name", _vm.name),
  640. value: _vm._$s(4, "a-value", _vm.val),
  641. placeholder: _vm._$s(4, "a-placeholder", _vm.placeholder),
  642. placeholderStyle: _vm._$s(
  643. 4,
  644. "a-placeholderStyle",
  645. _vm.placeholderStyle
  646. ),
  647. disabled: _vm._$s(4, "a-disabled", _vm.disabled),
  648. maxlength: _vm._$s(4, "a-maxlength", _vm.inputMaxlength),
  649. focus: _vm._$s(4, "a-focus", _vm.focused),
  650. autoHeight: _vm._$s(4, "a-autoHeight", _vm.autoHeight),
  651. _i: 4,
  652. },
  653. on: {
  654. input: _vm.onInput,
  655. blur: _vm._Blur,
  656. focus: _vm._Focus,
  657. confirm: _vm.onConfirm,
  658. },
  659. })
  660. : _c("input", {
  661. staticClass: _vm._$s(5, "sc", "uni-easyinput__content-input"),
  662. style: _vm._$s(5, "s", _vm.inputStyle),
  663. attrs: {
  664. type: _vm._$s(
  665. 5,
  666. "a-type",
  667. _vm.type === "password" ? "text" : _vm.type
  668. ),
  669. name: _vm._$s(5, "a-name", _vm.name),
  670. value: _vm._$s(5, "a-value", _vm.val),
  671. password: _vm._$s(
  672. 5,
  673. "a-password",
  674. !_vm.showPassword && _vm.type === "password"
  675. ),
  676. placeholder: _vm._$s(5, "a-placeholder", _vm.placeholder),
  677. placeholderStyle: _vm._$s(
  678. 5,
  679. "a-placeholderStyle",
  680. _vm.placeholderStyle
  681. ),
  682. disabled: _vm._$s(5, "a-disabled", _vm.disabled),
  683. maxlength: _vm._$s(5, "a-maxlength", _vm.inputMaxlength),
  684. focus: _vm._$s(5, "a-focus", _vm.focused),
  685. confirmType: _vm._$s(5, "a-confirmType", _vm.confirmType),
  686. _i: 5,
  687. },
  688. on: {
  689. focus: _vm._Focus,
  690. blur: _vm._Blur,
  691. input: _vm.onInput,
  692. confirm: _vm.onConfirm,
  693. },
  694. }),
  695. _vm._$s(6, "i", _vm.type === "password" && _vm.passwordIcon)
  696. ? [
  697. _vm._$s(7, "i", _vm.isVal)
  698. ? _c("uni-icons", {
  699. staticClass: _vm._$s(7, "sc", "content-clear-icon"),
  700. class: _vm._$s(7, "c", {
  701. "is-textarea-icon": _vm.type === "textarea",
  702. }),
  703. attrs: {
  704. type: _vm.showPassword
  705. ? "eye-slash-filled"
  706. : "eye-filled",
  707. size: 22,
  708. color: _vm.focusShow ? _vm.primaryColor : "#c0c4cc",
  709. _i: 7,
  710. },
  711. on: { click: _vm.onEyes },
  712. })
  713. : _vm._e(),
  714. ]
  715. : _vm._$s(8, "e", _vm.suffixIcon || _vm.$slots.suffixIcon)
  716. ? [
  717. _vm._t(
  718. "suffixIcon",
  719. [
  720. _vm._$s(10, "i", _vm.suffixIcon)
  721. ? _c("uni-icons", {
  722. staticClass: _vm._$s(10, "sc", "content-clear-icon"),
  723. attrs: {
  724. type: _vm.suffixIcon,
  725. color: "#c0c4cc",
  726. size: "22",
  727. _i: 10,
  728. },
  729. on: {
  730. click: function ($event) {
  731. return _vm.onClickIcon("suffix")
  732. },
  733. },
  734. })
  735. : _vm._e(),
  736. ],
  737. { _i: 9 }
  738. ),
  739. ]
  740. : [
  741. _vm._$s(
  742. 12,
  743. "i",
  744. _vm.clearable &&
  745. _vm.isVal &&
  746. !_vm.disabled &&
  747. _vm.type !== "textarea"
  748. )
  749. ? _c("uni-icons", {
  750. staticClass: _vm._$s(12, "sc", "content-clear-icon"),
  751. class: _vm._$s(12, "c", {
  752. "is-textarea-icon": _vm.type === "textarea",
  753. }),
  754. attrs: {
  755. type: "clear",
  756. size: _vm.clearSize,
  757. color: _vm.msg
  758. ? "#dd524d"
  759. : _vm.focusShow
  760. ? _vm.primaryColor
  761. : "#c0c4cc",
  762. _i: 12,
  763. },
  764. on: { click: _vm.onClear },
  765. })
  766. : _vm._e(),
  767. ],
  768. _vm._t("right", null, { _i: 13 }),
  769. ],
  770. 2
  771. ),
  772. ]
  773. )
  774. }
  775. var recyclableRender = false
  776. var staticRenderFns = []
  777. render._withStripped = true
  778. /***/ }),
  779. /* 17 */
  780. /*!***************************************************************************************************!*\
  781. !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-icons/components/uni-icons/uni-icons.vue ***!
  782. \***************************************************************************************************/
  783. /*! no static exports found */
  784. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  785. "use strict";
  786. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-icons.vue?vue&type=template&id=a2e81f6e& */ 18);\n/* harmony import */ var _uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-icons.vue?vue&type=script&lang=js& */ 20);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-icons/components/uni-icons/uni-icons.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBc0g7QUFDdEg7QUFDNkQ7QUFDTDs7O0FBR3hEO0FBQzBMO0FBQzFMLGdCQUFnQiwyTEFBVTtBQUMxQixFQUFFLCtFQUFNO0FBQ1IsRUFBRSxvRkFBTTtBQUNSLEVBQUUsNkZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsd0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS1pY29ucy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9YTJlODFmNmUmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi91bmktaWNvbnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi91bmktaWNvbnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvdW5pLWljb25zL2NvbXBvbmVudHMvdW5pLWljb25zL3VuaS1pY29ucy52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///17\n");
  787. /***/ }),
  788. /* 18 */
  789. /*!**********************************************************************************************************************************!*\
  790. !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-icons/components/uni-icons/uni-icons.vue?vue&type=template&id=a2e81f6e& ***!
  791. \**********************************************************************************************************************************/
  792. /*! exports provided: render, staticRenderFns, recyclableRender, components */
  793. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  794. "use strict";
  795. __webpack_require__.r(__webpack_exports__);
  796. /* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-icons.vue?vue&type=template&id=a2e81f6e& */ 19);
  797. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__["render"]; });
  798. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
  799. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
  800. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__["components"]; });
  801. /***/ }),
  802. /* 19 */
  803. /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  804. !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/uni_modules/uni-icons/components/uni-icons/uni-icons.vue?vue&type=template&id=a2e81f6e& ***!
  805. \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  806. /*! exports provided: render, staticRenderFns, recyclableRender, components */
  807. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  808. "use strict";
  809. __webpack_require__.r(__webpack_exports__);
  810. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
  811. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
  812. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
  813. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
  814. var components
  815. var render = function () {
  816. var _vm = this
  817. var _h = _vm.$createElement
  818. var _c = _vm._self._c || _h
  819. return _c("text", {
  820. staticClass: _vm._$s(0, "sc", "uni-icons"),
  821. class: _vm._$s(0, "c", [
  822. "uniui-" + _vm.type,
  823. _vm.customPrefix,
  824. _vm.customPrefix ? _vm.type : "",
  825. ]),
  826. style: _vm._$s(0, "s", { color: _vm.color, "font-size": _vm.iconSize }),
  827. attrs: { _i: 0 },
  828. on: { click: _vm._onClick },
  829. })
  830. }
  831. var recyclableRender = false
  832. var staticRenderFns = []
  833. render._withStripped = true
  834. /***/ }),
  835. /* 20 */
  836. /*!****************************************************************************************************************************!*\
  837. !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-icons/components/uni-icons/uni-icons.vue?vue&type=script&lang=js& ***!
  838. \****************************************************************************************************************************/
  839. /*! no static exports found */
  840. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  841. "use strict";
  842. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-icons.vue?vue&type=script&lang=js& */ 21);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWlvQixDQUFnQix1bkJBQUcsRUFBQyIsImZpbGUiOiIyMC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vdW5pLWljb25zLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91bmktaWNvbnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///20\n");
  843. /***/ }),
  844. /* 21 */
  845. /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  846. !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/uni_modules/uni-icons/components/uni-icons/uni-icons.vue?vue&type=script&lang=js& ***!
  847. \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  848. /*! no static exports found */
  849. /***/ (function(module, exports, __webpack_require__) {
  850. "use strict";
  851. eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _icons = _interopRequireDefault(__webpack_require__(/*! ./icons.js */ 22));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar getVal = function getVal(val) {\n var reg = /^[0-9]*$/g;\n return typeof val === 'number' || reg.test(val) ? val + 'px' : val;\n};\n\n/**\n * Icons 图标\n * @description 用于展示 icons 图标\n * @tutorial https://ext.dcloud.net.cn/plugin?id=28\n * @property {Number} size 图标大小\n * @property {String} type 图标图案,参考示例\n * @property {String} color 图标颜色\n * @property {String} customPrefix 自定义图标\n * @event {Function} click 点击 Icon 触发事件\n */\nvar _default = {\n name: 'UniIcons',\n emits: ['click'],\n props: {\n type: {\n type: String,\n default: ''\n },\n color: {\n type: String,\n default: '#333333'\n },\n size: {\n type: [Number, String],\n default: 16\n },\n customPrefix: {\n type: String,\n default: ''\n }\n },\n data: function data() {\n return {\n icons: _icons.default.glyphs\n };\n },\n computed: {\n unicode: function unicode() {\n var _this = this;\n var code = this.icons.find(function (v) {\n return v.font_class === _this.type;\n });\n if (code) {\n return unescape(\"%u\".concat(code.unicode));\n }\n return '';\n },\n iconSize: function iconSize() {\n return getVal(this.size);\n }\n },\n methods: {\n _onClick: function _onClick() {\n this.$emit('click');\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLWljb25zL2NvbXBvbmVudHMvdW5pLWljb25zL3VuaS1pY29ucy52dWUiXSwibmFtZXMiOlsibmFtZSIsImVtaXRzIiwicHJvcHMiLCJ0eXBlIiwiZGVmYXVsdCIsImNvbG9yIiwic2l6ZSIsImN1c3RvbVByZWZpeCIsImRhdGEiLCJpY29ucyIsImNvbXB1dGVkIiwidW5pY29kZSIsImljb25TaXplIiwibWV0aG9kcyIsIl9vbkNsaWNrIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBVUE7Ozs7Ozs7Ozs7O0FBQ0E7RUFDQTtFQUNBO0FBQ0E7O0FBVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFUQSxlQVVBO0VBQ0FBO0VBQ0FDO0VBQ0FDO0lBQ0FDO01BQ0FBO01BQ0FDO0lBQ0E7SUFDQUM7TUFDQUY7TUFDQUM7SUFDQTtJQUNBRTtNQUNBSDtNQUNBQztJQUNBO0lBQ0FHO01BQ0FKO01BQ0FDO0lBQ0E7RUFDQTtFQUNBSTtJQUNBO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBQztNQUFBO01BQ0E7UUFBQTtNQUFBO01BQ0E7UUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBQztNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEiLCJmaWxlIjoiMjEuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XG5cdDwhLS0gI2lmZGVmIEFQUC1OVlVFIC0tPlxuXHQ8dGV4dCA6c3R5bGU9XCJ7IGNvbG9yOiBjb2xvciwgJ2ZvbnQtc2l6ZSc6IGljb25TaXplIH1cIiBjbGFzcz1cInVuaS1pY29uc1wiIEBjbGljaz1cIl9vbkNsaWNrXCI+e3t1bmljb2RlfX08L3RleHQ+XG5cdDwhLS0gI2VuZGlmIC0tPlxuXHQ8IS0tICNpZm5kZWYgQVBQLU5WVUUgLS0+XG5cdDx0ZXh0IDpzdHlsZT1cInsgY29sb3I6IGNvbG9yLCAnZm9udC1zaXplJzogaWNvblNpemUgfVwiIGNsYXNzPVwidW5pLWljb25zXCIgOmNsYXNzPVwiWyd1bml1aS0nK3R5cGUsY3VzdG9tUHJlZml4LGN1c3RvbVByZWZpeD90eXBlOicnXVwiIEBjbGljaz1cIl9vbkNsaWNrXCI+PC90ZXh0PlxuXHQ8IS0tICNlbmRpZiAtLT5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0aW1wb3J0IGljb25zIGZyb20gJy4vaWNvbnMuanMnO1xuXHRjb25zdCBnZXRWYWwgPSAodmFsKSA9PiB7XG5cdFx0Y29uc3QgcmVnID0gL15bMC05XSokL2dcblx0XHRyZXR1cm4gKHR5cGVvZiB2YWwgPT09ICdudW1iZXInIHx844CAcmVnLnRlc3QodmFsKSApPyB2YWwgKyAncHgnIDogdmFsO1xuXHR9IFxyXG5cdC8vICNpZmRlZiBBUFAtTlZVRVxyXG5cdHZhciBkb21Nb2R1bGUgPSB3ZWV4LnJlcXVpcmVNb2R1bGUoJ2RvbScpO1xyXG5cdGltcG9ydCBpY29uVXJsIGZyb20gJy4vdW5paWNvbnMudHRmJ1xyXG5cdGRvbU1vZHVsZS5hZGRSdWxlKCdmb250RmFjZScsIHtcclxuXHRcdCdmb250RmFtaWx5JzogXCJ1bmlpY29uc1wiLFxyXG5cdFx0J3NyYyc6IFwidXJsKCdcIitpY29uVXJsK1wiJylcIlxyXG5cdH0pO1xyXG5cdC8vICNlbmRpZlxyXG5cclxuXHQvKipcclxuXHQgKiBJY29ucyDlm77moIdcclxuXHQgKiBAZGVzY3JpcHRpb24g55So5LqO5bGV56S6IGljb25zIOWbvuagh1xyXG5cdCAqIEB0dXRvcmlhbCBodHRwczovL2V4dC5kY2xvdWQubmV0LmNuL3BsdWdpbj9pZD0yOFxyXG5cdCAqIEBwcm9wZXJ0eSB7TnVtYmVyfSBzaXplIOWbvuagh+Wkp+Wwj1xyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfSB0eXBlIOWbvuagh+WbvuahiO+8jOWPguiAg+ekuuS+i1xyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfSBjb2xvciDlm77moIfpopzoibJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9IGN1c3RvbVByZWZpeCDoh6rlrprkuYnlm77moIdcblx0ICogQGV2ZW50IHtGdW5jdGlvbn0gY2xpY2sg54K55Ye7IEljb24g6Kem5Y+R5LqL5Lu2XHJcblx0ICovXHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ1VuaUljb25zJyxcclxuXHRcdGVtaXRzOlsnY2xpY2snXSxcclxuXHRcdHByb3BzOiB7XHJcblx0XHRcdHR5cGU6IHtcclxuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0ZGVmYXVsdDogJydcclxuXHRcdFx0fSxcclxuXHRcdFx0Y29sb3I6IHtcclxuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0ZGVmYXVsdDogJyMzMzMzMzMnXHJcblx0XHRcdH0sXHJcblx0XHRcdHNpemU6IHtcclxuXHRcdFx0XHR0eXBlOiBbTnVtYmVyLCBTdHJpbmddLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IDE2XHJcblx0XHRcdH0sXG5cdFx0XHRjdXN0b21QcmVmaXg6e1xuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXG5cdFx0XHRcdGRlZmF1bHQ6ICcnXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRpY29uczogaWNvbnMuZ2x5cGhzXHJcblx0XHRcdH1cclxuXHRcdH0sXG5cdFx0Y29tcHV0ZWQ6e1xuXHRcdFx0dW5pY29kZSgpe1xuXHRcdFx0XHRsZXQgY29kZSA9IHRoaXMuaWNvbnMuZmluZCh2PT52LmZvbnRfY2xhc3MgPT09IHRoaXMudHlwZSlcblx0XHRcdFx0aWYoY29kZSl7XG5cdFx0XHRcdFx0cmV0dXJuIHVuZXNjYXBlKGAldSR7Y29kZS51bmljb2RlfWApXG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuICcnXG5cdFx0XHR9LFxuXHRcdFx0aWNvblNpemUoKXtcblx0XHRcdFx0cmV0dXJuIGdldFZhbCh0aGlzLnNpemUpXG5cdFx0XHR9XG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0X29uQ2xpY2soKSB7XHJcblx0XHRcdFx0dGhpcy4kZW1pdCgnY2xpY2snKVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiPlxuXHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXG5cdEBpbXBvcnQgJy4vdW5paWNvbnMuY3NzJztcclxuXHRAZm9udC1mYWNlIHtcclxuXHRcdGZvbnQtZmFtaWx5OiB1bmlpY29ucztcclxuXHRcdHNyYzogdXJsKCcuL3VuaWljb25zLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcclxuXHR9XHJcblxyXG5cdC8qICNlbmRpZiAqL1xuXHQudW5pLWljb25zIHtcclxuXHRcdGZvbnQtZmFtaWx5OiB1bmlpY29ucztcclxuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHR9XHJcblxyXG48L3N0eWxlPlxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///21\n");
  852. /***/ }),
  853. /* 22 */
  854. /*!**********************************************************************************************!*\
  855. !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-icons/components/uni-icons/icons.js ***!
  856. \**********************************************************************************************/
  857. /*! no static exports found */
  858. /***/ (function(module, exports, __webpack_require__) {
  859. "use strict";
  860. eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n \"id\": \"2852637\",\n \"name\": \"uniui图标库\",\n \"font_family\": \"uniicons\",\n \"css_prefix_text\": \"uniui-\",\n \"description\": \"\",\n \"glyphs\": [{\n \"icon_id\": \"25027049\",\n \"name\": \"yanse\",\n \"font_class\": \"color\",\n \"unicode\": \"e6cf\",\n \"unicode_decimal\": 59087\n }, {\n \"icon_id\": \"25027048\",\n \"name\": \"wallet\",\n \"font_class\": \"wallet\",\n \"unicode\": \"e6b1\",\n \"unicode_decimal\": 59057\n }, {\n \"icon_id\": \"25015720\",\n \"name\": \"settings-filled\",\n \"font_class\": \"settings-filled\",\n \"unicode\": \"e6ce\",\n \"unicode_decimal\": 59086\n }, {\n \"icon_id\": \"25015434\",\n \"name\": \"shimingrenzheng-filled\",\n \"font_class\": \"auth-filled\",\n \"unicode\": \"e6cc\",\n \"unicode_decimal\": 59084\n }, {\n \"icon_id\": \"24934246\",\n \"name\": \"shop-filled\",\n \"font_class\": \"shop-filled\",\n \"unicode\": \"e6cd\",\n \"unicode_decimal\": 59085\n }, {\n \"icon_id\": \"24934159\",\n \"name\": \"staff-filled-01\",\n \"font_class\": \"staff-filled\",\n \"unicode\": \"e6cb\",\n \"unicode_decimal\": 59083\n }, {\n \"icon_id\": \"24932461\",\n \"name\": \"VIP-filled\",\n \"font_class\": \"vip-filled\",\n \"unicode\": \"e6c6\",\n \"unicode_decimal\": 59078\n }, {\n \"icon_id\": \"24932462\",\n \"name\": \"plus_circle_fill\",\n \"font_class\": \"plus-filled\",\n \"unicode\": \"e6c7\",\n \"unicode_decimal\": 59079\n }, {\n \"icon_id\": \"24932463\",\n \"name\": \"folder_add-filled\",\n \"font_class\": \"folder-add-filled\",\n \"unicode\": \"e6c8\",\n \"unicode_decimal\": 59080\n }, {\n \"icon_id\": \"24932464\",\n \"name\": \"yanse-filled\",\n \"font_class\": \"color-filled\",\n \"unicode\": \"e6c9\",\n \"unicode_decimal\": 59081\n }, {\n \"icon_id\": \"24932465\",\n \"name\": \"tune-filled\",\n \"font_class\": \"tune-filled\",\n \"unicode\": \"e6ca\",\n \"unicode_decimal\": 59082\n }, {\n \"icon_id\": \"24932455\",\n \"name\": \"a-rilidaka-filled\",\n \"font_class\": \"calendar-filled\",\n \"unicode\": \"e6c0\",\n \"unicode_decimal\": 59072\n }, {\n \"icon_id\": \"24932456\",\n \"name\": \"notification-filled\",\n \"font_class\": \"notification-filled\",\n \"unicode\": \"e6c1\",\n \"unicode_decimal\": 59073\n }, {\n \"icon_id\": \"24932457\",\n \"name\": \"wallet-filled\",\n \"font_class\": \"wallet-filled\",\n \"unicode\": \"e6c2\",\n \"unicode_decimal\": 59074\n }, {\n \"icon_id\": \"24932458\",\n \"name\": \"paihangbang-filled\",\n \"font_class\": \"medal-filled\",\n \"unicode\": \"e6c3\",\n \"unicode_decimal\": 59075\n }, {\n \"icon_id\": \"24932459\",\n \"name\": \"gift-filled\",\n \"font_class\": \"gift-filled\",\n \"unicode\": \"e6c4\",\n \"unicode_decimal\": 59076\n }, {\n \"icon_id\": \"24932460\",\n \"name\": \"fire-filled\",\n \"font_class\": \"fire-filled\",\n \"unicode\": \"e6c5\",\n \"unicode_decimal\": 59077\n }, {\n \"icon_id\": \"24928001\",\n \"name\": \"refreshempty\",\n \"font_class\": \"refreshempty\",\n \"unicode\": \"e6bf\",\n \"unicode_decimal\": 59071\n }, {\n \"icon_id\": \"24926853\",\n \"name\": \"location-ellipse\",\n \"font_class\": \"location-filled\",\n \"unicode\": \"e6af\",\n \"unicode_decimal\": 59055\n }, {\n \"icon_id\": \"24926735\",\n \"name\": \"person-filled\",\n \"font_class\": \"person-filled\",\n \"unicode\": \"e69d\",\n \"unicode_decimal\": 59037\n }, {\n \"icon_id\": \"24926703\",\n \"name\": \"personadd-filled\",\n \"font_class\": \"personadd-filled\",\n \"unicode\": \"e698\",\n \"unicode_decimal\": 59032\n }, {\n \"icon_id\": \"24923351\",\n \"name\": \"back\",\n \"font_class\": \"back\",\n \"unicode\": \"e6b9\",\n \"unicode_decimal\": 59065\n }, {\n \"icon_id\": \"24923352\",\n \"name\": \"forward\",\n \"font_class\": \"forward\",\n \"unicode\": \"e6ba\",\n \"unicode_decimal\": 59066\n }, {\n \"icon_id\": \"24923353\",\n \"name\": \"arrowthinright\",\n \"font_class\": \"arrow-right\",\n \"unicode\": \"e6bb\",\n \"unicode_decimal\": 59067\n }, {\n \"icon_id\": \"24923353\",\n \"name\": \"arrowthinright\",\n \"font_class\": \"arrowthinright\",\n \"unicode\": \"e6bb\",\n \"unicode_decimal\": 59067\n }, {\n \"icon_id\": \"24923354\",\n \"name\": \"arrowthinleft\",\n \"font_class\": \"arrow-left\",\n \"unicode\": \"e6bc\",\n \"unicode_decimal\": 59068\n }, {\n \"icon_id\": \"24923354\",\n \"name\": \"arrowthinleft\",\n \"font_class\": \"arrowthinleft\",\n \"unicode\": \"e6bc\",\n \"unicode_decimal\": 59068\n }, {\n \"icon_id\": \"24923355\",\n \"name\": \"arrowthinup\",\n \"font_class\": \"arrow-up\",\n \"unicode\": \"e6bd\",\n \"unicode_decimal\": 59069\n }, {\n \"icon_id\": \"24923355\",\n \"name\": \"arrowthinup\",\n \"font_class\": \"arrowthinup\",\n \"unicode\": \"e6bd\",\n \"unicode_decimal\": 59069\n }, {\n \"icon_id\": \"24923356\",\n \"name\": \"arrowthindown\",\n \"font_class\": \"arrow-down\",\n \"unicode\": \"e6be\",\n \"unicode_decimal\": 59070\n }, {\n \"icon_id\": \"24923356\",\n \"name\": \"arrowthindown\",\n \"font_class\": \"arrowthindown\",\n \"unicode\": \"e6be\",\n \"unicode_decimal\": 59070\n }, {\n \"icon_id\": \"24923349\",\n \"name\": \"arrowdown\",\n \"font_class\": \"bottom\",\n \"unicode\": \"e6b8\",\n \"unicode_decimal\": 59064\n }, {\n \"icon_id\": \"24923349\",\n \"name\": \"arrowdown\",\n \"font_class\": \"arrowdown\",\n \"unicode\": \"e6b8\",\n \"unicode_decimal\": 59064\n }, {\n \"icon_id\": \"24923346\",\n \"name\": \"arrowright\",\n \"font_class\": \"right\",\n \"unicode\": \"e6b5\",\n \"unicode_decimal\": 59061\n }, {\n \"icon_id\": \"24923346\",\n \"name\": \"arrowright\",\n \"font_class\": \"arrowright\",\n \"unicode\": \"e6b5\",\n \"unicode_decimal\": 59061\n }, {\n \"icon_id\": \"24923347\",\n \"name\": \"arrowup\",\n \"font_class\": \"top\",\n \"unicode\": \"e6b6\",\n \"unicode_decimal\": 59062\n }, {\n \"icon_id\": \"24923347\",\n \"name\": \"arrowup\",\n \"font_class\": \"arrowup\",\n \"unicode\": \"e6b6\",\n \"unicode_decimal\": 59062\n }, {\n \"icon_id\": \"24923348\",\n \"name\": \"arrowleft\",\n \"font_class\": \"left\",\n \"unicode\": \"e6b7\",\n \"unicode_decimal\": 59063\n }, {\n \"icon_id\": \"24923348\",\n \"name\": \"arrowleft\",\n \"font_class\": \"arrowleft\",\n \"unicode\": \"e6b7\",\n \"unicode_decimal\": 59063\n }, {\n \"icon_id\": \"24923334\",\n \"name\": \"eye\",\n \"font_class\": \"eye\",\n \"unicode\": \"e651\",\n \"unicode_decimal\": 58961\n }, {\n \"icon_id\": \"24923335\",\n \"name\": \"eye-filled\",\n \"font_class\": \"eye-filled\",\n \"unicode\": \"e66a\",\n \"unicode_decimal\": 58986\n }, {\n \"icon_id\": \"24923336\",\n \"name\": \"eye-slash\",\n \"font_class\": \"eye-slash\",\n \"unicode\": \"e6b3\",\n \"unicode_decimal\": 59059\n }, {\n \"icon_id\": \"24923337\",\n \"name\": \"eye-slash-filled\",\n \"font_class\": \"eye-slash-filled\",\n \"unicode\": \"e6b4\",\n \"unicode_decimal\": 59060\n }, {\n \"icon_id\": \"24923305\",\n \"name\": \"info-filled\",\n \"font_class\": \"info-filled\",\n \"unicode\": \"e649\",\n \"unicode_decimal\": 58953\n }, {\n \"icon_id\": \"24923299\",\n \"name\": \"reload-01\",\n \"font_class\": \"reload\",\n \"unicode\": \"e6b2\",\n \"unicode_decimal\": 59058\n }, {\n \"icon_id\": \"24923195\",\n \"name\": \"mic_slash_fill\",\n \"font_class\": \"micoff-filled\",\n \"unicode\": \"e6b0\",\n \"unicode_decimal\": 59056\n }, {\n \"icon_id\": \"24923165\",\n \"name\": \"map-pin-ellipse\",\n \"font_class\": \"map-pin-ellipse\",\n \"unicode\": \"e6ac\",\n \"unicode_decimal\": 59052\n }, {\n \"icon_id\": \"24923166\",\n \"name\": \"map-pin\",\n \"font_class\": \"map-pin\",\n \"unicode\": \"e6ad\",\n \"unicode_decimal\": 59053\n }, {\n \"icon_id\": \"24923167\",\n \"name\": \"location\",\n \"font_class\": \"location\",\n \"unicode\": \"e6ae\",\n \"unicode_decimal\": 59054\n }, {\n \"icon_id\": \"24923064\",\n \"name\": \"starhalf\",\n \"font_class\": \"starhalf\",\n \"unicode\": \"e683\",\n \"unicode_decimal\": 59011\n }, {\n \"icon_id\": \"24923065\",\n \"name\": \"star\",\n \"font_class\": \"star\",\n \"unicode\": \"e688\",\n \"unicode_decimal\": 59016\n }, {\n \"icon_id\": \"24923066\",\n \"name\": \"star-filled\",\n \"font_class\": \"star-filled\",\n \"unicode\": \"e68f\",\n \"unicode_decimal\": 59023\n }, {\n \"icon_id\": \"24899646\",\n \"name\": \"a-rilidaka\",\n \"font_class\": \"calendar\",\n \"unicode\": \"e6a0\",\n \"unicode_decimal\": 59040\n }, {\n \"icon_id\": \"24899647\",\n \"name\": \"fire\",\n \"font_class\": \"fire\",\n \"unicode\": \"e6a1\",\n \"unicode_decimal\": 59041\n }, {\n \"icon_id\": \"24899648\",\n \"name\": \"paihangbang\",\n \"font_class\": \"medal\",\n \"unicode\": \"e6a2\",\n \"unicode_decimal\": 59042\n }, {\n \"icon_id\": \"24899649\",\n \"name\": \"font\",\n \"font_class\": \"font\",\n \"unicode\": \"e6a3\",\n \"unicode_decimal\": 59043\n }, {\n \"icon_id\": \"24899650\",\n \"name\": \"gift\",\n \"font_class\": \"gift\",\n \"unicode\": \"e6a4\",\n \"unicode_decimal\": 59044\n }, {\n \"icon_id\": \"24899651\",\n \"name\": \"link\",\n \"font_class\": \"link\",\n \"unicode\": \"e6a5\",\n \"unicode_decimal\": 59045\n }, {\n \"icon_id\": \"24899652\",\n \"name\": \"notification\",\n \"font_class\": \"notification\",\n \"unicode\": \"e6a6\",\n \"unicode_decimal\": 59046\n }, {\n \"icon_id\": \"24899653\",\n \"name\": \"staff\",\n \"font_class\": \"staff\",\n \"unicode\": \"e6a7\",\n \"unicode_decimal\": 59047\n }, {\n \"icon_id\": \"24899654\",\n \"name\": \"VIP\",\n \"font_class\": \"vip\",\n \"unicode\": \"e6a8\",\n \"unicode_decimal\": 59048\n }, {\n \"icon_id\": \"24899655\",\n \"name\": \"folder_add\",\n \"font_class\": \"folder-add\",\n \"unicode\": \"e6a9\",\n \"unicode_decimal\": 59049\n }, {\n \"icon_id\": \"24899656\",\n \"name\": \"tune\",\n \"font_class\": \"tune\",\n \"unicode\": \"e6aa\",\n \"unicode_decimal\": 59050\n }, {\n \"icon_id\": \"24899657\",\n \"name\": \"shimingrenzheng\",\n \"font_class\": \"auth\",\n \"unicode\": \"e6ab\",\n \"unicode_decimal\": 59051\n }, {\n \"icon_id\": \"24899565\",\n \"name\": \"person\",\n \"font_class\": \"person\",\n \"unicode\": \"e699\",\n \"unicode_decimal\": 59033\n }, {\n \"icon_id\": \"24899566\",\n \"name\": \"email-filled\",\n \"font_class\": \"email-filled\",\n \"unicode\": \"e69a\",\n \"unicode_decimal\": 59034\n }, {\n \"icon_id\": \"24899567\",\n \"name\": \"phone-filled\",\n \"font_class\": \"phone-filled\",\n \"unicode\": \"e69b\",\n \"unicode_decimal\": 59035\n }, {\n \"icon_id\": \"24899568\",\n \"name\": \"phone\",\n \"font_class\": \"phone\",\n \"unicode\": \"e69c\",\n \"unicode_decimal\": 59036\n }, {\n \"icon_id\": \"24899570\",\n \"name\": \"email\",\n \"font_class\": \"email\",\n \"unicode\": \"e69e\",\n \"unicode_decimal\": 59038\n }, {\n \"icon_id\": \"24899571\",\n \"name\": \"personadd\",\n \"font_class\": \"personadd\",\n \"unicode\": \"e69f\",\n \"unicode_decimal\": 59039\n }, {\n \"icon_id\": \"24899558\",\n \"name\": \"chatboxes-filled\",\n \"font_class\": \"chatboxes-filled\",\n \"unicode\": \"e692\",\n \"unicode_decimal\": 59026\n }, {\n \"icon_id\": \"24899559\",\n \"name\": \"contact\",\n \"font_class\": \"contact\",\n \"unicode\": \"e693\",\n \"unicode_decimal\": 59027\n }, {\n \"icon_id\": \"24899560\",\n \"name\": \"chatbubble-filled\",\n \"font_class\": \"chatbubble-filled\",\n \"unicode\": \"e694\",\n \"unicode_decimal\": 59028\n }, {\n \"icon_id\": \"24899561\",\n \"name\": \"contact-filled\",\n \"font_class\": \"contact-filled\",\n \"unicode\": \"e695\",\n \"unicode_decimal\": 59029\n }, {\n \"icon_id\": \"24899562\",\n \"name\": \"chatboxes\",\n \"font_class\": \"chatboxes\",\n \"unicode\": \"e696\",\n \"unicode_decimal\": 59030\n }, {\n \"icon_id\": \"24899563\",\n \"name\": \"chatbubble\",\n \"font_class\": \"chatbubble\",\n \"unicode\": \"e697\",\n \"unicode_decimal\": 59031\n }, {\n \"icon_id\": \"24881290\",\n \"name\": \"upload-filled\",\n \"font_class\": \"upload-filled\",\n \"unicode\": \"e68e\",\n \"unicode_decimal\": 59022\n }, {\n \"icon_id\": \"24881292\",\n \"name\": \"upload\",\n \"font_class\": \"upload\",\n \"unicode\": \"e690\",\n \"unicode_decimal\": 59024\n }, {\n \"icon_id\": \"24881293\",\n \"name\": \"weixin\",\n \"font_class\": \"weixin\",\n \"unicode\": \"e691\",\n \"unicode_decimal\": 59025\n }, {\n \"icon_id\": \"24881274\",\n \"name\": \"compose\",\n \"font_class\": \"compose\",\n \"unicode\": \"e67f\",\n \"unicode_decimal\": 59007\n }, {\n \"icon_id\": \"24881275\",\n \"name\": \"qq\",\n \"font_class\": \"qq\",\n \"unicode\": \"e680\",\n \"unicode_decimal\": 59008\n }, {\n \"icon_id\": \"24881276\",\n \"name\": \"download-filled\",\n \"font_class\": \"download-filled\",\n \"unicode\": \"e681\",\n \"unicode_decimal\": 59009\n }, {\n \"icon_id\": \"24881277\",\n \"name\": \"pengyouquan\",\n \"font_class\": \"pyq\",\n \"unicode\": \"e682\",\n \"unicode_decimal\": 59010\n }, {\n \"icon_id\": \"24881279\",\n \"name\": \"sound\",\n \"font_class\": \"sound\",\n \"unicode\": \"e684\",\n \"unicode_decimal\": 59012\n }, {\n \"icon_id\": \"24881280\",\n \"name\": \"trash-filled\",\n \"font_class\": \"trash-filled\",\n \"unicode\": \"e685\",\n \"unicode_decimal\": 59013\n }, {\n \"icon_id\": \"24881281\",\n \"name\": \"sound-filled\",\n \"font_class\": \"sound-filled\",\n \"unicode\": \"e686\",\n \"unicode_decimal\": 59014\n }, {\n \"icon_id\": \"24881282\",\n \"name\": \"trash\",\n \"font_class\": \"trash\",\n \"unicode\": \"e687\",\n \"unicode_decimal\": 59015\n }, {\n \"icon_id\": \"24881284\",\n \"name\": \"videocam-filled\",\n \"font_class\": \"videocam-filled\",\n \"unicode\": \"e689\",\n \"unicode_decimal\": 59017\n }, {\n \"icon_id\": \"24881285\",\n \"name\": \"spinner-cycle\",\n \"font_class\": \"spinner-cycle\",\n \"unicode\": \"e68a\",\n \"unicode_decimal\": 59018\n }, {\n \"icon_id\": \"24881286\",\n \"name\": \"weibo\",\n \"font_class\": \"weibo\",\n \"unicode\": \"e68b\",\n \"unicode_decimal\": 59019\n }, {\n \"icon_id\": \"24881288\",\n \"name\": \"videocam\",\n \"font_class\": \"videocam\",\n \"unicode\": \"e68c\",\n \"unicode_decimal\": 59020\n }, {\n \"icon_id\": \"24881289\",\n \"name\": \"download\",\n \"font_class\": \"download\",\n \"unicode\": \"e68d\",\n \"unicode_decimal\": 59021\n }, {\n \"icon_id\": \"24879601\",\n \"name\": \"help\",\n \"font_class\": \"help\",\n \"unicode\": \"e679\",\n \"unicode_decimal\": 59001\n }, {\n \"icon_id\": \"24879602\",\n \"name\": \"navigate-filled\",\n \"font_class\": \"navigate-filled\",\n \"unicode\": \"e67a\",\n \"unicode_decimal\": 59002\n }, {\n \"icon_id\": \"24879603\",\n \"name\": \"plusempty\",\n \"font_class\": \"plusempty\",\n \"unicode\": \"e67b\",\n \"unicode_decimal\": 59003\n }, {\n \"icon_id\": \"24879604\",\n \"name\": \"smallcircle\",\n \"font_class\": \"smallcircle\",\n \"unicode\": \"e67c\",\n \"unicode_decimal\": 59004\n }, {\n \"icon_id\": \"24879605\",\n \"name\": \"minus-filled\",\n \"font_class\": \"minus-filled\",\n \"unicode\": \"e67d\",\n \"unicode_decimal\": 59005\n }, {\n \"icon_id\": \"24879606\",\n \"name\": \"micoff\",\n \"font_class\": \"micoff\",\n \"unicode\": \"e67e\",\n \"unicode_decimal\": 59006\n }, {\n \"icon_id\": \"24879588\",\n \"name\": \"closeempty\",\n \"font_class\": \"closeempty\",\n \"unicode\": \"e66c\",\n \"unicode_decimal\": 58988\n }, {\n \"icon_id\": \"24879589\",\n \"name\": \"clear\",\n \"font_class\": \"clear\",\n \"unicode\": \"e66d\",\n \"unicode_decimal\": 58989\n }, {\n \"icon_id\": \"24879590\",\n \"name\": \"navigate\",\n \"font_class\": \"navigate\",\n \"unicode\": \"e66e\",\n \"unicode_decimal\": 58990\n }, {\n \"icon_id\": \"24879591\",\n \"name\": \"minus\",\n \"font_class\": \"minus\",\n \"unicode\": \"e66f\",\n \"unicode_decimal\": 58991\n }, {\n \"icon_id\": \"24879592\",\n \"name\": \"image\",\n \"font_class\": \"image\",\n \"unicode\": \"e670\",\n \"unicode_decimal\": 58992\n }, {\n \"icon_id\": \"24879593\",\n \"name\": \"mic\",\n \"font_class\": \"mic\",\n \"unicode\": \"e671\",\n \"unicode_decimal\": 58993\n }, {\n \"icon_id\": \"24879594\",\n \"name\": \"paperplane\",\n \"font_class\": \"paperplane\",\n \"unicode\": \"e672\",\n \"unicode_decimal\": 58994\n }, {\n \"icon_id\": \"24879595\",\n \"name\": \"close\",\n \"font_class\": \"close\",\n \"unicode\": \"e673\",\n \"unicode_decimal\": 58995\n }, {\n \"icon_id\": \"24879596\",\n \"name\": \"help-filled\",\n \"font_class\": \"help-filled\",\n \"unicode\": \"e674\",\n \"unicode_decimal\": 58996\n }, {\n \"icon_id\": \"24879597\",\n \"name\": \"plus-filled\",\n \"font_class\": \"paperplane-filled\",\n \"unicode\": \"e675\",\n \"unicode_decimal\": 58997\n }, {\n \"icon_id\": \"24879598\",\n \"name\": \"plus\",\n \"font_class\": \"plus\",\n \"unicode\": \"e676\",\n \"unicode_decimal\": 58998\n }, {\n \"icon_id\": \"24879599\",\n \"name\": \"mic-filled\",\n \"font_class\": \"mic-filled\",\n \"unicode\": \"e677\",\n \"unicode_decimal\": 58999\n }, {\n \"icon_id\": \"24879600\",\n \"name\": \"image-filled\",\n \"font_class\": \"image-filled\",\n \"unicode\": \"e678\",\n \"unicode_decimal\": 59000\n }, {\n \"icon_id\": \"24855900\",\n \"name\": \"locked-filled\",\n \"font_class\": \"locked-filled\",\n \"unicode\": \"e668\",\n \"unicode_decimal\": 58984\n }, {\n \"icon_id\": \"24855901\",\n \"name\": \"info\",\n \"font_class\": \"info\",\n \"unicode\": \"e669\",\n \"unicode_decimal\": 58985\n }, {\n \"icon_id\": \"24855903\",\n \"name\": \"locked\",\n \"font_class\": \"locked\",\n \"unicode\": \"e66b\",\n \"unicode_decimal\": 58987\n }, {\n \"icon_id\": \"24855884\",\n \"name\": \"camera-filled\",\n \"font_class\": \"camera-filled\",\n \"unicode\": \"e658\",\n \"unicode_decimal\": 58968\n }, {\n \"icon_id\": \"24855885\",\n \"name\": \"chat-filled\",\n \"font_class\": \"chat-filled\",\n \"unicode\": \"e659\",\n \"unicode_decimal\": 58969\n }, {\n \"icon_id\": \"24855886\",\n \"name\": \"camera\",\n \"font_class\": \"camera\",\n \"unicode\": \"e65a\",\n \"unicode_decimal\": 58970\n }, {\n \"icon_id\": \"24855887\",\n \"name\": \"circle\",\n \"font_class\": \"circle\",\n \"unicode\": \"e65b\",\n \"unicode_decimal\": 58971\n }, {\n \"icon_id\": \"24855888\",\n \"name\": \"checkmarkempty\",\n \"font_class\": \"checkmarkempty\",\n \"unicode\": \"e65c\",\n \"unicode_decimal\": 58972\n }, {\n \"icon_id\": \"24855889\",\n \"name\": \"chat\",\n \"font_class\": \"chat\",\n \"unicode\": \"e65d\",\n \"unicode_decimal\": 58973\n }, {\n \"icon_id\": \"24855890\",\n \"name\": \"circle-filled\",\n \"font_class\": \"circle-filled\",\n \"unicode\": \"e65e\",\n \"unicode_decimal\": 58974\n }, {\n \"icon_id\": \"24855891\",\n \"name\": \"flag\",\n \"font_class\": \"flag\",\n \"unicode\": \"e65f\",\n \"unicode_decimal\": 58975\n }, {\n \"icon_id\": \"24855892\",\n \"name\": \"flag-filled\",\n \"font_class\": \"flag-filled\",\n \"unicode\": \"e660\",\n \"unicode_decimal\": 58976\n }, {\n \"icon_id\": \"24855893\",\n \"name\": \"gear-filled\",\n \"font_class\": \"gear-filled\",\n \"unicode\": \"e661\",\n \"unicode_decimal\": 58977\n }, {\n \"icon_id\": \"24855894\",\n \"name\": \"home\",\n \"font_class\": \"home\",\n \"unicode\": \"e662\",\n \"unicode_decimal\": 58978\n }, {\n \"icon_id\": \"24855895\",\n \"name\": \"home-filled\",\n \"font_class\": \"home-filled\",\n \"unicode\": \"e663\",\n \"unicode_decimal\": 58979\n }, {\n \"icon_id\": \"24855896\",\n \"name\": \"gear\",\n \"font_class\": \"gear\",\n \"unicode\": \"e664\",\n \"unicode_decimal\": 58980\n }, {\n \"icon_id\": \"24855897\",\n \"name\": \"smallcircle-filled\",\n \"font_class\": \"smallcircle-filled\",\n \"unicode\": \"e665\",\n \"unicode_decimal\": 58981\n }, {\n \"icon_id\": \"24855898\",\n \"name\": \"map-filled\",\n \"font_class\": \"map-filled\",\n \"unicode\": \"e666\",\n \"unicode_decimal\": 58982\n }, {\n \"icon_id\": \"24855899\",\n \"name\": \"map\",\n \"font_class\": \"map\",\n \"unicode\": \"e667\",\n \"unicode_decimal\": 58983\n }, {\n \"icon_id\": \"24855825\",\n \"name\": \"refresh-filled\",\n \"font_class\": \"refresh-filled\",\n \"unicode\": \"e656\",\n \"unicode_decimal\": 58966\n }, {\n \"icon_id\": \"24855826\",\n \"name\": \"refresh\",\n \"font_class\": \"refresh\",\n \"unicode\": \"e657\",\n \"unicode_decimal\": 58967\n }, {\n \"icon_id\": \"24855808\",\n \"name\": \"cloud-upload\",\n \"font_class\": \"cloud-upload\",\n \"unicode\": \"e645\",\n \"unicode_decimal\": 58949\n }, {\n \"icon_id\": \"24855809\",\n \"name\": \"cloud-download-filled\",\n \"font_class\": \"cloud-download-filled\",\n \"unicode\": \"e646\",\n \"unicode_decimal\": 58950\n }, {\n \"icon_id\": \"24855810\",\n \"name\": \"cloud-download\",\n \"font_class\": \"cloud-download\",\n \"unicode\": \"e647\",\n \"unicode_decimal\": 58951\n }, {\n \"icon_id\": \"24855811\",\n \"name\": \"cloud-upload-filled\",\n \"font_class\": \"cloud-upload-filled\",\n \"unicode\": \"e648\",\n \"unicode_decimal\": 58952\n }, {\n \"icon_id\": \"24855813\",\n \"name\": \"redo\",\n \"font_class\": \"redo\",\n \"unicode\": \"e64a\",\n \"unicode_decimal\": 58954\n }, {\n \"icon_id\": \"24855814\",\n \"name\": \"images-filled\",\n \"font_class\": \"images-filled\",\n \"unicode\": \"e64b\",\n \"unicode_decimal\": 58955\n }, {\n \"icon_id\": \"24855815\",\n \"name\": \"undo-filled\",\n \"font_class\": \"undo-filled\",\n \"unicode\": \"e64c\",\n \"unicode_decimal\": 58956\n }, {\n \"icon_id\": \"24855816\",\n \"name\": \"more\",\n \"font_class\": \"more\",\n \"unicode\": \"e64d\",\n \"unicode_decimal\": 58957\n }, {\n \"icon_id\": \"24855817\",\n \"name\": \"more-filled\",\n \"font_class\": \"more-filled\",\n \"unicode\": \"e64e\",\n \"unicode_decimal\": 58958\n }, {\n \"icon_id\": \"24855818\",\n \"name\": \"undo\",\n \"font_class\": \"undo\",\n \"unicode\": \"e64f\",\n \"unicode_decimal\": 58959\n }, {\n \"icon_id\": \"24855819\",\n \"name\": \"images\",\n \"font_class\": \"images\",\n \"unicode\": \"e650\",\n \"unicode_decimal\": 58960\n }, {\n \"icon_id\": \"24855821\",\n \"name\": \"paperclip\",\n \"font_class\": \"paperclip\",\n \"unicode\": \"e652\",\n \"unicode_decimal\": 58962\n }, {\n \"icon_id\": \"24855822\",\n \"name\": \"settings\",\n \"font_class\": \"settings\",\n \"unicode\": \"e653\",\n \"unicode_decimal\": 58963\n }, {\n \"icon_id\": \"24855823\",\n \"name\": \"search\",\n \"font_class\": \"search\",\n \"unicode\": \"e654\",\n \"unicode_decimal\": 58964\n }, {\n \"icon_id\": \"24855824\",\n \"name\": \"redo-filled\",\n \"font_class\": \"redo-filled\",\n \"unicode\": \"e655\",\n \"unicode_decimal\": 58965\n }, {\n \"icon_id\": \"24841702\",\n \"name\": \"list\",\n \"font_class\": \"list\",\n \"unicode\": \"e644\",\n \"unicode_decimal\": 58948\n }, {\n \"icon_id\": \"24841489\",\n \"name\": \"mail-open-filled\",\n \"font_class\": \"mail-open-filled\",\n \"unicode\": \"e63a\",\n \"unicode_decimal\": 58938\n }, {\n \"icon_id\": \"24841491\",\n \"name\": \"hand-thumbsdown-filled\",\n \"font_class\": \"hand-down-filled\",\n \"unicode\": \"e63c\",\n \"unicode_decimal\": 58940\n }, {\n \"icon_id\": \"24841492\",\n \"name\": \"hand-thumbsdown\",\n \"font_class\": \"hand-down\",\n \"unicode\": \"e63d\",\n \"unicode_decimal\": 58941\n }, {\n \"icon_id\": \"24841493\",\n \"name\": \"hand-thumbsup-filled\",\n \"font_class\": \"hand-up-filled\",\n \"unicode\": \"e63e\",\n \"unicode_decimal\": 58942\n }, {\n \"icon_id\": \"24841494\",\n \"name\": \"hand-thumbsup\",\n \"font_class\": \"hand-up\",\n \"unicode\": \"e63f\",\n \"unicode_decimal\": 58943\n }, {\n \"icon_id\": \"24841496\",\n \"name\": \"heart-filled\",\n \"font_class\": \"heart-filled\",\n \"unicode\": \"e641\",\n \"unicode_decimal\": 58945\n }, {\n \"icon_id\": \"24841498\",\n \"name\": \"mail-open\",\n \"font_class\": \"mail-open\",\n \"unicode\": \"e643\",\n \"unicode_decimal\": 58947\n }, {\n \"icon_id\": \"24841488\",\n \"name\": \"heart\",\n \"font_class\": \"heart\",\n \"unicode\": \"e639\",\n \"unicode_decimal\": 58937\n }, {\n \"icon_id\": \"24839963\",\n \"name\": \"loop\",\n \"font_class\": \"loop\",\n \"unicode\": \"e633\",\n \"unicode_decimal\": 58931\n }, {\n \"icon_id\": \"24839866\",\n \"name\": \"pulldown\",\n \"font_class\": \"pulldown\",\n \"unicode\": \"e632\",\n \"unicode_decimal\": 58930\n }, {\n \"icon_id\": \"24813798\",\n \"name\": \"scan\",\n \"font_class\": \"scan\",\n \"unicode\": \"e62a\",\n \"unicode_decimal\": 58922\n }, {\n \"icon_id\": \"24813786\",\n \"name\": \"bars\",\n \"font_class\": \"bars\",\n \"unicode\": \"e627\",\n \"unicode_decimal\": 58919\n }, {\n \"icon_id\": \"24813788\",\n \"name\": \"cart-filled\",\n \"font_class\": \"cart-filled\",\n \"unicode\": \"e629\",\n \"unicode_decimal\": 58921\n }, {\n \"icon_id\": \"24813790\",\n \"name\": \"checkbox\",\n \"font_class\": \"checkbox\",\n \"unicode\": \"e62b\",\n \"unicode_decimal\": 58923\n }, {\n \"icon_id\": \"24813791\",\n \"name\": \"checkbox-filled\",\n \"font_class\": \"checkbox-filled\",\n \"unicode\": \"e62c\",\n \"unicode_decimal\": 58924\n }, {\n \"icon_id\": \"24813794\",\n \"name\": \"shop\",\n \"font_class\": \"shop\",\n \"unicode\": \"e62f\",\n \"unicode_decimal\": 58927\n }, {\n \"icon_id\": \"24813795\",\n \"name\": \"headphones\",\n \"font_class\": \"headphones\",\n \"unicode\": \"e630\",\n \"unicode_decimal\": 58928\n }, {\n \"icon_id\": \"24813796\",\n \"name\": \"cart\",\n \"font_class\": \"cart\",\n \"unicode\": \"e631\",\n \"unicode_decimal\": 58929\n }]\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLWljb25zL2NvbXBvbmVudHMvdW5pLWljb25zL2ljb25zLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztlQUFlO0VBQ2IsSUFBSSxFQUFFLFNBQVM7RUFDZixNQUFNLEVBQUUsVUFBVTtFQUNsQixhQUFhLEVBQUUsVUFBVTtFQUN6QixpQkFBaUIsRUFBRSxRQUFRO0VBQzNCLGFBQWEsRUFBRSxFQUFFO0VBQ2pCLFFBQVEsRUFBRSxDQUNSO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLE9BQU87SUFDZixZQUFZLEVBQUUsT0FBTztJQUNyQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsUUFBUTtJQUNoQixZQUFZLEVBQUUsUUFBUTtJQUN0QixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsaUJBQWlCO0lBQ3pCLFlBQVksRUFBRSxpQkFBaUI7SUFDL0IsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLHdCQUF3QjtJQUNoQyxZQUFZLEVBQUUsYUFBYTtJQUMzQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsYUFBYTtJQUNyQixZQUFZLEVBQUUsYUFBYTtJQUMzQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsaUJBQWlCO0lBQ3pCLFlBQVksRUFBRSxj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QWE7SUFDckIsWUFBWSxFQUFFLGFBQWE7SUFDM0IsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNDO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGVBQWU7SUFDdkIsWUFBWSxFQUFFLFlBQVk7SUFDMUIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUFDO0lBQ0EsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGVBQWU7SUFDdkIsWUFBWSxFQUFFLGVBQWU7SUFDN0IsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFdBQVc7SUFDbkIsWUFBWSxFQUFFLFFBQVE7SUFDdEIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUFDO0lBQ0EsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFdBQVc7SUFDbkIsWUFBWSxFQUFFLFdBQVc7SUFDekIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFlBQVk7SUFDcEIsWUFBWSxFQUFFLE9BQU87SUFDckIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNIO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFlBQVk7SUFDcEIsWUFBWSxFQUFFLFlBQVk7SUFDMUIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNDO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFNBQVM7SUFDakIsWUFBWSxFQUFFLEtBQUs7SUFDbkIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNIO0lB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dCBkZWZhdWx0IHtcbiAgXCJpZFwiOiBcIjI4NTI2MzdcIixcbiAgXCJuYW1lXCI6IFwidW5pdWnlm77moIflupNcIixcbiAgXCJmb250X2ZhbWlseVwiOiBcInVuaWljb25zXCIsXG4gIFwiY3NzX3ByZWZpeF90ZXh0XCI6IFwidW5pdWktXCIsXG4gIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgXCJnbHlwaHNcIjogW1xuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI1MDI3MDQ5XCIsXG4gICAgICBcIm5hbWVcIjogXCJ5YW5zZVwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY29sb3JcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2Y2ZcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDg3XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNTAyNzA0OFwiLFxuICAgICAgXCJuYW1lXCI6IFwid2FsbGV0XCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJ3YWxsZXRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YjFcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDU3XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNTAxNTcyMFwiLFxuICAgICAgXCJuYW1lXCI6IFwic2V0dGluZ3MtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJzZXR0aW5ncy1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2Y2VcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDg2XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNTAxNTQzNFwiLFxuICAgICAgXCJuYW1lXCI6IFwic2hpbWluZ3JlbnpoZW5nLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiYXV0aC1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2Y2NcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDg0XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkzNDI0NlwiLFxuICAgICAgXCJuYW1lXCI6IFwic2hvcC1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInNob3AtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmNkXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA4NVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MzQxNTlcIixcbiAgICAgIFwibmFtZVwiOiBcInN0YWZmLWZpbGxlZC0wMVwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwic3RhZmYtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmNiXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA4M1xuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MzI0NjFcIixcbiAgICAgIFwibmFtZVwiOiBcIlZJUC1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInZpcC1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YzZcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDc4XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkzMjQ2MlwiLFxuICAgICAgXCJuYW1lXCI6IFwicGx1c19jaXJjbGVfZmlsbFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicGx1cy1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YzdcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDc5XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkzMjQ2M1wiLFxuICAgICAgXCJuYW1lXCI6IFwiZm9sZGVyX2FkZC1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImZvbGRlci1hZGQtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmM4XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA4MFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MzI0NjRcIixcbiAgICAgIFwibmFtZVwiOiBcInlhbnNlLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY29sb3ItZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmM5XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA4MVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MzI0NjVcIixcbiAgICAgIFwibmFtZVwiOiBcInR1bmUtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJ0dW5lLWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZjYVwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwODJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTMyNDU1XCIsXG4gICAgICBcIm5hbWVcIjogXCJhLXJpbGlkYWthLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2FsZW5kYXItZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmMwXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA3MlxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MzI0NTZcIixcbiAgICAgIFwibmFtZVwiOiBcIm5vdGlmaWNhdGlvbi1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcIm5vdGlmaWNhdGlvbi1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YzFcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDczXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkzMjQ1N1wiLFxuICAgICAgXCJuYW1lXCI6IFwid2FsbGV0LWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwid2FsbGV0LWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZjMlwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNzRcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTMyNDU4XCIsXG4gICAgICBcIm5hbWVcIjogXCJwYWloYW5nYmFuZy1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcIm1lZGFsLWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZjM1wiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNzVcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTMyNDU5XCIsXG4gICAgICBcIm5hbWVcIjogXCJnaWZ0LWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiZ2lmdC1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YzRcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDc2XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkzMjQ2MFwiLFxuICAgICAgXCJuYW1lXCI6IFwiZmlyZS1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImZpcmUtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmM1XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA3N1xuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjgwMDFcIixcbiAgICAgIFwibmFtZVwiOiBcInJlZnJlc2hlbXB0eVwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicmVmcmVzaGVtcHR5XCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmJmXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA3MVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjY4NTNcIixcbiAgICAgIFwibmFtZVwiOiBcImxvY2F0aW9uLWVsbGlwc2VcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImxvY2F0aW9uLWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZhZlwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNTVcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTI2NzM1XCIsXG4gICAgICBcIm5hbWVcIjogXCJwZXJzb24tZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJwZXJzb24tZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjlkXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAzN1xuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjY3MDNcIixcbiAgICAgIFwibmFtZVwiOiBcInBlcnNvbmFkZC1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInBlcnNvbmFkZC1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2OThcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDMyXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzM1MVwiLFxuICAgICAgXCJuYW1lXCI6IFwiYmFja1wiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiYmFja1wiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZiOVwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNjVcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMzUyXCIsXG4gICAgICBcIm5hbWVcIjogXCJmb3J3YXJkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJmb3J3YXJkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmJhXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA2NlxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzNTNcIixcbiAgICAgIFwibmFtZVwiOiBcImFycm93dGhpbnJpZ2h0XCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJhcnJvdy1yaWdodFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZiYlwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNjdcbiAgICB9LFxuXHRcdHtcblx0XHQgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMzUzXCIsXG5cdFx0ICBcIm5hbWVcIjogXCJhcnJvd3RoaW5yaWdodFwiLFxuXHRcdCAgXCJmb250X2NsYXNzXCI6IFwiYXJyb3d0aGlucmlnaHRcIixcblx0XHQgIFwidW5pY29kZVwiOiBcImU2YmJcIixcblx0XHQgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDY3XG5cdFx0fSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzM1NFwiLFxuICAgICAgXCJuYW1lXCI6IFwiYXJyb3d0aGlubGVmdFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiYXJyb3ctbGVmdFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZiY1wiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNjhcbiAgICB9LFxuXHRcdHtcblx0XHQgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMzU0XCIsXG5cdFx0ICBcIm5hbWVcIjogXCJhcnJvd3RoaW5sZWZ0XCIsXG5cdFx0ICBcImZvbnRfY2xhc3NcIjogXCJhcnJvd3RoaW5sZWZ0XCIsXG5cdFx0ICBcInVuaWNvZGVcIjogXCJlNmJjXCIsXG5cdFx0ICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA2OFxuXHRcdH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzNTVcIixcbiAgICAgIFwibmFtZVwiOiBcImFycm93dGhpbnVwXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJhcnJvdy11cFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZiZFwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNjlcbiAgICB9LFxuXHRcdHtcblx0XHQgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMzU1XCIsXG5cdFx0ICBcIm5hbWVcIjogXCJhcnJvd3RoaW51cFwiLFxuXHRcdCAgXCJmb250X2NsYXNzXCI6IFwiYXJyb3d0aGludXBcIixcblx0XHQgIFwidW5pY29kZVwiOiBcImU2YmRcIixcblx0XHQgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDY5XG5cdFx0fSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzM1NlwiLFxuICAgICAgXCJuYW1lXCI6IFwiYXJyb3d0aGluZG93blwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiYXJyb3ctZG93blwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZiZVwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNzBcbiAgICB9LHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMzU2XCIsXG4gICAgICBcIm5hbWVcIjogXCJhcnJvd3RoaW5kb3duXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJhcnJvd3RoaW5kb3duXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmJlXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA3MFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzNDlcIixcbiAgICAgIFwibmFtZVwiOiBcImFycm93ZG93blwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiYm90dG9tXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmI4XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA2NFxuICAgIH0se1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzNDlcIixcbiAgICAgIFwibmFtZVwiOiBcImFycm93ZG93blwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiYXJyb3dkb3duXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmI4XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA2NFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzNDZcIixcbiAgICAgIFwibmFtZVwiOiBcImFycm93cmlnaHRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInJpZ2h0XCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmI1XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA2MVxuICAgIH0sXG5cdFx0e1xuXHRcdCAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzNDZcIixcblx0XHQgIFwibmFtZVwiOiBcImFycm93cmlnaHRcIixcblx0XHQgIFwiZm9udF9jbGFzc1wiOiBcImFycm93cmlnaHRcIixcblx0XHQgIFwidW5pY29kZVwiOiBcImU2YjVcIixcblx0XHQgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDYxXG5cdFx0fSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzM0N1wiLFxuICAgICAgXCJuYW1lXCI6IFwiYXJyb3d1cFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwidG9wXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmI2XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA2MlxuICAgIH0sXG5cdFx0e1xuXHRcdCAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzNDdcIixcblx0XHQgIFwibmFtZVwiOiBcImFycm93dXBcIixcblx0XHQgIFwiZm9udF9jbGFzc1wiOiBcImFycm93dXBcIixcblx0XHQgIFwidW5pY29kZVwiOiBcImU2YjZcIixcblx0XHQgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDYyXG5cdFx0fSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzM0OFwiLFxuICAgICAgXCJuYW1lXCI6IFwiYXJyb3dsZWZ0XCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJsZWZ0XCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmI3XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA2M1xuICAgIH0sXG5cdFx0e1xuXHRcdCAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzNDhcIixcblx0XHQgIFwibmFtZVwiOiBcImFycm93bGVmdFwiLFxuXHRcdCAgXCJmb250X2NsYXNzXCI6IFwiYXJyb3dsZWZ0XCIsXG5cdFx0ICBcInVuaWNvZGVcIjogXCJlNmI3XCIsXG5cdFx0ICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA2M1xuXHRcdH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzMzRcIixcbiAgICAgIFwibmFtZVwiOiBcImV5ZVwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiZXllXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjUxXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk2MVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzMzVcIixcbiAgICAgIFwibmFtZVwiOiBcImV5ZS1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImV5ZS1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NmFcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTg2XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzMzNlwiLFxuICAgICAgXCJuYW1lXCI6IFwiZXllLXNsYXNoXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJleWUtc2xhc2hcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YjNcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDU5XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzMzN1wiLFxuICAgICAgXCJuYW1lXCI6IFwiZXllLXNsYXNoLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiZXllLXNsYXNoLWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZiNFwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNjBcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMzA1XCIsXG4gICAgICBcIm5hbWVcIjogXCJpbmZvLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiaW5mby1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NDlcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTUzXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzI5OVwiLFxuICAgICAgXCJuYW1lXCI6IFwicmVsb2FkLTAxXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJyZWxvYWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YjJcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDU4XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzE5NVwiLFxuICAgICAgXCJuYW1lXCI6IFwibWljX3NsYXNoX2ZpbGxcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcIm1pY29mZi1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YjBcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDU2XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzE2NVwiLFxuICAgICAgXCJuYW1lXCI6IFwibWFwLXBpbi1lbGxpcHNlXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJtYXAtcGluLWVsbGlwc2VcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YWNcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDUyXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzE2NlwiLFxuICAgICAgXCJuYW1lXCI6IFwibWFwLXBpblwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibWFwLXBpblwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZhZFwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNTNcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMTY3XCIsXG4gICAgICBcIm5hbWVcIjogXCJsb2NhdGlvblwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibG9jYXRpb25cIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YWVcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDU0XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzA2NFwiLFxuICAgICAgXCJuYW1lXCI6IFwic3RhcmhhbGZcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInN0YXJoYWxmXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjgzXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAxMVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMwNjVcIixcbiAgICAgIFwibmFtZVwiOiBcInN0YXJcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInN0YXJcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2ODhcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDE2XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzA2NlwiLFxuICAgICAgXCJuYW1lXCI6IFwic3Rhci1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInN0YXItZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjhmXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAyM1xuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk2NDZcIixcbiAgICAgIFwibmFtZVwiOiBcImEtcmlsaWRha2FcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNhbGVuZGFyXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmEwXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA0MFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk2NDdcIixcbiAgICAgIFwibmFtZVwiOiBcImZpcmVcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImZpcmVcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YTFcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDQxXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTY0OFwiLFxuICAgICAgXCJuYW1lXCI6IFwicGFpaGFuZ2JhbmdcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcIm1lZGFsXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmEyXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA0MlxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk2NDlcIixcbiAgICAgIFwibmFtZVwiOiBcImZvbnRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImZvbnRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YTNcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDQzXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTY1MFwiLFxuICAgICAgXCJuYW1lXCI6IFwiZ2lmdFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiZ2lmdFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZhNFwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNDRcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODk5NjUxXCIsXG4gICAgICBcIm5hbWVcIjogXCJsaW5rXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJsaW5rXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmE1XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA0NVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk2NTJcIixcbiAgICAgIFwibmFtZVwiOiBcIm5vdGlmaWNhdGlvblwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibm90aWZpY2F0aW9uXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmE2XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA0NlxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk2NTNcIixcbiAgICAgIFwibmFtZVwiOiBcInN0YWZmXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJzdGFmZlwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZhN1wiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNDdcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODk5NjU0XCIsXG4gICAgICBcIm5hbWVcIjogXCJWSVBcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInZpcFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZhOFwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNDhcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODk5NjU1XCIsXG4gICAgICBcIm5hbWVcIjogXCJmb2xkZXJfYWRkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJmb2xkZXItYWRkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmE5XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA0OVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk2NTZcIixcbiAgICAgIFwibmFtZVwiOiBcInR1bmVcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInR1bmVcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YWFcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDUwXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTY1N1wiLFxuICAgICAgXCJuYW1lXCI6IFwic2hpbWluZ3JlbnpoZW5nXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJhdXRoXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmFiXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA1MVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk1NjVcIixcbiAgICAgIFwibmFtZVwiOiBcInBlcnNvblwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicGVyc29uXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjk5XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAzM1xuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk1NjZcIixcbiAgICAgIFwibmFtZVwiOiBcImVtYWlsLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiZW1haWwtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjlhXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAzNFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk1NjdcIixcbiAgICAgIFwibmFtZVwiOiBcInBob25lLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicGhvbmUtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjliXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAzNVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk1NjhcIixcbiAgICAgIFwibmFtZVwiOiBcInBob25lXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJwaG9uZVwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY5Y1wiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMzZcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODk5NTcwXCIsXG4gICAgICBcIm5hbWVcIjogXCJlbWFpbFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiZW1haWxcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2OWVcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDM4XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTU3MVwiLFxuICAgICAgXCJuYW1lXCI6IFwicGVyc29uYWRkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJwZXJzb25hZGRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2OWZcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDM5XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTU1OFwiLFxuICAgICAgXCJuYW1lXCI6IFwiY2hhdGJveGVzLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2hhdGJveGVzLWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY5MlwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMjZcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODk5NTU5XCIsXG4gICAgICBcIm5hbWVcIjogXCJjb250YWN0XCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjb250YWN0XCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjkzXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAyN1xuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk1NjBcIixcbiAgICAgIFwibmFtZVwiOiBcImNoYXRidWJibGUtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjaGF0YnViYmxlLWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY5NFwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMjhcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODk5NTYxXCIsXG4gICAgICBcIm5hbWVcIjogXCJjb250YWN0LWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY29udGFjdC1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2OTVcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDI5XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTU2MlwiLFxuICAgICAgXCJuYW1lXCI6IFwiY2hhdGJveGVzXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjaGF0Ym94ZXNcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2OTZcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDMwXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTU2M1wiLFxuICAgICAgXCJuYW1lXCI6IFwiY2hhdGJ1YmJsZVwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2hhdGJ1YmJsZVwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY5N1wiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMzFcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODgxMjkwXCIsXG4gICAgICBcIm5hbWVcIjogXCJ1cGxvYWQtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJ1cGxvYWQtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjhlXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAyMlxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyOTJcIixcbiAgICAgIFwibmFtZVwiOiBcInVwbG9hZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwidXBsb2FkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjkwXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAyNFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyOTNcIixcbiAgICAgIFwibmFtZVwiOiBcIndlaXhpblwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwid2VpeGluXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjkxXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAyNVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyNzRcIixcbiAgICAgIFwibmFtZVwiOiBcImNvbXBvc2VcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNvbXBvc2VcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2N2ZcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDA3XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg4MTI3NVwiLFxuICAgICAgXCJuYW1lXCI6IFwicXFcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInFxXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjgwXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAwOFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyNzZcIixcbiAgICAgIFwibmFtZVwiOiBcImRvd25sb2FkLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiZG93bmxvYWQtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjgxXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAwOVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyNzdcIixcbiAgICAgIFwibmFtZVwiOiBcInBlbmd5b3VxdWFuXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJweXFcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2ODJcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDEwXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg4MTI3OVwiLFxuICAgICAgXCJuYW1lXCI6IFwic291bmRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInNvdW5kXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjg0XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAxMlxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyODBcIixcbiAgICAgIFwibmFtZVwiOiBcInRyYXNoLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwidHJhc2gtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjg1XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAxM1xuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyODFcIixcbiAgICAgIFwibmFtZVwiOiBcInNvdW5kLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwic291bmQtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjg2XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAxNFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyODJcIixcbiAgICAgIFwibmFtZVwiOiBcInRyYXNoXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJ0cmFzaFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY4N1wiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMTVcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODgxMjg0XCIsXG4gICAgICBcIm5hbWVcIjogXCJ2aWRlb2NhbS1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInZpZGVvY2FtLWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY4OVwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMTdcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODgxMjg1XCIsXG4gICAgICBcIm5hbWVcIjogXCJzcGlubmVyLWN5Y2xlXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJzcGlubmVyLWN5Y2xlXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjhhXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAxOFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyODZcIixcbiAgICAgIFwibmFtZVwiOiBcIndlaWJvXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJ3ZWlib1wiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY4YlwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMTlcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODgxMjg4XCIsXG4gICAgICBcIm5hbWVcIjogXCJ2aWRlb2NhbVwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwidmlkZW9jYW1cIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2OGNcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDIwXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg4MTI4OVwiLFxuICAgICAgXCJuYW1lXCI6IFwiZG93bmxvYWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImRvd25sb2FkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjhkXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAyMVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4Nzk2MDFcIixcbiAgICAgIFwibmFtZVwiOiBcImhlbHBcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImhlbHBcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NzlcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDAxXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTYwMlwiLFxuICAgICAgXCJuYW1lXCI6IFwibmF2aWdhdGUtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJuYXZpZ2F0ZS1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2N2FcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDAyXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTYwM1wiLFxuICAgICAgXCJuYW1lXCI6IFwicGx1c2VtcHR5XCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJwbHVzZW1wdHlcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2N2JcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDAzXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTYwNFwiLFxuICAgICAgXCJuYW1lXCI6IFwic21hbGxjaXJjbGVcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInNtYWxsY2lyY2xlXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjdjXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAwNFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4Nzk2MDVcIixcbiAgICAgIFwibmFtZVwiOiBcIm1pbnVzLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibWludXMtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjdkXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAwNVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4Nzk2MDZcIixcbiAgICAgIFwibmFtZVwiOiBcIm1pY29mZlwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibWljb2ZmXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjdlXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAwNlxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4Nzk1ODhcIixcbiAgICAgIFwibmFtZVwiOiBcImNsb3NlZW1wdHlcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNsb3NlZW1wdHlcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NmNcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTg4XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTU4OVwiLFxuICAgICAgXCJuYW1lXCI6IFwiY2xlYXJcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNsZWFyXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjZkXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk4OVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4Nzk1OTBcIixcbiAgICAgIFwibmFtZVwiOiBcIm5hdmlnYXRlXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJuYXZpZ2F0ZVwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY2ZVwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5OTBcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODc5NTkxXCIsXG4gICAgICBcIm5hbWVcIjogXCJtaW51c1wiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibWludXNcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NmZcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTkxXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTU5MlwiLFxuICAgICAgXCJuYW1lXCI6IFwiaW1hZ2VcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImltYWdlXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjcwXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk5MlxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4Nzk1OTNcIixcbiAgICAgIFwibmFtZVwiOiBcIm1pY1wiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibWljXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjcxXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk5M1xuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4Nzk1OTRcIixcbiAgICAgIFwibmFtZVwiOiBcInBhcGVycGxhbmVcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInBhcGVycGxhbmVcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NzJcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTk0XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTU5NVwiLFxuICAgICAgXCJuYW1lXCI6IFwiY2xvc2VcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNsb3NlXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjczXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk5NVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4Nzk1OTZcIixcbiAgICAgIFwibmFtZVwiOiBcImhlbHAtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJoZWxwLWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY3NFwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5OTZcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODc5NTk3XCIsXG4gICAgICBcIm5hbWVcIjogXCJwbHVzLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicGFwZXJwbGFuZS1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NzVcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTk3XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTU5OFwiLFxuICAgICAgXCJuYW1lXCI6IFwicGx1c1wiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicGx1c1wiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY3NlwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5OThcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODc5NTk5XCIsXG4gICAgICBcIm5hbWVcIjogXCJtaWMtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJtaWMtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjc3XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk5OVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4Nzk2MDBcIixcbiAgICAgIFwibmFtZVwiOiBcImltYWdlLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiaW1hZ2UtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjc4XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAwMFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU5MDBcIixcbiAgICAgIFwibmFtZVwiOiBcImxvY2tlZC1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImxvY2tlZC1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NjhcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTg0XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTkwMVwiLFxuICAgICAgXCJuYW1lXCI6IFwiaW5mb1wiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiaW5mb1wiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY2OVwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5ODVcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1OTAzXCIsXG4gICAgICBcIm5hbWVcIjogXCJsb2NrZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImxvY2tlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY2YlwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5ODdcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODg0XCIsXG4gICAgICBcIm5hbWVcIjogXCJjYW1lcmEtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjYW1lcmEtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjU4XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk2OFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4ODVcIixcbiAgICAgIFwibmFtZVwiOiBcImNoYXQtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjaGF0LWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY1OVwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NjlcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODg2XCIsXG4gICAgICBcIm5hbWVcIjogXCJjYW1lcmFcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNhbWVyYVwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY1YVwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NzBcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODg3XCIsXG4gICAgICBcIm5hbWVcIjogXCJjaXJjbGVcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNpcmNsZVwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY1YlwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NzFcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODg4XCIsXG4gICAgICBcIm5hbWVcIjogXCJjaGVja21hcmtlbXB0eVwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2hlY2ttYXJrZW1wdHlcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NWNcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTcyXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTg4OVwiLFxuICAgICAgXCJuYW1lXCI6IFwiY2hhdFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2hhdFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY1ZFwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NzNcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODkwXCIsXG4gICAgICBcIm5hbWVcIjogXCJjaXJjbGUtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjaXJjbGUtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjVlXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk3NFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4OTFcIixcbiAgICAgIFwibmFtZVwiOiBcImZsYWdcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImZsYWdcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NWZcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTc1XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTg5MlwiLFxuICAgICAgXCJuYW1lXCI6IFwiZmxhZy1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImZsYWctZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjYwXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk3NlxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4OTNcIixcbiAgICAgIFwibmFtZVwiOiBcImdlYXItZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJnZWFyLWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY2MVwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NzdcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODk0XCIsXG4gICAgICBcIm5hbWVcIjogXCJob21lXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJob21lXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjYyXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk3OFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4OTVcIixcbiAgICAgIFwibmFtZVwiOiBcImhvbWUtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJob21lLWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY2M1wiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NzlcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODk2XCIsXG4gICAgICBcIm5hbWVcIjogXCJnZWFyXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJnZWFyXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjY0XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk4MFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4OTdcIixcbiAgICAgIFwibmFtZVwiOiBcInNtYWxsY2lyY2xlLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwic21hbGxjaXJjbGUtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjY1XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk4MVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4OThcIixcbiAgICAgIFwibmFtZVwiOiBcIm1hcC1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcIm1hcC1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NjZcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTgyXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTg5OVwiLFxuICAgICAgXCJuYW1lXCI6IFwibWFwXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJtYXBcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NjdcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTgzXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTgyNVwiLFxuICAgICAgXCJuYW1lXCI6IFwicmVmcmVzaC1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInJlZnJlc2gtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjU2XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk2NlxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4MjZcIixcbiAgICAgIFwibmFtZVwiOiBcInJlZnJlc2hcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInJlZnJlc2hcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NTdcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTY3XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTgwOFwiLFxuICAgICAgXCJuYW1lXCI6IFwiY2xvdWQtdXBsb2FkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjbG91ZC11cGxvYWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NDVcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTQ5XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTgwOVwiLFxuICAgICAgXCJuYW1lXCI6IFwiY2xvdWQtZG93bmxvYWQtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjbG91ZC1kb3dubG9hZC1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NDZcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTUwXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTgxMFwiLFxuICAgICAgXCJuYW1lXCI6IFwiY2xvdWQtZG93bmxvYWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNsb3VkLWRvd25sb2FkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjQ3XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk1MVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4MTFcIixcbiAgICAgIFwibmFtZVwiOiBcImNsb3VkLXVwbG9hZC1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNsb3VkLXVwbG9hZC1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NDhcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTUyXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTgxM1wiLFxuICAgICAgXCJuYW1lXCI6IFwicmVkb1wiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicmVkb1wiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY0YVwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NTRcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODE0XCIsXG4gICAgICBcIm5hbWVcIjogXCJpbWFnZXMtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJpbWFnZXMtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjRiXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk1NVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4MTVcIixcbiAgICAgIFwibmFtZVwiOiBcInVuZG8tZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJ1bmRvLWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY0Y1wiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NTZcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODE2XCIsXG4gICAgICBcIm5hbWVcIjogXCJtb3JlXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJtb3JlXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjRkXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk1N1xuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4MTdcIixcbiAgICAgIFwibmFtZVwiOiBcIm1vcmUtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJtb3JlLWZpbGxlZFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY0ZVwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NThcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODE4XCIsXG4gICAgICBcIm5hbWVcIjogXCJ1bmRvXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJ1bmRvXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjRmXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk1OVxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4MTlcIixcbiAgICAgIFwibmFtZVwiOiBcImltYWdlc1wiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiaW1hZ2VzXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjUwXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk2MFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4MjFcIixcbiAgICAgIFwibmFtZVwiOiBcInBhcGVyY2xpcFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicGFwZXJjbGlwXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjUyXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk2MlxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4MjJcIixcbiAgICAgIFwibmFtZVwiOiBcInNldHRpbmdzXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJzZXR0aW5nc1wiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY1M1wiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NjNcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODIzXCIsXG4gICAgICBcIm5hbWVcIjogXCJzZWFyY2hcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInNlYXJjaFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY1NFwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NjRcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODI0XCIsXG4gICAgICBcIm5hbWVcIjogXCJyZWRvLWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicmVkby1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NTVcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTY1XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg0MTcwMlwiLFxuICAgICAgXCJuYW1lXCI6IFwibGlzdFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibGlzdFwiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY0NFwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NDhcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODQxNDg5XCIsXG4gICAgICBcIm5hbWVcIjogXCJtYWlsLW9wZW4tZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJtYWlsLW9wZW4tZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjNhXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NDE0OTFcIixcbiAgICAgIFwibmFtZVwiOiBcImhhbmQtdGh1bWJzZG93bi1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImhhbmQtZG93bi1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2M2NcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTQwXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg0MTQ5MlwiLFxuICAgICAgXCJuYW1lXCI6IFwiaGFuZC10aHVtYnNkb3duXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJoYW5kLWRvd25cIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2M2RcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg0MTQ5M1wiLFxuICAgICAgXCJuYW1lXCI6IFwiaGFuZC10aHVtYnN1cC1maWxsZWRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImhhbmQtdXAtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjNlXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NDE0OTRcIixcbiAgICAgIFwibmFtZVwiOiBcImhhbmQtdGh1bWJzdXBcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImhhbmQtdXBcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2M2ZcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTQzXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg0MTQ5NlwiLFxuICAgICAgXCJuYW1lXCI6IFwiaGVhcnQtZmlsbGVkXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJoZWFydC1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NDFcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTQ1XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg0MTQ5OFwiLFxuICAgICAgXCJuYW1lXCI6IFwibWFpbC1vcGVuXCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJtYWlsLW9wZW5cIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NDNcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTQ3XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDg0MTQ4OFwiLFxuICAgICAgXCJuYW1lXCI6IFwiaGVhcnRcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImhlYXJ0XCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjM5XCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4Mzk5NjNcIixcbiAgICAgIFwibmFtZVwiOiBcImxvb3BcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImxvb3BcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2MzNcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTMxXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDgzOTg2NlwiLFxuICAgICAgXCJuYW1lXCI6IFwicHVsbGRvd25cIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInB1bGxkb3duXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjMyXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODkzMFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4MTM3OThcIixcbiAgICAgIFwibmFtZVwiOiBcInNjYW5cIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInNjYW5cIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2MmFcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTIyXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDgxMzc4NlwiLFxuICAgICAgXCJuYW1lXCI6IFwiYmFyc1wiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiYmFyc1wiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTYyN1wiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5MTlcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODEzNzg4XCIsXG4gICAgICBcIm5hbWVcIjogXCJjYXJ0LWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2FydC1maWxsZWRcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2MjlcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTIxXG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDgxMzc5MFwiLFxuICAgICAgXCJuYW1lXCI6IFwiY2hlY2tib3hcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNoZWNrYm94XCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjJiXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODkyM1xuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4MTM3OTFcIixcbiAgICAgIFwibmFtZVwiOiBcImNoZWNrYm94LWZpbGxlZFwiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2hlY2tib3gtZmlsbGVkXCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjJjXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODkyNFxuICAgIH0sXG4gICAge1xuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4MTM3OTRcIixcbiAgICAgIFwibmFtZVwiOiBcInNob3BcIixcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInNob3BcIixcbiAgICAgIFwidW5pY29kZVwiOiBcImU2MmZcIixcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTI3XG4gICAgfSxcbiAgICB7XG4gICAgICBcImljb25faWRcIjogXCIyNDgxMzc5NVwiLFxuICAgICAgXCJuYW1lXCI6IFwiaGVhZHBob25lc1wiLFxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiaGVhZHBob25lc1wiLFxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTYzMFwiLFxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5MjhcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODEzNzk2XCIsXG4gICAgICBcIm5hbWVcIjogXCJjYXJ0XCIsXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjYXJ0XCIsXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjMxXCIsXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODkyOVxuICAgIH1cbiAgXVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///22\n");
  861. /***/ }),
  862. /* 23 */
  863. /*!****************************************************************************************************************************************!*\
  864. !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue?vue&type=script&lang=js& ***!
  865. \****************************************************************************************************************************************/
  866. /*! no static exports found */
  867. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  868. "use strict";
  869. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-easyinput.vue?vue&type=script&lang=js& */ 24);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQXFvQixDQUFnQiwybkJBQUcsRUFBQyIsImZpbGUiOiIyMy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vdW5pLWVhc3lpbnB1dC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vdW5pLWVhc3lpbnB1dC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///23\n");
  870. /***/ }),
  871. /* 24 */
  872. /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  873. !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue?vue&type=script&lang=js& ***!
  874. \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  875. /*! no static exports found */
  876. /***/ (function(module, exports, __webpack_require__) {
  877. "use strict";
  878. eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/**\r\n * Easyinput 输入框\r\n * @description 此组件可以实现表单的输入与校验,包括 \"text\" 和 \"textarea\" 类型。\r\n * @tutorial https://ext.dcloud.net.cn/plugin?id=3455\r\n * @property {String}\tvalue\t输入内容\r\n * @property {String }\ttype\t输入框的类型(默认text) password/text/textarea/..\r\n * \t@value text\t\t\t文本输入键盘\r\n * \t@value textarea\t多行文本输入键盘\r\n * \t@value password\t密码输入键盘\r\n * \t@value number\t\t数字输入键盘,注意iOS上app-vue弹出的数字键盘并非9宫格方式\r\n * \t@value idcard\t\t身份证输入键盘,信、支付宝、百度、QQ小程序\r\n * \t@value digit\t\t带小数点的数字键盘\t,App的nvue页面、微信、支付宝、百度、头条、QQ小程序支持\r\n * @property {Boolean}\tclearable\t是否显示右侧清空内容的图标控件,点击可清空输入框内容(默认true)\r\n * @property {Boolean}\tautoHeight\t是否自动增高输入区域,type为textarea时有效(默认true)\r\n * @property {String }\tplaceholder\t输入框的提示文字\r\n * @property {String }\tplaceholderStyle\tplaceholder的样式(内联样式,字符串),如\"color: #ddd\"\r\n * @property {Boolean}\tfocus\t是否自动获得焦点(默认false)\r\n * @property {Boolean}\tdisabled\t是否禁用(默认false)\r\n * @property {Number }\tmaxlength\t最大输入长度,设置为 -1 的时候不限制最大长度(默认140)\r\n * @property {String }\tconfirmType\t设置键盘右下角按钮的文字,仅在type=\"text\"时生效(默认done)\r\n * @property {Number }\tclearSize\t清除图标的大小,单位px(默认15)\r\n * @property {String}\tprefixIcon\t输入框头部图标\r\n * @property {String}\tsuffixIcon\t输入框尾部图标\r\n * @property {String}\tprimaryColor\t设置主题色(默认#2979ff)\r\n * @property {Boolean}\ttrim\t是否自动去除两端的空格\r\n * @value both\t去除两端空格\r\n * @value left\t去除左侧空格\r\n * @value right\t去除右侧空格\r\n * @value start\t去除左侧空格\r\n * @value end\t\t去除右侧空格\r\n * @value all\t\t去除全部空格\r\n * @value none\t不去除空格\r\n * @property {Boolean}\tinputBorder\t是否显示input输入框的边框(默认true)\r\n * @property {Boolean}\tpasswordIcon\ttype=password时是否显示小眼睛图标\r\n * @property {Object}\tstyles\t自定义颜色\r\n * @event {Function}\tinput\t输入框内容发生变化时触发\r\n * @event {Function}\tfocus\t输入框获得焦点时触发\r\n * @event {Function}\tblur\t输入框失去焦点时触发\r\n * @event {Function}\tconfirm\t点击完成按钮时触发\r\n * @event {Function}\ticonClick\t点击图标时触发\r\n * @slot prefixIcon 输入框头部插槽\r\n * @slot suffixIcon 输入框尾部插槽\r\n * @example <uni-easyinput v-model=\"mobile\"></uni-easyinput>\r\n */\nfunction obj2strClass(obj) {\n var classess = \"\";\n for (var key in obj) {\n var val = obj[key];\n if (val) {\n classess += \"\".concat(key, \" \");\n }\n }\n return classess;\n}\nfunction obj2strStyle(obj) {\n var style = \"\";\n for (var key in obj) {\n var val = obj[key];\n style += \"\".concat(key, \":\").concat(val, \";\");\n }\n return style;\n}\nvar _default2 = {\n name: \"uni-easyinput\",\n emits: [\"click\", \"iconClick\", \"update:modelValue\", \"input\", \"focus\", \"blur\", \"confirm\", \"clear\", \"eyes\", \"change\"],\n model: {\n prop: \"modelValue\",\n event: \"update:modelValue\"\n },\n options: {\n virtualHost: true\n },\n inject: {\n form: {\n from: \"uniForm\",\n default: null\n },\n formItem: {\n from: \"uniFormItem\",\n default: null\n }\n },\n props: {\n name: String,\n value: [Number, String],\n modelValue: [Number, String],\n type: {\n type: String,\n default: \"text\"\n },\n clearable: {\n type: Boolean,\n default: true\n },\n autoHeight: {\n type: Boolean,\n default: false\n },\n placeholder: {\n type: String,\n default: \" \"\n },\n placeholderStyle: String,\n focus: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n maxlength: {\n type: [Number, String],\n default: 140\n },\n confirmType: {\n type: String,\n default: \"done\"\n },\n clearSize: {\n type: [Number, String],\n default: 24\n },\n inputBorder: {\n type: Boolean,\n default: true\n },\n prefixIcon: {\n type: String,\n default: \"\"\n },\n suffixIcon: {\n type: String,\n default: \"\"\n },\n trim: {\n type: [Boolean, String],\n default: true\n },\n passwordIcon: {\n type: Boolean,\n default: true\n },\n primaryColor: {\n type: String,\n default: \"#2979ff\"\n },\n styles: {\n type: Object,\n default: function _default() {\n return {\n color: \"#333\",\n disableColor: \"#F7F6F6\",\n borderColor: \"#e5e5e5\"\n };\n }\n },\n errorMessage: {\n type: [String, Boolean],\n default: \"\"\n }\n },\n data: function data() {\n return {\n focused: false,\n val: \"\",\n showMsg: \"\",\n border: false,\n isFirstBorder: false,\n showClearIcon: false,\n showPassword: false,\n focusShow: false,\n localMsg: \"\"\n };\n },\n computed: {\n // 输入框内是否有值\n isVal: function isVal() {\n var val = this.val;\n // fixed by mehaotian 处理值为0的情况,字符串0不在处理范围\n if (val || val === 0) {\n return true;\n }\n return false;\n },\n msg: function msg() {\n // console.log('computed', this.form, this.formItem);\n // if (this.form) {\n // \treturn this.errorMessage || this.formItem.errMsg;\n // }\n // TODO 处理头条 formItem 中 errMsg 不更新的问题\n return this.localMsg || this.errorMessage;\n },\n // 因为uniapp的input组件的maxlength组件必须要数值,这里转为数值,用户可以传入字符串数值\n inputMaxlength: function inputMaxlength() {\n return Number(this.maxlength);\n },\n // 处理外层样式的style\n boxStyle: function boxStyle() {\n return \"color:\".concat(this.inputBorder && this.msg ? \"#e43d33\" : this.styles.color, \";\");\n },\n // input 内容的类和样式处理\n inputContentClass: function inputContentClass() {\n return obj2strClass({\n \"is-input-border\": this.inputBorder,\n \"is-input-error-border\": this.inputBorder && this.msg,\n \"is-textarea\": this.type === \"textarea\",\n \"is-disabled\": this.disabled\n });\n },\n inputContentStyle: function inputContentStyle() {\n var focusColor = this.focusShow ? this.primaryColor : this.styles.borderColor;\n var borderColor = this.inputBorder && this.msg ? \"#dd524d\" : focusColor;\n return obj2strStyle({\n \"border-color\": borderColor || \"#e5e5e5\",\n \"background-color\": this.disabled ? this.styles.disableColor : this.styles.backgroundColor\n });\n },\n // input右侧样式\n inputStyle: function inputStyle() {\n var paddingRight = this.type === \"password\" || this.clearable || this.prefixIcon ? \"\" : \"10px\";\n return obj2strStyle({\n \"padding-right\": paddingRight,\n \"padding-left\": this.prefixIcon ? \"\" : \"10px\"\n });\n }\n },\n watch: {\n value: function value(newVal) {\n this.val = newVal;\n },\n modelValue: function modelValue(newVal) {\n this.val = newVal;\n },\n focus: function focus(newVal) {\n var _this = this;\n this.$nextTick(function () {\n _this.focused = _this.focus;\n _this.focusShow = _this.focus;\n });\n }\n },\n created: function created() {\n var _this2 = this;\n this.init();\n // TODO 处理头条vue3 computed 不监听 inject 更改的问题(formItem.errMsg)\n if (this.form && this.formItem) {\n this.$watch(\"formItem.errMsg\", function (newVal) {\n _this2.localMsg = newVal;\n });\n }\n },\n mounted: function mounted() {\n var _this3 = this;\n this.$nextTick(function () {\n _this3.focused = _this3.focus;\n _this3.focusShow = _this3.focus;\n });\n },\n methods: {\n /**\r\n * 初始化变量值\r\n */\n init: function init() {\n if (this.value || this.value === 0) {\n this.val = this.value;\n } else if (this.modelValue || this.modelValue === 0) {\n this.val = this.modelValue;\n } else {\n this.val = null;\n }\n },\n /**\r\n * 点击图标时触发\r\n * @param {Object} type\r\n */\n onClickIcon: function onClickIcon(type) {\n this.$emit(\"iconClick\", type);\n },\n /**\r\n * 显示隐藏内容,密码框时生效\r\n */\n onEyes: function onEyes() {\n this.showPassword = !this.showPassword;\n this.$emit(\"eyes\", this.showPassword);\n },\n /**\r\n * 输入时触发\r\n * @param {Object} event\r\n */\n onInput: function onInput(event) {\n var value = event.detail.value;\n // 判断是否去除空格\n if (this.trim) {\n if (typeof this.trim === \"boolean\" && this.trim) {\n value = this.trimStr(value);\n }\n if (typeof this.trim === \"string\") {\n value = this.trimStr(value, this.trim);\n }\n }\n if (this.errMsg) this.errMsg = \"\";\n this.val = value;\n // TODO 兼容 vue2\n this.$emit(\"input\", value);\n // TODO 兼容 vue3\n this.$emit(\"update:modelValue\", value);\n },\n /**\r\n * 外部调用方法\r\n * 获取焦点时触发\r\n * @param {Object} event\r\n */\n onFocus: function onFocus() {\n var _this4 = this;\n this.$nextTick(function () {\n _this4.focused = true;\n });\n this.$emit(\"focus\", null);\n },\n _Focus: function _Focus(event) {\n this.focusShow = true;\n this.$emit(\"focus\", event);\n },\n /**\r\n * 外部调用方法\r\n * 失去焦点时触发\r\n * @param {Object} event\r\n */\n onBlur: function onBlur() {\n this.focused = false;\n this.$emit(\"focus\", null);\n },\n _Blur: function _Blur(event) {\n var value = event.detail.value;\n this.focusShow = false;\n this.$emit(\"blur\", event);\n // 根据类型返回值,在event中获取的值理论上讲都是string\n this.$emit(\"change\", this.val);\n // 失去焦点时参与表单校验\n if (this.form && this.formItem) {\n var validateTrigger = this.form.validateTrigger;\n if (validateTrigger === \"blur\") {\n this.formItem.onFieldChange();\n }\n }\n },\n /**\r\n * 按下键盘的发送键\r\n * @param {Object} e\r\n */\n onConfirm: function onConfirm(e) {\n this.$emit(\"confirm\", this.val);\n this.$emit(\"change\", this.val);\n },\n /**\r\n * 清理内容\r\n * @param {Object} event\r\n */\n onClear: function onClear(event) {\n this.val = \"\";\n // TODO 兼容 vue2\n this.$emit(\"input\", \"\");\n // TODO 兼容 vue2\n // TODO 兼容 vue3\n this.$emit(\"update:modelValue\", \"\");\n // 点击叉号触发\n this.$emit(\"clear\");\n },\n /**\r\n * 去除空格\r\n */\n trimStr: function trimStr(str) {\n var pos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"both\";\n if (pos === \"both\") {\n return str.trim();\n } else if (pos === \"left\") {\n return str.trimLeft();\n } else if (pos === \"right\") {\n return str.trimRight();\n } else if (pos === \"start\") {\n return str.trimStart();\n } else if (pos === \"end\") {\n return str.trimEnd();\n } else if (pos === \"all\") {\n return str.replace(/\\s+/g, \"\");\n } else if (pos === \"none\") {\n return str;\n }\n return str;\n }\n }\n};\nexports.default = _default2;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLWVhc3lpbnB1dC9jb21wb25lbnRzL3VuaS1lYXN5aW5wdXQvdW5pLWVhc3lpbnB1dC52dWUiXSwibmFtZXMiOlsiY2xhc3Nlc3MiLCJzdHlsZSIsIm5hbWUiLCJlbWl0cyIsIm1vZGVsIiwicHJvcCIsImV2ZW50Iiwib3B0aW9ucyIsInZpcnR1YWxIb3N0IiwiaW5qZWN0IiwiZm9ybSIsImZyb20iLCJkZWZhdWx0IiwiZm9ybUl0ZW0iLCJwcm9wcyIsInZhbHVlIiwibW9kZWxWYWx1ZSIsInR5cGUiLCJjbGVhcmFibGUiLCJhdXRvSGVpZ2h0IiwicGxhY2Vob2xkZXIiLCJwbGFjZWhvbGRlclN0eWxlIiwiZm9jdXMiLCJkaXNhYmxlZCIsIm1heGxlbmd0aCIsImNvbmZpcm1UeXBlIiwiY2xlYXJTaXplIiwiaW5wdXRCb3JkZXIiLCJwcmVmaXhJY29uIiwic3VmZml4SWNvbiIsInRyaW0iLCJwYXNzd29yZEljb24iLCJwcmltYXJ5Q29sb3IiLCJzdHlsZXMiLCJjb2xvciIsImRpc2FibGVDb2xvciIsImJvcmRlckNvbG9yIiwiZXJyb3JNZXNzYWdlIiwiZGF0YSIsImZvY3VzZWQiLCJ2YWwiLCJzaG93TXNnIiwiYm9yZGVyIiwiaXNGaXJzdEJvcmRlciIsInNob3dDbGVhckljb24iLCJzaG93UGFzc3dvcmQiLCJmb2N1c1Nob3ciLCJsb2NhbE1zZyIsImNvbXB1dGVkIiwiaXNWYWwiLCJtc2ciLCJpbnB1dE1heGxlbmd0aCIsImJveFN0eWxlIiwiaW5wdXRDb250ZW50Q2xhc3MiLCJpbnB1dENvbnRlbnRTdHlsZSIsImlucHV0U3R5bGUiLCJ3YXRjaCIsImNyZWF0ZWQiLCJtb3VudGVkIiwibWV0aG9kcyIsImluaXQiLCJvbkNsaWNrSWNvbiIsIm9uRXllcyIsIm9uSW5wdXQiLCJvbkZvY3VzIiwiX0ZvY3VzIiwib25CbHVyIiwiX0JsdXIiLCJvbkNvbmZpcm0iLCJvbkNsZWFyIiwidHJpbVN0ciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtJQUNBO0lBQ0E7TUFDQUE7SUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtJQUNBO0lBQ0FDO0VBQ0E7RUFDQTtBQUNBO0FBQUEsZ0JBQ0E7RUFDQUM7RUFDQUMsUUFDQSxTQUNBLGFBQ0EscUJBQ0EsU0FDQSxTQUNBLFFBQ0EsV0FDQSxTQUNBLFFBQ0EsU0FDQTtFQUNBQztJQUNBQztJQUNBQztFQUNBO0VBQ0FDO0lBQ0FDO0VBQ0E7RUFDQUM7SUFDQUM7TUFDQUM7TUFDQUM7SUFDQTtJQUNBQztNQUNBRjtNQUNBQztJQUNBO0VBQ0E7RUFDQUU7SUFDQVo7SUFDQWE7SUFDQUM7SUFDQUM7TUFDQUE7TUFDQUw7SUFDQTtJQUNBTTtNQUNBRDtNQUNBTDtJQUNBO0lBQ0FPO01BQ0FGO01BQ0FMO0lBQ0E7SUFDQVE7TUFDQUg7TUFDQUw7SUFDQTtJQUNBUztJQUNBQztNQUNBTDtNQUNBTDtJQUNBO0lBQ0FXO01BQ0FOO01BQ0FMO0lBQ0E7SUFDQVk7TUFDQVA7TUFDQUw7SUFDQTtJQUNBYTtNQUNBUjtNQUNBTDtJQUNBO0lBQ0FjO01BQ0FUO01BQ0FMO0lBQ0E7SUFDQWU7TUFDQVY7TUFDQUw7SUFDQTtJQUNBZ0I7TUFDQVg7TUFDQUw7SUFDQTtJQUNBaUI7TUFDQVo7TUFDQUw7SUFDQTtJQUNBa0I7TUFDQWI7TUFDQUw7SUFDQTtJQUNBbUI7TUFDQWQ7TUFDQUw7SUFDQTtJQUNBb0I7TUFDQWY7TUFDQUw7SUFDQTtJQUNBcUI7TUFDQWhCO01BQ0FMO1FBQ0E7VUFDQXNCO1VBQ0FDO1VBQ0FDO1FBQ0E7TUFDQTtJQUNBO0lBQ0FDO01BQ0FwQjtNQUNBTDtJQUNBO0VBQ0E7RUFDQTBCO0lBQ0E7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0E7UUFDQTtNQUNBO01BQ0E7SUFDQTtJQUVBQztNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBRUE7SUFDQUM7TUFDQSx1QkFDQTtJQUVBO0lBQ0E7SUFDQUM7TUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBLGtDQUNBLG9CQUNBO01BQ0E7TUFDQTtRQUNBO1FBQ0Esb0NBQ0EsMkJBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQSxtQkFDQSxnRUFDQSxLQUNBO01BQ0E7UUFDQTtRQUNBO01BQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0F6QztNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0FNO01BQUE7TUFDQTtRQUNBO1FBQ0E7TUFDQTtJQUNBO0VBQ0E7RUFDQW1DO0lBQUE7SUFDQTtJQUNBO0lBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQUE7SUFDQTtNQUNBO01BQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7QUFDQTtBQUNBO0lBQ0FDO01BQ0E7UUFDQTtNQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBO0FBQ0E7QUFDQTtBQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUVBO0FBQ0E7QUFDQTtJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUVBO0FBQ0E7QUFDQTtBQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO1FBQ0E7VUFDQWhEO1FBQ0E7UUFDQTtVQUNBQTtRQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDQWlEO01BQUE7TUFDQTtRQUNBO01BQ0E7TUFDQTtJQUNBO0lBRUFDO01BQ0E7TUFDQTtJQUNBO0lBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0E7UUFDQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBRUE7QUFDQTtBQUNBO0FBQ0E7SUFDQUM7TUFDQTtNQUNBO0lBQ0E7SUFFQTtBQUNBO0FBQ0E7QUFDQTtJQUNBQztNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUVBO0FBQ0E7QUFDQTtJQUNBQztNQUFBO01BQ0E7UUFDQTtNQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7UUFDQTtNQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7UUFDQTtNQUNBO01BQ0E7SUFDQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiIyNC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlld1xyXG5cdFx0Y2xhc3M9XCJ1bmktZWFzeWlucHV0XCJcclxuXHRcdDpjbGFzcz1cInsgJ3VuaS1lYXN5aW5wdXQtZXJyb3InOiBtc2cgfVwiXHJcblx0XHQ6c3R5bGU9XCJib3hTdHlsZVwiXHJcblx0PlxyXG5cdFx0PHZpZXdcclxuXHRcdFx0Y2xhc3M9XCJ1bmktZWFzeWlucHV0X19jb250ZW50XCJcclxuXHRcdFx0OmNsYXNzPVwiaW5wdXRDb250ZW50Q2xhc3NcIlxyXG5cdFx0XHQ6c3R5bGU9XCJpbnB1dENvbnRlbnRTdHlsZVwiXHJcblx0XHQ+XHJcblx0XHRcdDxzbG90IG5hbWU9XCJwcmVmaXhJY29uXCI+XHJcblx0XHRcdFx0PHVuaS1pY29uc1xyXG5cdFx0XHRcdFx0di1pZj1cInByZWZpeEljb25cIlxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJjb250ZW50LWNsZWFyLWljb25cIlxyXG5cdFx0XHRcdFx0OnR5cGU9XCJwcmVmaXhJY29uXCJcclxuXHRcdFx0XHRcdGNvbG9yPVwiI2MwYzRjY1wiXHJcblx0XHRcdFx0XHRAY2xpY2s9XCJvbkNsaWNrSWNvbigncHJlZml4JylcIlxyXG5cdFx0XHRcdFx0c2l6ZT1cIjIyXCJcclxuXHRcdFx0XHQ+PC91bmktaWNvbnM+XHJcblx0XHRcdDwvc2xvdD5cclxuXHRcdFx0PHRleHRhcmVhXHJcblx0XHRcdFx0di1pZj1cInR5cGUgPT09ICd0ZXh0YXJlYSdcIlxyXG5cdFx0XHRcdGNsYXNzPVwidW5pLWVhc3lpbnB1dF9fY29udGVudC10ZXh0YXJlYVwiXHJcblx0XHRcdFx0OmNsYXNzPVwieyAnaW5wdXQtcGFkZGluZyc6IGlucHV0Qm9yZGVyIH1cIlxyXG5cdFx0XHRcdDpuYW1lPVwibmFtZVwiXHJcblx0XHRcdFx0OnZhbHVlPVwidmFsXCJcclxuXHRcdFx0XHQ6cGxhY2Vob2xkZXI9XCJwbGFjZWhvbGRlclwiXHJcblx0XHRcdFx0OnBsYWNlaG9sZGVyU3R5bGU9XCJwbGFjZWhvbGRlclN0eWxlXCJcclxuXHRcdFx0XHQ6ZGlzYWJsZWQ9XCJkaXNhYmxlZFwiXHJcblx0XHRcdFx0cGxhY2Vob2xkZXItY2xhc3M9XCJ1bmktZWFzeWlucHV0X19wbGFjZWhvbGRlci1jbGFzc1wiXHJcblx0XHRcdFx0Om1heGxlbmd0aD1cImlucHV0TWF4bGVuZ3RoXCJcclxuXHRcdFx0XHQ6Zm9jdXM9XCJmb2N1c2VkXCJcclxuXHRcdFx0XHQ6YXV0b0hlaWdodD1cImF1dG9IZWlnaHRcIlxyXG5cdFx0XHRcdEBpbnB1dD1cIm9uSW5wdXRcIlxyXG5cdFx0XHRcdEBibHVyPVwiX0JsdXJcIlxyXG5cdFx0XHRcdEBmb2N1cz1cIl9Gb2N1c1wiXHJcblx0XHRcdFx0QGNvbmZpcm09XCJvbkNvbmZpcm1cIlxyXG5cdFx0XHQ+PC90ZXh0YXJlYT5cclxuXHRcdFx0PGlucHV0XHJcblx0XHRcdFx0di1lbHNlXHJcblx0XHRcdFx0OnR5cGU9XCJ0eXBlID09PSAncGFzc3dvcmQnID8gJ3RleHQnIDogdHlwZVwiXHJcblx0XHRcdFx0Y2xhc3M9XCJ1bmktZWFzeWlucHV0X19jb250ZW50LWlucHV0XCJcclxuXHRcdFx0XHQ6c3R5bGU9XCJpbnB1dFN0eWxlXCJcclxuXHRcdFx0XHQ6bmFtZT1cIm5hbWVcIlxyXG5cdFx0XHRcdDp2YWx1ZT1cInZhbFwiXHJcblx0XHRcdFx0OnBhc3N3b3JkPVwiIXNob3dQYXNzd29yZCAmJiB0eXBlID09PSAncGFzc3dvcmQnXCJcclxuXHRcdFx0XHQ6cGxhY2Vob2xkZXI9XCJwbGFjZWhvbGRlclwiXHJcblx0XHRcdFx0OnBsYWNlaG9sZGVyU3R5bGU9XCJwbGFjZWhvbGRlclN0eWxlXCJcclxuXHRcdFx0XHRwbGFjZWhvbGRlci1jbGFzcz1cInVuaS1lYXN5aW5wdXRfX3BsYWNlaG9sZGVyLWNsYXNzXCJcclxuXHRcdFx0XHQ6ZGlzYWJsZWQ9XCJkaXNhYmxlZFwiXHJcblx0XHRcdFx0Om1heGxlbmd0aD1cImlucHV0TWF4bGVuZ3RoXCJcclxuXHRcdFx0XHQ6Zm9jdXM9XCJmb2N1c2VkXCJcclxuXHRcdFx0XHQ6Y29uZmlybVR5cGU9XCJjb25maXJtVHlwZVwiXHJcblx0XHRcdFx0QGZvY3VzPVwiX0ZvY3VzXCJcclxuXHRcdFx0XHRAYmx1cj1cIl9CbHVyXCJcclxuXHRcdFx0XHRAaW5wdXQ9XCJvbklucHV0XCJcclxuXHRcdFx0XHRAY29uZmlybT1cIm9uQ29uZmlybVwiXHJcblx0XHRcdC8+XHJcblx0XHRcdDx0ZW1wbGF0ZSB2LWlmPVwidHlwZSA9PT0gJ3Bhc3N3b3JkJyAmJiBwYXNzd29yZEljb25cIj5cclxuXHRcdFx0XHQ8IS0tIOW8gOWQr+WvhueggeaXtuaYvuekuuWwj+ecvOedmyAtLT5cclxuXHRcdFx0XHQ8dW5pLWljb25zXHJcblx0XHRcdFx0XHR2LWlmPVwiaXNWYWxcIlxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJjb250ZW50LWNsZWFyLWljb25cIlxyXG5cdFx0XHRcdFx0OmNsYXNzPVwieyAnaXMtdGV4dGFyZWEtaWNvbic6IHR5cGUgPT09ICd0ZXh0YXJlYScgfVwiXHJcblx0XHRcdFx0XHQ6dHlwZT1cInNob3dQYXNzd29yZCA/ICdleWUtc2xhc2gtZmlsbGVkJyA6ICdleWUtZmlsbGVkJ1wiXHJcblx0XHRcdFx0XHQ6c2l6ZT1cIjIyXCJcclxuXHRcdFx0XHRcdDpjb2xvcj1cImZvY3VzU2hvdyA/IHByaW1hcnlDb2xvciA6ICcjYzBjNGNjJ1wiXHJcblx0XHRcdFx0XHRAY2xpY2s9XCJvbkV5ZXNcIlxyXG5cdFx0XHRcdD5cclxuXHRcdFx0XHQ8L3VuaS1pY29ucz5cclxuXHRcdFx0PC90ZW1wbGF0ZT5cclxuXHRcdFx0PHRlbXBsYXRlIHYtZWxzZS1pZj1cInN1ZmZpeEljb24gfHwgJHNsb3RzLnN1ZmZpeEljb25cIj5cclxuXHRcdFx0XHQ8c2xvdCBuYW1lPVwic3VmZml4SWNvblwiPlxyXG5cdFx0XHRcdFx0PHVuaS1pY29uc1xyXG5cdFx0XHRcdFx0XHR2LWlmPVwic3VmZml4SWNvblwiXHJcblx0XHRcdFx0XHRcdGNsYXNzPVwiY29udGVudC1jbGVhci1pY29uXCJcclxuXHRcdFx0XHRcdFx0OnR5cGU9XCJzdWZmaXhJY29uXCJcclxuXHRcdFx0XHRcdFx0Y29sb3I9XCIjYzBjNGNjXCJcclxuXHRcdFx0XHRcdFx0QGNsaWNrPVwib25DbGlja0ljb24oJ3N1ZmZpeCcpXCJcclxuXHRcdFx0XHRcdFx0c2l6ZT1cIjIyXCJcclxuXHRcdFx0XHRcdD48L3VuaS1pY29ucz5cclxuXHRcdFx0XHQ8L3Nsb3Q+XHJcblx0XHRcdDwvdGVtcGxhdGU+XHJcblx0XHRcdDx0ZW1wbGF0ZSB2LWVsc2U+XHJcblx0XHRcdFx0PHVuaS1pY29uc1xyXG5cdFx0XHRcdFx0di1pZj1cImNsZWFyYWJsZSAmJiBpc1ZhbCAmJiAhZGlzYWJsZWQgJiYgdHlwZSAhPT0gJ3RleHRhcmVhJ1wiXHJcblx0XHRcdFx0XHRjbGFzcz1cImNvbnRlbnQtY2xlYXItaWNvblwiXHJcblx0XHRcdFx0XHQ6Y2xhc3M9XCJ7ICdpcy10ZXh0YXJlYS1pY29uJzogdHlwZSA9PT0gJ3RleHRhcmVhJyB9XCJcclxuXHRcdFx0XHRcdHR5cGU9XCJjbGVhclwiXHJcblx0XHRcdFx0XHQ6c2l6ZT1cImNsZWFyU2l6ZVwiXHJcblx0XHRcdFx0XHQ6Y29sb3I9XCJtc2cgPyAnI2RkNTI0ZCcgOiBmb2N1c1Nob3cgPyBwcmltYXJ5Q29sb3IgOiAnI2MwYzRjYydcIlxyXG5cdFx0XHRcdFx0QGNsaWNrPVwib25DbGVhclwiXHJcblx0XHRcdFx0PjwvdW5pLWljb25zPlxyXG5cdFx0XHQ8L3RlbXBsYXRlPlxyXG5cdFx0XHQ8c2xvdCBuYW1lPVwicmlnaHRcIj48L3Nsb3Q+XHJcblx0XHQ8L3ZpZXc+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuLyoqXHJcbiAqIEVhc3lpbnB1dCDovpPlhaXmoYZcclxuICogQGRlc2NyaXB0aW9uIOatpOe7hOS7tuWPr+S7peWunueOsOihqOWNleeahOi+k+WFpeS4juagoemqjO+8jOWMheaLrCBcInRleHRcIiDlkowgXCJ0ZXh0YXJlYVwiIOexu+Wei+OAglxyXG4gKiBAdHV0b3JpYWwgaHR0cHM6Ly9leHQuZGNsb3VkLm5ldC5jbi9wbHVnaW4/aWQ9MzQ1NVxyXG4gKiBAcHJvcGVydHkge1N0cmluZ31cdHZhbHVlXHTovpPlhaXlhoXlrrlcclxuICogQHByb3BlcnR5IHtTdHJpbmcgfVx0dHlwZVx06L6T5YWl5qGG55qE57G75Z6L77yI6buY6K6kdGV4dO+8iSBwYXNzd29yZC90ZXh0L3RleHRhcmVhLy4uXHJcbiAqIFx0QHZhbHVlIHRleHRcdFx0XHTmlofmnKzovpPlhaXplK7nm5hcclxuICogXHRAdmFsdWUgdGV4dGFyZWFcdOWkmuihjOaWh+acrOi+k+WFpemUruebmFxyXG4gKiBcdEB2YWx1ZSBwYXNzd29yZFx05a+G56CB6L6T5YWl6ZSu55uYXHJcbiAqIFx0QHZhbHVlIG51bWJlclx0XHTmlbDlrZfovpPlhaXplK7nm5jvvIzms6jmhI9pT1PkuIphcHAtdnVl5by55Ye655qE5pWw5a2X6ZSu55uY5bm26Z2eOeWuq+agvOaWueW8j1xyXG4gKiBcdEB2YWx1ZSBpZGNhcmRcdFx06Lqr5Lu96K+B6L6T5YWl6ZSu55uY77yM5L+h44CB5pSv5LuY5a6d44CB55m+5bqm44CBUVHlsI/nqIvluo9cclxuICogXHRAdmFsdWUgZGlnaXRcdFx05bim5bCP5pWw54K555qE5pWw5a2X6ZSu55uYXHTvvIxBcHDnmoRudnVl6aG16Z2i44CB5b6u5L+h44CB5pSv5LuY5a6d44CB55m+5bqm44CB5aS05p2h44CBUVHlsI/nqIvluo/mlK/mjIFcclxuICogQHByb3BlcnR5IHtCb29sZWFufVx0Y2xlYXJhYmxlXHTmmK/lkKbmmL7npLrlj7PkvqfmuIXnqbrlhoXlrrnnmoTlm77moIfmjqfku7bvvIzngrnlh7vlj6/muIXnqbrovpPlhaXmoYblhoXlrrnvvIjpu5jorqR0cnVl77yJXHJcbiAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn1cdGF1dG9IZWlnaHRcdOaYr+WQpuiHquWKqOWinumrmOi+k+WFpeWMuuWfn++8jHR5cGXkuLp0ZXh0YXJlYeaXtuacieaViO+8iOm7mOiupHRydWXvvIlcclxuICogQHByb3BlcnR5IHtTdHJpbmcgfVx0cGxhY2Vob2xkZXJcdOi+k+WFpeahhueahOaPkOekuuaWh+Wtl1xyXG4gKiBAcHJvcGVydHkge1N0cmluZyB9XHRwbGFjZWhvbGRlclN0eWxlXHRwbGFjZWhvbGRlcueahOagt+W8jyjlhoXogZTmoLflvI/vvIzlrZfnrKbkuLIp77yM5aaCXCJjb2xvcjogI2RkZFwiXHJcbiAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn1cdGZvY3VzXHTmmK/lkKboh6rliqjojrflvpfnhKbngrnvvIjpu5jorqRmYWxzZe+8iVxyXG4gKiBAcHJvcGVydHkge0Jvb2xlYW59XHRkaXNhYmxlZFx05piv5ZCm56aB55So77yI6buY6K6kZmFsc2XvvIlcclxuICogQHByb3BlcnR5IHtOdW1iZXIgfVx0bWF4bGVuZ3RoXHTmnIDlpKfovpPlhaXplb/luqbvvIzorr7nva7kuLogLTEg55qE5pe25YCZ5LiN6ZmQ5Yi25pyA5aSn6ZW/5bqm77yI6buY6K6kMTQw77yJXHJcbiAqIEBwcm9wZXJ0eSB7U3RyaW5nIH1cdGNvbmZpcm1UeXBlXHTorr7nva7plK7nm5jlj7PkuIvop5LmjInpkq7nmoTmloflrZfvvIzku4XlnKh0eXBlPVwidGV4dFwi5pe255Sf5pWI77yI6buY6K6kZG9uZe+8iVxyXG4gKiBAcHJvcGVydHkge051bWJlciB9XHRjbGVhclNpemVcdOa4hemZpOWbvuagh+eahOWkp+Wwj++8jOWNleS9jXB477yI6buY6K6kMTXvvIlcclxuICogQHByb3BlcnR5IHtTdHJpbmd9XHRwcmVmaXhJY29uXHTovpPlhaXmoYblpLTpg6jlm77moIdcclxuICogQHByb3BlcnR5IHtTdHJpbmd9XHRzdWZmaXhJY29uXHTovpPlhaXmoYblsL7pg6jlm77moIdcclxuICogQHByb3BlcnR5IHtTdHJpbmd9XHRwcmltYXJ5Q29sb3JcdOiuvue9ruS4u+mimOiJsu+8iOm7mOiupCMyOTc5ZmbvvIlcclxuICogQHByb3BlcnR5IHtCb29sZWFufVx0dHJpbVx05piv5ZCm6Ieq5Yqo5Y676Zmk5Lik56uv55qE56m65qC8XHJcbiAqIEB2YWx1ZSBib3RoXHTljrvpmaTkuKTnq6/nqbrmoLxcclxuICogQHZhbHVlIGxlZnRcdOWOu+mZpOW3puS+p+epuuagvFxyXG4gKiBAdmFsdWUgcmlnaHRcdOWOu+mZpOWPs+S+p+epuuagvFxyXG4gKiBAdmFsdWUgc3RhcnRcdOWOu+mZpOW3puS+p+epuuagvFxyXG4gKiBAdmFsdWUgZW5kXHRcdOWOu+mZpOWPs+S+p+epuuagvFxyXG4gKiBAdmFsdWUgYWxsXHRcdOWOu+mZpOWFqOmDqOepuuagvFxyXG4gKiBAdmFsdWUgbm9uZVx05LiN5Y676Zmk56m65qC8XHJcbiAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn1cdGlucHV0Qm9yZGVyXHTmmK/lkKbmmL7npLppbnB1dOi+k+WFpeahhueahOi+ueahhu+8iOm7mOiupHRydWXvvIlcclxuICogQHByb3BlcnR5IHtCb29sZWFufVx0cGFzc3dvcmRJY29uXHR0eXBlPXBhc3N3b3Jk5pe25piv5ZCm5pi+56S65bCP55y8552b5Zu+5qCHXHJcbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fVx0c3R5bGVzXHToh6rlrprkuYnpopzoibJcclxuICogQGV2ZW50IHtGdW5jdGlvbn1cdGlucHV0XHTovpPlhaXmoYblhoXlrrnlj5HnlJ/lj5jljJbml7bop6blj5FcclxuICogQGV2ZW50IHtGdW5jdGlvbn1cdGZvY3VzXHTovpPlhaXmoYbojrflvpfnhKbngrnml7bop6blj5FcclxuICogQGV2ZW50IHtGdW5jdGlvbn1cdGJsdXJcdOi+k+WFpeahhuWkseWOu+eEpueCueaXtuinpuWPkVxyXG4gKiBAZXZlbnQge0Z1bmN0aW9ufVx0Y29uZmlybVx054K55Ye75a6M5oiQ5oyJ6ZKu5pe26Kem5Y+RXHJcbiAqIEBldmVudCB7RnVuY3Rpb259XHRpY29uQ2xpY2tcdOeCueWHu+Wbvuagh+aXtuinpuWPkVxyXG4gKiBAc2xvdCBwcmVmaXhJY29uIOi+k+WFpeahhuWktOmDqOaPkuanvVxyXG4gKiBAc2xvdCBzdWZmaXhJY29uIOi+k+WFpeahhuWwvumDqOaPkuanvVxyXG4gKiBAZXhhbXBsZSA8dW5pLWVhc3lpbnB1dCB2LW1vZGVsPVwibW9iaWxlXCI+PC91bmktZWFzeWlucHV0PlxyXG4gKi9cclxuZnVuY3Rpb24gb2JqMnN0ckNsYXNzKG9iaikge1xyXG5cdGxldCBjbGFzc2VzcyA9IFwiXCI7XHJcblx0Zm9yIChsZXQga2V5IGluIG9iaikge1xyXG5cdFx0Y29uc3QgdmFsID0gb2JqW2tleV07XHJcblx0XHRpZiAodmFsKSB7XHJcblx0XHRcdGNsYXNzZXNzICs9IGAke2tleX0gYDtcclxuXHRcdH1cclxuXHR9XHJcblx0cmV0dXJuIGNsYXNzZXNzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBvYmoyc3RyU3R5bGUob2JqKSB7XHJcblx0bGV0IHN0eWxlID0gXCJcIjtcclxuXHRmb3IgKGxldCBrZXkgaW4gb2JqKSB7XHJcblx0XHRjb25zdCB2YWwgPSBvYmpba2V5XTtcclxuXHRcdHN0eWxlICs9IGAke2tleX06JHt2YWx9O2A7XHJcblx0fVxyXG5cdHJldHVybiBzdHlsZTtcclxufVxyXG5leHBvcnQgZGVmYXVsdCB7XHJcblx0bmFtZTogXCJ1bmktZWFzeWlucHV0XCIsXHJcblx0ZW1pdHM6IFtcclxuXHRcdFwiY2xpY2tcIixcclxuXHRcdFwiaWNvbkNsaWNrXCIsXHJcblx0XHRcInVwZGF0ZTptb2RlbFZhbHVlXCIsXHJcblx0XHRcImlucHV0XCIsXHJcblx0XHRcImZvY3VzXCIsXHJcblx0XHRcImJsdXJcIixcclxuXHRcdFwiY29uZmlybVwiLFxyXG5cdFx0XCJjbGVhclwiLFxyXG5cdFx0XCJleWVzXCIsXHJcblx0XHRcImNoYW5nZVwiLFxyXG5cdF0sXHJcblx0bW9kZWw6IHtcclxuXHRcdHByb3A6IFwibW9kZWxWYWx1ZVwiLFxyXG5cdFx0ZXZlbnQ6IFwidXBkYXRlOm1vZGVsVmFsdWVcIixcclxuXHR9LFxyXG5cdG9wdGlvbnM6IHtcclxuXHRcdHZpcnR1YWxIb3N0OiB0cnVlLFxyXG5cdH0sXHJcblx0aW5qZWN0OiB7XHJcblx0XHRmb3JtOiB7XHJcblx0XHRcdGZyb206IFwidW5pRm9ybVwiLFxyXG5cdFx0XHRkZWZhdWx0OiBudWxsLFxyXG5cdFx0fSxcclxuXHRcdGZvcm1JdGVtOiB7XHJcblx0XHRcdGZyb206IFwidW5pRm9ybUl0ZW1cIixcclxuXHRcdFx0ZGVmYXVsdDogbnVsbCxcclxuXHRcdH0sXHJcblx0fSxcclxuXHRwcm9wczoge1xyXG5cdFx0bmFtZTogU3RyaW5nLFxyXG5cdFx0dmFsdWU6IFtOdW1iZXIsIFN0cmluZ10sXHJcblx0XHRtb2RlbFZhbHVlOiBbTnVtYmVyLCBTdHJpbmddLFxyXG5cdFx0dHlwZToge1xyXG5cdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdGRlZmF1bHQ6IFwidGV4dFwiLFxyXG5cdFx0fSxcclxuXHRcdGNsZWFyYWJsZToge1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiB0cnVlLFxyXG5cdFx0fSxcclxuXHRcdGF1dG9IZWlnaHQ6IHtcclxuXHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0ZGVmYXVsdDogZmFsc2UsXHJcblx0XHR9LFxyXG5cdFx0cGxhY2Vob2xkZXI6IHtcclxuXHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRkZWZhdWx0OiBcIiBcIixcclxuXHRcdH0sXHJcblx0XHRwbGFjZWhvbGRlclN0eWxlOiBTdHJpbmcsXHJcblx0XHRmb2N1czoge1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiBmYWxzZSxcclxuXHRcdH0sXHJcblx0XHRkaXNhYmxlZDoge1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiBmYWxzZSxcclxuXHRcdH0sXHJcblx0XHRtYXhsZW5ndGg6IHtcclxuXHRcdFx0dHlwZTogW051bWJlciwgU3RyaW5nXSxcclxuXHRcdFx0ZGVmYXVsdDogMTQwLFxyXG5cdFx0fSxcclxuXHRcdGNvbmZpcm1UeXBlOiB7XHJcblx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0ZGVmYXVsdDogXCJkb25lXCIsXHJcblx0XHR9LFxyXG5cdFx0Y2xlYXJTaXplOiB7XHJcblx0XHRcdHR5cGU6IFtOdW1iZXIsIFN0cmluZ10sXHJcblx0XHRcdGRlZmF1bHQ6IDI0LFxyXG5cdFx0fSxcclxuXHRcdGlucHV0Qm9yZGVyOiB7XHJcblx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdGRlZmF1bHQ6IHRydWUsXHJcblx0XHR9LFxyXG5cdFx0cHJlZml4SWNvbjoge1xyXG5cdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdGRlZmF1bHQ6IFwiXCIsXHJcblx0XHR9LFxyXG5cdFx0c3VmZml4SWNvbjoge1xyXG5cdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdGRlZmF1bHQ6IFwiXCIsXHJcblx0XHR9LFxyXG5cdFx0dHJpbToge1xyXG5cdFx0XHR0eXBlOiBbQm9vbGVhbiwgU3RyaW5nXSxcclxuXHRcdFx0ZGVmYXVsdDogdHJ1ZSxcclxuXHRcdH0sXHJcblx0XHRwYXNzd29yZEljb246IHtcclxuXHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0ZGVmYXVsdDogdHJ1ZSxcclxuXHRcdH0sXHJcblx0XHRwcmltYXJ5Q29sb3I6IHtcclxuXHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRkZWZhdWx0OiBcIiMyOTc5ZmZcIixcclxuXHRcdH0sXHJcblx0XHRzdHlsZXM6IHtcclxuXHRcdFx0dHlwZTogT2JqZWN0LFxyXG5cdFx0XHRkZWZhdWx0KCkge1xyXG5cdFx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHRjb2xvcjogXCIjMzMzXCIsXHJcblx0XHRcdFx0XHRkaXNhYmxlQ29sb3I6IFwiI0Y3RjZGNlwiLFxyXG5cdFx0XHRcdFx0Ym9yZGVyQ29sb3I6IFwiI2U1ZTVlNVwiLFxyXG5cdFx0XHRcdH07XHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0ZXJyb3JNZXNzYWdlOiB7XHJcblx0XHRcdHR5cGU6IFtTdHJpbmcsIEJvb2xlYW5dLFxyXG5cdFx0XHRkZWZhdWx0OiBcIlwiLFxyXG5cdFx0fSxcclxuXHR9LFxyXG5cdGRhdGEoKSB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRmb2N1c2VkOiBmYWxzZSxcclxuXHRcdFx0dmFsOiBcIlwiLFxyXG5cdFx0XHRzaG93TXNnOiBcIlwiLFxyXG5cdFx0XHRib3JkZXI6IGZhbHNlLFxyXG5cdFx0XHRpc0ZpcnN0Qm9yZGVyOiBmYWxzZSxcclxuXHRcdFx0c2hvd0NsZWFySWNvbjogZmFsc2UsXHJcblx0XHRcdHNob3dQYXNzd29yZDogZmFsc2UsXHJcblx0XHRcdGZvY3VzU2hvdzogZmFsc2UsXHJcblx0XHRcdGxvY2FsTXNnOiBcIlwiLFxyXG5cdFx0fTtcclxuXHR9LFxyXG5cdGNvbXB1dGVkOiB7XHJcblx0XHQvLyDovpPlhaXmoYblhoXmmK/lkKbmnInlgLxcclxuXHRcdGlzVmFsKCkge1xyXG5cdFx0XHRjb25zdCB2YWwgPSB0aGlzLnZhbDtcclxuXHRcdFx0Ly8gZml4ZWQgYnkgbWVoYW90aWFuIOWkhOeQhuWAvOS4ujDnmoTmg4XlhrXvvIzlrZfnrKbkuLIw5LiN5Zyo5aSE55CG6IyD5Zu0XHJcblx0XHRcdGlmICh2YWwgfHwgdmFsID09PSAwKSB7XHJcblx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fSxcclxuXHJcblx0XHRtc2coKSB7XHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKCdjb21wdXRlZCcsIHRoaXMuZm9ybSwgdGhpcy5mb3JtSXRlbSk7XHJcblx0XHRcdC8vIGlmICh0aGlzLmZvcm0pIHtcclxuXHRcdFx0Ly8gXHRyZXR1cm4gdGhpcy5lcnJvck1lc3NhZ2UgfHwgdGhpcy5mb3JtSXRlbS5lcnJNc2c7XHJcblx0XHRcdC8vIH1cclxuXHRcdFx0Ly8gVE9ETyDlpITnkIblpLTmnaEgZm9ybUl0ZW0g5LitIGVyck1zZyDkuI3mm7TmlrDnmoTpl67pophcclxuXHRcdFx0cmV0dXJuIHRoaXMubG9jYWxNc2cgfHwgdGhpcy5lcnJvck1lc3NhZ2U7XHJcblx0XHR9LFxyXG5cdFx0Ly8g5Zug5Li6dW5pYXBw55qEaW5wdXTnu4Tku7bnmoRtYXhsZW5ndGjnu4Tku7blv4XpobvopoHmlbDlgLzvvIzov5nph4zovazkuLrmlbDlgLzvvIznlKjmiLflj6/ku6XkvKDlhaXlrZfnrKbkuLLmlbDlgLxcclxuXHRcdGlucHV0TWF4bGVuZ3RoKCkge1xyXG5cdFx0XHRyZXR1cm4gTnVtYmVyKHRoaXMubWF4bGVuZ3RoKTtcclxuXHRcdH0sXHJcblxyXG5cdFx0Ly8g5aSE55CG5aSW5bGC5qC35byP55qEc3R5bGVcclxuXHRcdGJveFN0eWxlKCkge1xyXG5cdFx0XHRyZXR1cm4gYGNvbG9yOiR7XHJcblx0XHRcdFx0dGhpcy5pbnB1dEJvcmRlciAmJiB0aGlzLm1zZyA/IFwiI2U0M2QzM1wiIDogdGhpcy5zdHlsZXMuY29sb3JcclxuXHRcdFx0fTtgO1xyXG5cdFx0fSxcclxuXHRcdC8vIGlucHV0IOWGheWuueeahOexu+WSjOagt+W8j+WkhOeQhlxyXG5cdFx0aW5wdXRDb250ZW50Q2xhc3MoKSB7XHJcblx0XHRcdHJldHVybiBvYmoyc3RyQ2xhc3Moe1xyXG5cdFx0XHRcdFwiaXMtaW5wdXQtYm9yZGVyXCI6IHRoaXMuaW5wdXRCb3JkZXIsXHJcblx0XHRcdFx0XCJpcy1pbnB1dC1lcnJvci1ib3JkZXJcIjogdGhpcy5pbnB1dEJvcmRlciAmJiB0aGlzLm1zZyxcclxuXHRcdFx0XHRcImlzLXRleHRhcmVhXCI6IHRoaXMudHlwZSA9PT0gXCJ0ZXh0YXJlYVwiLFxyXG5cdFx0XHRcdFwiaXMtZGlzYWJsZWRcIjogdGhpcy5kaXNhYmxlZCxcclxuXHRcdFx0fSk7XHJcblx0XHR9LFxyXG5cdFx0aW5wdXRDb250ZW50U3R5bGUoKSB7XHJcblx0XHRcdGNvbnN0IGZvY3VzQ29sb3IgPSB0aGlzLmZvY3VzU2hvd1xyXG5cdFx0XHRcdD8gdGhpcy5wcmltYXJ5Q29sb3JcclxuXHRcdFx0XHQ6IHRoaXMuc3R5bGVzLmJvcmRlckNvbG9yO1xyXG5cdFx0XHRjb25zdCBib3JkZXJDb2xvciA9IHRoaXMuaW5wdXRCb3JkZXIgJiYgdGhpcy5tc2cgPyBcIiNkZDUyNGRcIiA6IGZvY3VzQ29sb3I7XHJcblx0XHRcdHJldHVybiBvYmoyc3RyU3R5bGUoe1xyXG5cdFx0XHRcdFwiYm9yZGVyLWNvbG9yXCI6IGJvcmRlckNvbG9yIHx8IFwiI2U1ZTVlNVwiLFxyXG5cdFx0XHRcdFwiYmFja2dyb3VuZC1jb2xvclwiOiB0aGlzLmRpc2FibGVkXHJcblx0XHRcdFx0XHQ/IHRoaXMuc3R5bGVzLmRpc2FibGVDb2xvclxyXG5cdFx0XHRcdFx0OiB0aGlzLnN0eWxlcy5iYWNrZ3JvdW5kQ29sb3IsXHJcblx0XHRcdH0pO1xyXG5cdFx0fSxcclxuXHRcdC8vIGlucHV05Y+z5L6n5qC35byPXHJcblx0XHRpbnB1dFN0eWxlKCkge1xyXG5cdFx0XHRjb25zdCBwYWRkaW5nUmlnaHQgPVxyXG5cdFx0XHRcdHRoaXMudHlwZSA9PT0gXCJwYXNzd29yZFwiIHx8IHRoaXMuY2xlYXJhYmxlIHx8IHRoaXMucHJlZml4SWNvblxyXG5cdFx0XHRcdFx0PyBcIlwiXHJcblx0XHRcdFx0XHQ6IFwiMTBweFwiO1xyXG5cdFx0XHRyZXR1cm4gb2JqMnN0clN0eWxlKHtcclxuXHRcdFx0XHRcInBhZGRpbmctcmlnaHRcIjogcGFkZGluZ1JpZ2h0LFxyXG5cdFx0XHRcdFwicGFkZGluZy1sZWZ0XCI6IHRoaXMucHJlZml4SWNvbiA/IFwiXCIgOiBcIjEwcHhcIixcclxuXHRcdFx0fSk7XHJcblx0XHR9LFxyXG5cdH0sXHJcblx0d2F0Y2g6IHtcclxuXHRcdHZhbHVlKG5ld1ZhbCkge1xyXG5cdFx0XHR0aGlzLnZhbCA9IG5ld1ZhbDtcclxuXHRcdH0sXHJcblx0XHRtb2RlbFZhbHVlKG5ld1ZhbCkge1xyXG5cdFx0XHR0aGlzLnZhbCA9IG5ld1ZhbDtcclxuXHRcdH0sXHJcblx0XHRmb2N1cyhuZXdWYWwpIHtcclxuXHRcdFx0dGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuZm9jdXNlZCA9IHRoaXMuZm9jdXM7XHJcblx0XHRcdFx0dGhpcy5mb2N1c1Nob3cgPSB0aGlzLmZvY3VzO1xyXG5cdFx0XHR9KTtcclxuXHRcdH0sXHJcblx0fSxcclxuXHRjcmVhdGVkKCkge1xyXG5cdFx0dGhpcy5pbml0KCk7XHJcblx0XHQvLyBUT0RPIOWkhOeQhuWktOadoXZ1ZTMgY29tcHV0ZWQg5LiN55uR5ZCsIGluamVjdCDmm7TmlLnnmoTpl67popjvvIhmb3JtSXRlbS5lcnJNc2fvvIlcclxuXHRcdGlmICh0aGlzLmZvcm0gJiYgdGhpcy5mb3JtSXRlbSkge1xyXG5cdFx0XHR0aGlzLiR3YXRjaChcImZvcm1JdGVtLmVyck1zZ1wiLCAobmV3VmFsKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5sb2NhbE1zZyA9IG5ld1ZhbDtcclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblx0fSxcclxuXHRtb3VudGVkKCkge1xyXG5cdFx0dGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG5cdFx0XHR0aGlzLmZvY3VzZWQgPSB0aGlzLmZvY3VzO1xyXG5cdFx0XHR0aGlzLmZvY3VzU2hvdyA9IHRoaXMuZm9jdXM7XHJcblx0XHR9KTtcclxuXHR9LFxyXG5cdG1ldGhvZHM6IHtcclxuXHRcdC8qKlxyXG5cdFx0ICog5Yid5aeL5YyW5Y+Y6YeP5YC8XHJcblx0XHQgKi9cclxuXHRcdGluaXQoKSB7XHJcblx0XHRcdGlmICh0aGlzLnZhbHVlIHx8IHRoaXMudmFsdWUgPT09IDApIHtcclxuXHRcdFx0XHR0aGlzLnZhbCA9IHRoaXMudmFsdWU7XHJcblx0XHRcdH0gZWxzZSBpZiAodGhpcy5tb2RlbFZhbHVlIHx8IHRoaXMubW9kZWxWYWx1ZSA9PT0gMCkge1xyXG5cdFx0XHRcdHRoaXMudmFsID0gdGhpcy5tb2RlbFZhbHVlO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMudmFsID0gbnVsbDtcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHJcblx0XHQvKipcclxuXHRcdCAqIOeCueWHu+Wbvuagh+aXtuinpuWPkVxyXG5cdFx0ICogQHBhcmFtIHtPYmplY3R9IHR5cGVcclxuXHRcdCAqL1xyXG5cdFx0b25DbGlja0ljb24odHlwZSkge1xyXG5cdFx0XHR0aGlzLiRlbWl0KFwiaWNvbkNsaWNrXCIsIHR5cGUpO1xyXG5cdFx0fSxcclxuXHJcblx0XHQvKipcclxuXHRcdCAqIOaYvuekuumakOiXj+WGheWuue+8jOWvhueggeahhuaXtueUn+aViFxyXG5cdFx0ICovXHJcblx0XHRvbkV5ZXMoKSB7XHJcblx0XHRcdHRoaXMuc2hvd1Bhc3N3b3JkID0gIXRoaXMuc2hvd1Bhc3N3b3JkO1xyXG5cdFx0XHR0aGlzLiRlbWl0KFwiZXllc1wiLCB0aGlzLnNob3dQYXNzd29yZCk7XHJcblx0XHR9LFxyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICog6L6T5YWl5pe26Kem5Y+RXHJcblx0XHQgKiBAcGFyYW0ge09iamVjdH0gZXZlbnRcclxuXHRcdCAqL1xyXG5cdFx0b25JbnB1dChldmVudCkge1xyXG5cdFx0XHRsZXQgdmFsdWUgPSBldmVudC5kZXRhaWwudmFsdWU7XHJcblx0XHRcdC8vIOWIpOaWreaYr+WQpuWOu+mZpOepuuagvFxyXG5cdFx0XHRpZiAodGhpcy50cmltKSB7XHJcblx0XHRcdFx0aWYgKHR5cGVvZiB0aGlzLnRyaW0gPT09IFwiYm9vbGVhblwiICYmIHRoaXMudHJpbSkge1xyXG5cdFx0XHRcdFx0dmFsdWUgPSB0aGlzLnRyaW1TdHIodmFsdWUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodHlwZW9mIHRoaXMudHJpbSA9PT0gXCJzdHJpbmdcIikge1xyXG5cdFx0XHRcdFx0dmFsdWUgPSB0aGlzLnRyaW1TdHIodmFsdWUsIHRoaXMudHJpbSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdGlmICh0aGlzLmVyck1zZykgdGhpcy5lcnJNc2cgPSBcIlwiO1xyXG5cdFx0XHR0aGlzLnZhbCA9IHZhbHVlO1xyXG5cdFx0XHQvLyBUT0RPIOWFvOWuuSB2dWUyXHJcblx0XHRcdHRoaXMuJGVtaXQoXCJpbnB1dFwiLCB2YWx1ZSk7XHJcblx0XHRcdC8vIFRPRE/jgIDlhbzlrrnjgIB2dWUzXHJcblx0XHRcdHRoaXMuJGVtaXQoXCJ1cGRhdGU6bW9kZWxWYWx1ZVwiLCB2YWx1ZSk7XHJcblx0XHR9LFxyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICog5aSW6YOo6LCD55So5pa55rOVXHJcblx0XHQgKiDojrflj5bnhKbngrnml7bop6blj5FcclxuXHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBldmVudFxyXG5cdFx0ICovXHJcblx0XHRvbkZvY3VzKCkge1xyXG5cdFx0XHR0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5mb2N1c2VkID0gdHJ1ZTtcclxuXHRcdFx0fSk7XHJcblx0XHRcdHRoaXMuJGVtaXQoXCJmb2N1c1wiLCBudWxsKTtcclxuXHRcdH0sXHJcblxyXG5cdFx0X0ZvY3VzKGV2ZW50KSB7XHJcblx0XHRcdHRoaXMuZm9jdXNTaG93ID0gdHJ1ZTtcclxuXHRcdFx0dGhpcy4kZW1pdChcImZvY3VzXCIsIGV2ZW50KTtcclxuXHRcdH0sXHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiDlpJbpg6josIPnlKjmlrnms5VcclxuXHRcdCAqIOWkseWOu+eEpueCueaXtuinpuWPkVxyXG5cdFx0ICogQHBhcmFtIHtPYmplY3R9IGV2ZW50XHJcblx0XHQgKi9cclxuXHRcdG9uQmx1cigpIHtcclxuXHRcdFx0dGhpcy5mb2N1c2VkID0gZmFsc2U7XHJcblx0XHRcdHRoaXMuJGVtaXQoXCJmb2N1c1wiLCBudWxsKTtcclxuXHRcdH0sXHJcblx0XHRfQmx1cihldmVudCkge1xyXG5cdFx0XHRsZXQgdmFsdWUgPSBldmVudC5kZXRhaWwudmFsdWU7XHJcblx0XHRcdHRoaXMuZm9jdXNTaG93ID0gZmFsc2U7XHJcblx0XHRcdHRoaXMuJGVtaXQoXCJibHVyXCIsIGV2ZW50KTtcclxuXHRcdFx0Ly8g5qC55o2u57G75Z6L6L+U5Zue5YC877yM5ZyoZXZlbnTkuK3ojrflj5bnmoTlgLznkIborrrkuIrorrLpg73mmK9zdHJpbmdcclxuXHRcdFx0dGhpcy4kZW1pdChcImNoYW5nZVwiLCB0aGlzLnZhbCk7XHJcblx0XHRcdC8vIOWkseWOu+eEpueCueaXtuWPguS4juihqOWNleagoemqjFxyXG5cdFx0XHRpZiAodGhpcy5mb3JtICYmIHRoaXMuZm9ybUl0ZW0pIHtcclxuXHRcdFx0XHRjb25zdCB7IHZhbGlkYXRlVHJpZ2dlciB9ID0gdGhpcy5mb3JtO1xyXG5cdFx0XHRcdGlmICh2YWxpZGF0ZVRyaWdnZXIgPT09IFwiYmx1clwiKSB7XHJcblx0XHRcdFx0XHR0aGlzLmZvcm1JdGVtLm9uRmllbGRDaGFuZ2UoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiDmjInkuIvplK7nm5jnmoTlj5HpgIHplK5cclxuXHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBlXHJcblx0XHQgKi9cclxuXHRcdG9uQ29uZmlybShlKSB7XHJcblx0XHRcdHRoaXMuJGVtaXQoXCJjb25maXJtXCIsIHRoaXMudmFsKTtcclxuXHRcdFx0dGhpcy4kZW1pdChcImNoYW5nZVwiLCB0aGlzLnZhbCk7XHJcblx0XHR9LFxyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICog5riF55CG5YaF5a65XHJcblx0XHQgKiBAcGFyYW0ge09iamVjdH0gZXZlbnRcclxuXHRcdCAqL1xyXG5cdFx0b25DbGVhcihldmVudCkge1xyXG5cdFx0XHR0aGlzLnZhbCA9IFwiXCI7XHJcblx0XHRcdC8vIFRPRE8g5YW85a65IHZ1ZTJcclxuXHRcdFx0dGhpcy4kZW1pdChcImlucHV0XCIsIFwiXCIpO1xyXG5cdFx0XHQvLyBUT0RPIOWFvOWuuSB2dWUyXHJcblx0XHRcdC8vIFRPRE/jgIDlhbzlrrnjgIB2dWUzXHJcblx0XHRcdHRoaXMuJGVtaXQoXCJ1cGRhdGU6bW9kZWxWYWx1ZVwiLCBcIlwiKTtcclxuXHRcdFx0Ly8g54K55Ye75Y+J5Y+36Kem5Y+RXHJcblx0XHRcdHRoaXMuJGVtaXQoXCJjbGVhclwiKTtcclxuXHRcdH0sXHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiDljrvpmaTnqbrmoLxcclxuXHRcdCAqL1xyXG5cdFx0dHJpbVN0cihzdHIsIHBvcyA9IFwiYm90aFwiKSB7XHJcblx0XHRcdGlmIChwb3MgPT09IFwiYm90aFwiKSB7XHJcblx0XHRcdFx0cmV0dXJuIHN0ci50cmltKCk7XHJcblx0XHRcdH0gZWxzZSBpZiAocG9zID09PSBcImxlZnRcIikge1xyXG5cdFx0XHRcdHJldHVybiBzdHIudHJpbUxlZnQoKTtcclxuXHRcdFx0fSBlbHNlIGlmIChwb3MgPT09IFwicmlnaHRcIikge1xyXG5cdFx0XHRcdHJldHVybiBzdHIudHJpbVJpZ2h0KCk7XHJcblx0XHRcdH0gZWxzZSBpZiAocG9zID09PSBcInN0YXJ0XCIpIHtcclxuXHRcdFx0XHRyZXR1cm4gc3RyLnRyaW1TdGFydCgpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKHBvcyA9PT0gXCJlbmRcIikge1xyXG5cdFx0XHRcdHJldHVybiBzdHIudHJpbUVuZCgpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKHBvcyA9PT0gXCJhbGxcIikge1xyXG5cdFx0XHRcdHJldHVybiBzdHIucmVwbGFjZSgvXFxzKy9nLCBcIlwiKTtcclxuXHRcdFx0fSBlbHNlIGlmIChwb3MgPT09IFwibm9uZVwiKSB7XHJcblx0XHRcdFx0cmV0dXJuIHN0cjtcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gc3RyO1xyXG5cdFx0fSxcclxuXHR9LFxyXG59O1xyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiPlxyXG4kdW5pLWVycm9yOiAjZTQzZDMzO1xyXG4kdW5pLWJvcmRlci0xOiAjZGNkZmU2ICFkZWZhdWx0O1xyXG5cclxuLnVuaS1lYXN5aW5wdXQge1xyXG5cdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHR3aWR0aDogMTAwJTtcclxuXHQvKiAjZW5kaWYgKi9cclxuXHRmbGV4OiAxO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHR0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cdGNvbG9yOiAjMzMzO1xyXG5cdGZvbnQtc2l6ZTogMTRweDtcclxufVxyXG5cclxuLnVuaS1lYXN5aW5wdXRfX2NvbnRlbnQge1xyXG5cdGZsZXg6IDE7XHJcblx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHQvLyBtaW4taGVpZ2h0OiAzNnB4O1xyXG5cdC8qICNlbmRpZiAqL1xyXG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHQvLyDlpITnkIZib3JkZXLliqjnlLvliJrlvIDlp4vmmL7npLrpu5HoibLnmoTpl67pophcclxuXHRib3JkZXItY29sb3I6ICNmZmY7XHJcblx0dHJhbnNpdGlvbi1wcm9wZXJ0eTogYm9yZGVyLWNvbG9yO1xyXG5cdHRyYW5zaXRpb24tZHVyYXRpb246IDAuM3M7XHJcbn1cclxuXHJcbi51bmktZWFzeWlucHV0X19jb250ZW50LWlucHV0IHtcclxuXHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0d2lkdGg6IGF1dG87XHJcblx0LyogI2VuZGlmICovXHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcblx0ZmxleDogMTtcclxuXHRsaW5lLWhlaWdodDogMTtcclxuXHRmb250LXNpemU6IDE0cHg7XHJcblx0aGVpZ2h0OiAzNXB4O1xyXG5cdC8vIG1pbi1oZWlnaHQ6IDM2cHg7XHJcbn1cclxuXHJcbi51bmktZWFzeWlucHV0X19wbGFjZWhvbGRlci1jbGFzcyB7XHJcblx0Y29sb3I6ICM5OTk7XHJcblx0Zm9udC1zaXplOiAxMnB4O1xyXG5cdC8vIGZvbnQtd2VpZ2h0OiAyMDA7XHJcbn1cclxuXHJcbi5pcy10ZXh0YXJlYSB7XHJcblx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbn1cclxuXHJcbi5pcy10ZXh0YXJlYS1pY29uIHtcclxuXHRtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi51bmktZWFzeWlucHV0X19jb250ZW50LXRleHRhcmVhIHtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRmbGV4OiAxO1xyXG5cdGxpbmUtaGVpZ2h0OiAxLjU7XHJcblx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdG1hcmdpbjogNnB4O1xyXG5cdG1hcmdpbi1sZWZ0OiAwO1xyXG5cdGhlaWdodDogODBweDtcclxuXHRtaW4taGVpZ2h0OiA4MHB4O1xyXG5cdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRtaW4taGVpZ2h0OiA4MHB4O1xyXG5cdHdpZHRoOiBhdXRvO1xyXG5cdC8qICNlbmRpZiAqL1xyXG59XHJcblxyXG4uaW5wdXQtcGFkZGluZyB7XHJcblx0cGFkZGluZy1sZWZ0OiAxMHB4O1xyXG59XHJcblxyXG4uY29udGVudC1jbGVhci1pY29uIHtcclxuXHRwYWRkaW5nOiAwIDVweDtcclxufVxyXG5cclxuLmxhYmVsLWljb24ge1xyXG5cdG1hcmdpbi1yaWdodDogNXB4O1xyXG5cdG1hcmdpbi10b3A6IC0xcHg7XHJcbn1cclxuXHJcbi8vIOaYvuekuui+ueahhlxyXG4uaXMtaW5wdXQtYm9yZGVyIHtcclxuXHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdC8qICNlbmRpZiAqL1xyXG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRib3JkZXI6IDFweCBzb2xpZCAkdW5pLWJvcmRlci0xO1xyXG5cdGJvcmRlci1yYWRpdXM6IDRweDtcclxuXHQvKiAjaWZkZWYgTVAtQUxJUEFZICovXHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHQvKiAjZW5kaWYgKi9cclxufVxyXG5cclxuLnVuaS1lcnJvci1tZXNzYWdlIHtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0Ym90dG9tOiAtMTdweDtcclxuXHRsZWZ0OiAwO1xyXG5cdGxpbmUtaGVpZ2h0OiAxMnB4O1xyXG5cdGNvbG9yOiAkdW5pLWVycm9yO1xyXG5cdGZvbnQtc2l6ZTogMTJweDtcclxuXHR0ZXh0LWFsaWduOiBsZWZ0O1xyXG59XHJcblxyXG4udW5pLWVycm9yLW1zZy0tYm9lZGVyIHtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0Ym90dG9tOiAwO1xyXG5cdGxpbmUtaGVpZ2h0OiAyMnB4O1xyXG59XHJcblxyXG4uaXMtaW5wdXQtZXJyb3ItYm9yZGVyIHtcclxuXHRib3JkZXItY29sb3I6ICR1bmktZXJyb3I7XHJcblxyXG5cdC51bmktZWFzeWlucHV0X19wbGFjZWhvbGRlci1jbGFzcyB7XHJcblx0XHRjb2xvcjogbWl4KCNmZmYsICR1bmktZXJyb3IsIDUwJSk7XHJcblx0fVxyXG59XHJcblxyXG4udW5pLWVhc3lpbnB1dC0tYm9yZGVyIHtcclxuXHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdHBhZGRpbmc6IDEwcHggMTVweDtcclxuXHQvLyBwYWRkaW5nLWJvdHRvbTogMDtcclxuXHRib3JkZXItdG9wOiAxcHggI2VlZSBzb2xpZDtcclxufVxyXG5cclxuLnVuaS1lYXN5aW5wdXQtZXJyb3Ige1xyXG5cdHBhZGRpbmctYm90dG9tOiAwO1xyXG59XHJcblxyXG4uaXMtZmlyc3QtYm9yZGVyIHtcclxuXHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0Ym9yZGVyOiBub25lO1xyXG5cdC8qICNlbmRpZiAqL1xyXG5cdC8qICNpZmRlZiBBUFAtTlZVRSAqL1xyXG5cdGJvcmRlci13aWR0aDogMDtcclxuXHQvKiAjZW5kaWYgKi9cclxufVxyXG5cclxuLmlzLWRpc2FibGVkIHtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmNmY2O1xyXG5cdGNvbG9yOiAjZDVkNWQ1O1xyXG5cclxuXHQudW5pLWVhc3lpbnB1dF9fcGxhY2Vob2xkZXItY2xhc3Mge1xyXG5cdFx0Y29sb3I6ICNkNWQ1ZDU7XHJcblx0XHRmb250LXNpemU6IDEycHg7XHJcblx0fVxyXG59XHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///24\n");
  879. /***/ }),
  880. /* 25 */
  881. /*!************************************************************************************************!*\
  882. !*** D:/Work2/Orienteering/TrackOffical/pages/nfc/nfc.vue?vue&type=script&lang=js&mpType=page ***!
  883. \************************************************************************************************/
  884. /*! no static exports found */
  885. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  886. "use strict";
  887. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_nfc_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./nfc.vue?vue&type=script&lang=js&mpType=page */ 26);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_nfc_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_nfc_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_nfc_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_nfc_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_nfc_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQThtQixDQUFnQiw0bkJBQUcsRUFBQyIsImZpbGUiOiIyNS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbmZjLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL25mYy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///25\n");
  888. /***/ }),
  889. /* 26 */
  890. /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  891. !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/pages/nfc/nfc.vue?vue&type=script&lang=js&mpType=page ***!
  892. \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  893. /*! no static exports found */
  894. /***/ (function(module, exports, __webpack_require__) {
  895. "use strict";
  896. eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// import nfc from '../../utils/ouu-nfc.js'\nvar _default = {\n data: function data() {\n return {\n nfcWriteData: 'http://www.beswell.com'\n };\n },\n mounted: function mounted() {\n __f__(\"log\", '[nfc] mounted', \" at pages/nfc/nfc.vue:28\");\n // nfc.listenNFCStatus();\n },\n onLoad: function onLoad() {\n __f__(\"log\", '[nfc] onLoad', \" at pages/nfc/nfc.vue:32\");\n this.$nfc.inputChanage(this.nfcWriteData);\n },\n onShow: function onShow() {\n __f__(\"log\", '[nfc] onShow', \" at pages/nfc/nfc.vue:36\");\n uni.$off('NfcRead');\n uni.$on('NfcRead', this.onNfcRead);\n },\n onHide: function onHide() {\n __f__(\"log\", '[nfc] onHide', \" at pages/nfc/nfc.vue:41\");\n },\n beforeDestroy: function beforeDestroy() {\n __f__(\"log\", '[nfc] beforeDestroy', \" at pages/nfc/nfc.vue:44\");\n uni.$off('NfcRead');\n },\n methods: {\n input: function input(data) {\n // console.log('input, data: ' + JSON.stringify(data))\n this.$nfc.inputChanage(data);\n },\n onNfcRead: function onNfcRead(data) {\n __f__(\"log\", '监听到事件来自 nfcRead, data: ' + JSON.stringify(data), \" at pages/nfc/nfc.vue:53\");\n // console.log(data)\n uni.showToast({\n title: \"[\".concat(data.id, \"] '\").concat(data.data, \"'\"),\n icon: 'none',\n duration: 2000\n });\n },\n writeData: function writeData() {\n this.$nfc.writeData();\n },\n readData: function readData() {\n this.$nfc.readData();\n },\n setPassword: function setPassword() {\n this.$nfc.setPwdData();\n },\n delPassword: function delPassword() {\n this.$nfc.delPwdData();\n },\n getNfcState: function getNfcState() {\n this.$nfc.getNfcState();\n },\n writeAndLock: function writeAndLock() {\n this.$nfc.writeAndLock();\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 27)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbmZjL25mYy52dWUiXSwibmFtZXMiOlsiZGF0YSIsIm5mY1dyaXRlRGF0YSIsIm1vdW50ZWQiLCJvbkxvYWQiLCJvblNob3ciLCJ1bmkiLCJvbkhpZGUiLCJiZWZvcmVEZXN0cm95IiwibWV0aG9kcyIsImlucHV0Iiwib25OZmNSZWFkIiwidGl0bGUiLCJpY29uIiwiZHVyYXRpb24iLCJ3cml0ZURhdGEiLCJyZWFkRGF0YSIsInNldFBhc3N3b3JkIiwiZGVsUGFzc3dvcmQiLCJnZXROZmNTdGF0ZSIsIndyaXRlQW5kTG9jayJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJBO0FBQUEsZUFDQTtFQUNBQTtJQUNBO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0FDO0lBQ0FBO0VBQ0E7RUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQUY7RUFDQTtFQUNBRztJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7TUFDQUw7UUFDQU07UUFDQUM7UUFDQUM7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0VBQ0E7QUFDQTtBQUFBLDJCIiwiZmlsZSI6IjI2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcblx0XHQ8dW5pLWVhc3lpbnB1dCB2LW1vZGVsPVwibmZjV3JpdGVEYXRhXCIgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXopoHlhpnlhaVORkPnmoTmlbDmja5cIiBAaW5wdXQ9XCJpbnB1dFwiIC8+XHJcblx0XHQ8dmlldyBjbGFzcz1cImJ0bi1ib3hcIj5cclxuXHRcdFx0PGJ1dHRvbiBjbGFzcz1cImJ0blwiIHR5cGU9XCJwcmltYXJ5XCIgQGNsaWNrPVwicmVhZERhdGEoKVwiPuivu+WPlk5GQzwvYnV0dG9uPlxyXG5cdFx0XHQ8YnV0dG9uIGNsYXNzPVwiYnRuXCIgdHlwZT1cInByaW1hcnlcIiBAY2xpY2s9XCJ3cml0ZURhdGEoKVwiPuWGmeWFpU5GQzwvYnV0dG9uPlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJidG4tYm94XCI+XHJcblx0XHRcdDxidXR0b24gY2xhc3M9XCJidG5cIiB0eXBlPVwicHJpbWFyeVwiIEBjbGljaz1cImdldE5mY1N0YXRlKClcIj5ORkPnirbmgIE8L2J1dHRvbj5cclxuXHRcdFx0PGJ1dHRvbiBjbGFzcz1cImJ0blwiIHR5cGU9XCJ3YXJuXCIgQGNsaWNrPVwid3JpdGVBbmRMb2NrKClcIj7lhpnlhaXlubbplIHlrpo8L2J1dHRvbj5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwiYnRuLWJveFwiPlxyXG5cdFx0XHQ8YnV0dG9uIGNsYXNzPVwiYnRuXCIgdHlwZT1cIndhcm5cIiBAY2xpY2s9XCJzZXRQYXNzd29yZCgpXCI+6K6+572u5a+G56CBPC9idXR0b24+XHJcblx0XHRcdDxidXR0b24gY2xhc3M9XCJidG5cIiB0eXBlPVwid2FyblwiIEBjbGljaz1cImRlbFBhc3N3b3JkKClcIj7muIXpmaTlr4bnoIE8L2J1dHRvbj5cclxuXHRcdDwvdmlldz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdC8vIGltcG9ydCBuZmMgZnJvbSAnLi4vLi4vdXRpbHMvb3V1LW5mYy5qcydcclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdG5mY1dyaXRlRGF0YTogJ2h0dHA6Ly93d3cuYmVzd2VsbC5jb20nXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRtb3VudGVkKCkge1xyXG5cdFx0XHRjb25zb2xlLmxvZygnW25mY10gbW91bnRlZCcpXHJcblx0XHRcdC8vIG5mYy5saXN0ZW5ORkNTdGF0dXMoKTtcclxuXHRcdH0sXHJcblx0XHRvbkxvYWQoKSB7XHJcblx0XHRcdGNvbnNvbGUubG9nKCdbbmZjXSBvbkxvYWQnKVxyXG5cdFx0XHR0aGlzLiRuZmMuaW5wdXRDaGFuYWdlKHRoaXMubmZjV3JpdGVEYXRhKVxyXG5cdFx0fSxcclxuXHRcdG9uU2hvdygpIHtcclxuXHRcdFx0Y29uc29sZS5sb2coJ1tuZmNdIG9uU2hvdycpXHJcblx0XHRcdHVuaS4kb2ZmKCdOZmNSZWFkJylcclxuXHRcdFx0dW5pLiRvbignTmZjUmVhZCcsIHRoaXMub25OZmNSZWFkKVxyXG5cdFx0fSxcclxuXHRcdG9uSGlkZSgpIHtcclxuXHRcdFx0Y29uc29sZS5sb2coJ1tuZmNdIG9uSGlkZScpXHJcblx0XHR9LFxyXG5cdFx0YmVmb3JlRGVzdHJveSgpIHtcclxuXHRcdFx0Y29uc29sZS5sb2coJ1tuZmNdIGJlZm9yZURlc3Ryb3knKVxyXG5cdFx0XHR1bmkuJG9mZignTmZjUmVhZCcpXHJcblx0XHR9LFxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHRpbnB1dChkYXRhKSB7XHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ2lucHV0LCBkYXRhOiAnICsgSlNPTi5zdHJpbmdpZnkoZGF0YSkpXHJcblx0XHRcdFx0dGhpcy4kbmZjLmlucHV0Q2hhbmFnZShkYXRhKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRvbk5mY1JlYWQoZGF0YSkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCfnm5HlkKzliLDkuovku7bmnaXoh6ogbmZjUmVhZCwgZGF0YTogJyArIEpTT04uc3RyaW5naWZ5KGRhdGEpKVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKGRhdGEpXHJcblx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHR0aXRsZTogYFske2RhdGEuaWR9XSAnJHtkYXRhLmRhdGF9J2AsXHJcblx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHRkdXJhdGlvbjogMjAwMFxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdHdyaXRlRGF0YSgpIHtcclxuXHRcdFx0XHR0aGlzLiRuZmMud3JpdGVEYXRhKClcclxuXHRcdFx0fSxcclxuXHRcdFx0cmVhZERhdGEoKSB7XHJcblx0XHRcdFx0dGhpcy4kbmZjLnJlYWREYXRhKClcclxuXHRcdFx0fSxcclxuXHRcdFx0c2V0UGFzc3dvcmQoKSB7XHJcblx0XHRcdFx0dGhpcy4kbmZjLnNldFB3ZERhdGEoKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRkZWxQYXNzd29yZCgpIHtcclxuXHRcdFx0XHR0aGlzLiRuZmMuZGVsUHdkRGF0YSgpXHJcblx0XHRcdH0sXHJcblx0XHRcdGdldE5mY1N0YXRlKCkge1xyXG5cdFx0XHRcdHRoaXMuJG5mYy5nZXROZmNTdGF0ZSgpXHJcblx0XHRcdH0sXHJcblx0XHRcdHdyaXRlQW5kTG9jaygpIHtcclxuXHRcdFx0XHR0aGlzLiRuZmMud3JpdGVBbmRMb2NrKClcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgc2NvcGVkIGxhbmc9XCJzY3NzXCI+XHJcblx0LmNvbnRhaW5lciB7XHJcblx0XHRwYWRkaW5nOiAxNXB4O1xyXG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHJcblx0XHQuYnRuLWJveCB7XHJcblx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0XHRtYXJnaW4tdG9wOiAyMHB4O1xyXG5cclxuXHRcdFx0LmJ0biB7XHJcblx0XHRcdFx0d2lkdGg6IDM1JTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuPC9zdHlsZT5cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///26\n");
  897. /***/ }),
  898. /* 27 */
  899. /*!*********************************************************************!*\
  900. !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js ***!
  901. \*********************************************************************/
  902. /*! exports provided: log, default */
  903. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  904. "use strict";
  905. __webpack_require__.r(__webpack_exports__);
  906. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "log", function() { return log; });
  907. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return formatLog; });
  908. function typof (v) {
  909. var s = Object.prototype.toString.call(v)
  910. return s.substring(8, s.length - 1)
  911. }
  912. function isDebugMode () {
  913. /* eslint-disable no-undef */
  914. return typeof __channelId__ === 'string' && __channelId__
  915. }
  916. function jsonStringifyReplacer (k, p) {
  917. switch (typof(p)) {
  918. case 'Function':
  919. return 'function() { [native code] }'
  920. default :
  921. return p
  922. }
  923. }
  924. function log (type) {
  925. for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
  926. args[_key - 1] = arguments[_key]
  927. }
  928. console[type].apply(console, args)
  929. }
  930. function formatLog () {
  931. for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
  932. args[_key] = arguments[_key]
  933. }
  934. var type = args.shift()
  935. if (isDebugMode()) {
  936. args.push(args.pop().replace('at ', 'uni-app:///'))
  937. return console[type].apply(console, args)
  938. }
  939. var msgs = args.map(function (v) {
  940. var type = Object.prototype.toString.call(v).toLowerCase()
  941. if (type === '[object object]' || type === '[object array]') {
  942. try {
  943. v = '---BEGIN:JSON---' + JSON.stringify(v, jsonStringifyReplacer) + '---END:JSON---'
  944. } catch (e) {
  945. v = type
  946. }
  947. } else {
  948. if (v === null) {
  949. v = '---NULL---'
  950. } else if (v === undefined) {
  951. v = '---UNDEFINED---'
  952. } else {
  953. var vType = typof(v).toUpperCase()
  954. if (vType === 'NUMBER' || vType === 'BOOLEAN') {
  955. v = '---BEGIN:' + vType + '---' + v + '---END:' + vType + '---'
  956. } else {
  957. v = String(v)
  958. }
  959. }
  960. }
  961. return v
  962. })
  963. var msg = ''
  964. if (msgs.length > 1) {
  965. var lastMsg = msgs.pop()
  966. msg = msgs.join('---COMMA---')
  967. if (lastMsg.indexOf(' at ') === 0) {
  968. msg += lastMsg
  969. } else {
  970. msg += '---COMMA---' + lastMsg
  971. }
  972. } else {
  973. msg = msgs[0]
  974. }
  975. console[type](msg)
  976. }
  977. /***/ }),
  978. /* 28 */
  979. /*!******************************************************************************!*\
  980. !*** D:/Work2/Orienteering/TrackOffical/pages/verify/verify.vue?mpType=page ***!
  981. \******************************************************************************/
  982. /*! no static exports found */
  983. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  984. "use strict";
  985. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _verify_vue_vue_type_template_id_97e49014_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./verify.vue?vue&type=template&id=97e49014&scoped=true&mpType=page */ 29);\n/* harmony import */ var _verify_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./verify.vue?vue&type=script&lang=js&mpType=page */ 31);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _verify_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _verify_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _verify_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _verify_vue_vue_type_template_id_97e49014_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _verify_vue_vue_type_template_id_97e49014_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"97e49014\",\n null,\n false,\n _verify_vue_vue_type_template_id_97e49014_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/verify/verify.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBMEk7QUFDMUk7QUFDcUU7QUFDTDs7O0FBR2hFO0FBQ29MO0FBQ3BMLGdCQUFnQiwyTEFBVTtBQUMxQixFQUFFLHVGQUFNO0FBQ1IsRUFBRSx3R0FBTTtBQUNSLEVBQUUsaUhBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsNEdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMjguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3ZlcmlmeS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9OTdlNDkwMTQmc2NvcGVkPXRydWUmbXBUeXBlPXBhZ2VcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3ZlcmlmeS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIlxuZXhwb3J0ICogZnJvbSBcIi4vdmVyaWZ5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCI5N2U0OTAxNFwiLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJwYWdlcy92ZXJpZnkvdmVyaWZ5LnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///28\n");
  986. /***/ }),
  987. /* 29 */
  988. /*!************************************************************************************************************************!*\
  989. !*** D:/Work2/Orienteering/TrackOffical/pages/verify/verify.vue?vue&type=template&id=97e49014&scoped=true&mpType=page ***!
  990. \************************************************************************************************************************/
  991. /*! exports provided: render, staticRenderFns, recyclableRender, components */
  992. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  993. "use strict";
  994. __webpack_require__.r(__webpack_exports__);
  995. /* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_verify_vue_vue_type_template_id_97e49014_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./verify.vue?vue&type=template&id=97e49014&scoped=true&mpType=page */ 30);
  996. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_verify_vue_vue_type_template_id_97e49014_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; });
  997. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_verify_vue_vue_type_template_id_97e49014_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
  998. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_verify_vue_vue_type_template_id_97e49014_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
  999. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_verify_vue_vue_type_template_id_97e49014_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; });
  1000. /***/ }),
  1001. /* 30 */
  1002. /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  1003. !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/pages/verify/verify.vue?vue&type=template&id=97e49014&scoped=true&mpType=page ***!
  1004. \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  1005. /*! exports provided: render, staticRenderFns, recyclableRender, components */
  1006. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1007. "use strict";
  1008. __webpack_require__.r(__webpack_exports__);
  1009. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
  1010. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
  1011. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
  1012. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
  1013. var components
  1014. var render = function () {
  1015. var _vm = this
  1016. var _h = _vm.$createElement
  1017. var _c = _vm._self._c || _h
  1018. return _c(
  1019. "view",
  1020. { staticClass: _vm._$s(0, "sc", "container"), attrs: { _i: 0 } },
  1021. [
  1022. _c(
  1023. "view",
  1024. { staticClass: _vm._$s(1, "sc", "text-box"), attrs: { _i: 1 } },
  1025. [
  1026. _vm._$s(2, "i", _vm.scanResult == "")
  1027. ? _c("text", {
  1028. staticClass: _vm._$s(2, "sc", "scanResult"),
  1029. attrs: { _i: 2 },
  1030. })
  1031. : _c(
  1032. "text",
  1033. {
  1034. staticClass: _vm._$s(3, "sc", "scanResult"),
  1035. attrs: { _i: 3 },
  1036. },
  1037. [_vm._v(_vm._$s(3, "t0-0", _vm._s(_vm.scanResult)))]
  1038. ),
  1039. ]
  1040. ),
  1041. _c(
  1042. "view",
  1043. { staticClass: _vm._$s(4, "sc", "btn-box"), attrs: { _i: 4 } },
  1044. [
  1045. _c("button", {
  1046. staticClass: _vm._$s(5, "sc", "btn-scan"),
  1047. attrs: { _i: 5 },
  1048. on: {
  1049. click: function ($event) {
  1050. return _vm.handleScan()
  1051. },
  1052. },
  1053. }),
  1054. ]
  1055. ),
  1056. ]
  1057. )
  1058. }
  1059. var recyclableRender = false
  1060. var staticRenderFns = []
  1061. render._withStripped = true
  1062. /***/ }),
  1063. /* 31 */
  1064. /*!******************************************************************************************************!*\
  1065. !*** D:/Work2/Orienteering/TrackOffical/pages/verify/verify.vue?vue&type=script&lang=js&mpType=page ***!
  1066. \******************************************************************************************************/
  1067. /*! no static exports found */
  1068. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1069. "use strict";
  1070. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_verify_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./verify.vue?vue&type=script&lang=js&mpType=page */ 32);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_verify_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_verify_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_verify_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_verify_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_verify_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWluQixDQUFnQiwrbkJBQUcsRUFBQyIsImZpbGUiOiIzMS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vdmVyaWZ5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3ZlcmlmeS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///31\n");
  1071. /***/ }),
  1072. /* 32 */
  1073. /*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  1074. !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/pages/verify/verify.vue?vue&type=script&lang=js&mpType=page ***!
  1075. \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  1076. /*! no static exports found */
  1077. /***/ (function(module, exports, __webpack_require__) {
  1078. "use strict";
  1079. eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _ass_api_pb = __webpack_require__(/*! @/grpc/ass_api_pb.js */ 33);\nvar _base = _interopRequireDefault(__webpack_require__(/*! base-64 */ 38));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n data: function data() {\n return {\n userId: 0,\n uoId: 0,\n scanResult: ''\n };\n },\n onLoad: function onLoad() {},\n methods: {\n handleScan: function handleScan() {\n var that = this;\n this.scanResult = '';\n\n // 允许从相机和相册扫码\n uni.scanCode({\n success: function success(res) {\n __f__(\"log\", '条码类型:' + res.scanType, \" at pages/verify/verify.vue:36\");\n __f__(\"log\", '条码内容:' + res.result, \" at pages/verify/verify.vue:37\");\n try {\n var result = _base.default.decode(res.result);\n // console.log(result)\n result = JSON.parse(result);\n __f__(\"log\", '条码内容 Base64.decode:' + JSON.stringify(result), \" at pages/verify/verify.vue:42\");\n that.userId = result.userId;\n that.uoId = result.uoId;\n // console.log('userId:' + that.userId)\n // console.log('uoId:' + that.uoId)\n that.verification();\n } catch (e) {\n __f__(\"log\", '扫码出现异常:' + e.message, \" at pages/verify/verify.vue:49\");\n that.scanResult = '扫码错误,请扫描正确的二维码';\n }\n }\n });\n },\n // 核销\n verification: function verification() {\n var _this = this;\n // 创建请求参数并赋值\n var request = new _ass_api_pb.AssVerificationRequest();\n request.setUserid(this.userId);\n request.setUoid(this.uoId);\n // 调用客户端相应的grpc方法,发送grpc请求,并接受后台发送回来的返回值\n this.$client.assVerification(request, {}, function (err, response) {\n if (err) {\n __f__(\"log\", \"[assVerification] err: code = \".concat(err.code) + \", message = \\\"\".concat(err.message, \"\\\"\"), \" at pages/verify/verify.vue:64\");\n uni.showToast({\n title: \"\".concat(err.message, \" (err:\").concat(err.code, \")\"),\n icon: 'none',\n duration: 2000\n });\n _this.scanResult = \"\".concat(err.message, \" (err:\").concat(err.code, \")\");\n } else {\n // console.log(response)\n uni.showToast({\n title: \"\\u6838\\u9500\\u6210\\u529F\",\n icon: 'success',\n duration: 2000\n });\n _this.scanResult = '核销成功';\n }\n });\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 27)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvdmVyaWZ5L3ZlcmlmeS52dWUiXSwibmFtZXMiOlsiZGF0YSIsInVzZXJJZCIsInVvSWQiLCJzY2FuUmVzdWx0Iiwib25Mb2FkIiwibWV0aG9kcyIsImhhbmRsZVNjYW4iLCJ1bmkiLCJzdWNjZXNzIiwicmVzdWx0IiwidGhhdCIsInZlcmlmaWNhdGlvbiIsInJlcXVlc3QiLCJlcnIiLCJ0aXRsZSIsImljb24iLCJkdXJhdGlvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQWFBO0FBR0E7Ozs7Ozs7Ozs7Ozs7ZUFFQTtFQUNBQTtJQUNBO01BQ0FDO01BQ0FDO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztFQUNBQztJQUNBQztNQUNBO01BQ0E7O01BRUE7TUFDQUM7UUFDQUM7VUFDQTtVQUNBO1VBQ0E7WUFDQTtZQUNBO1lBQ0FDO1lBQ0E7WUFDQUM7WUFDQUE7WUFDQTtZQUNBO1lBQ0FBO1VBQ0E7WUFDQTtZQUNBQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFBQTtNQUNBO01BQ0E7TUFDQUM7TUFDQUE7TUFDQTtNQUNBO1FBQ0E7VUFDQSx5RkFDQUM7VUFDQU47WUFDQU87WUFDQUM7WUFDQUM7VUFDQTtVQUNBO1FBQ0E7VUFDQTtVQUNBVDtZQUNBTztZQUNBQztZQUNBQztVQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEsMkIiLCJmaWxlIjoiMzIuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXcgY2xhc3M9XCJjb250YWluZXJcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwidGV4dC1ib3hcIj5cclxuXHRcdFx0PHRleHQgdi1pZj1cInNjYW5SZXN1bHQgPT0gJydcIiBjbGFzcz1cInNjYW5SZXN1bHRcIj7lvoXmiavnoIE8L3RleHQ+XHJcblx0XHRcdDx0ZXh0IHYtZWxzZSBjbGFzcz1cInNjYW5SZXN1bHRcIj7miavnoIHnu5PmnpzvvJp7eyBzY2FuUmVzdWx0IH19PC90ZXh0PlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJidG4tYm94XCI+XHJcblx0XHRcdDxidXR0b24gY2xhc3M9XCJidG4tc2NhblwiIHR5cGU9XCJwcmltYXJ5XCIgQGNsaWNrPVwiaGFuZGxlU2NhbigpXCI+5omr5LiA5omrPC9idXR0b24+XHJcblx0XHQ8L3ZpZXc+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHRpbXBvcnQge1xyXG5cdFx0QXNzVmVyaWZpY2F0aW9uUmVxdWVzdFxyXG5cdH0gZnJvbSBcIkAvZ3JwYy9hc3NfYXBpX3BiLmpzXCJcclxuXHRpbXBvcnQgQmFzZTY0IGZyb20gJ2Jhc2UtNjQnXHJcblxyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0dXNlcklkOiAwLFxyXG5cdFx0XHRcdHVvSWQ6IDAsXHJcblx0XHRcdFx0c2NhblJlc3VsdDogJydcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdG9uTG9hZCgpIHt9LFxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHRoYW5kbGVTY2FuKCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdHRoaXMuc2NhblJlc3VsdCA9ICcnXHJcblxyXG5cdFx0XHRcdC8vIOWFgeiuuOS7juebuOacuuWSjOebuOWGjOaJq+eggVxyXG5cdFx0XHRcdHVuaS5zY2FuQ29kZSh7XHJcblx0XHRcdFx0XHRzdWNjZXNzOiBmdW5jdGlvbihyZXMpIHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+adoeeggeexu+Wei++8micgKyByZXMuc2NhblR5cGUpXHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfmnaHnoIHlhoXlrrnvvJonICsgcmVzLnJlc3VsdClcclxuXHRcdFx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdFx0XHRsZXQgcmVzdWx0ID0gQmFzZTY0LmRlY29kZShyZXMucmVzdWx0KVxyXG5cdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKHJlc3VsdClcclxuXHRcdFx0XHRcdFx0XHRyZXN1bHQgPSBKU09OLnBhcnNlKHJlc3VsdClcclxuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn5p2h56CB5YaF5a65IEJhc2U2NC5kZWNvZGXvvJonICsgSlNPTi5zdHJpbmdpZnkocmVzdWx0KSlcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnVzZXJJZCA9IHJlc3VsdC51c2VySWRcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnVvSWQgPSByZXN1bHQudW9JZFxyXG5cdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKCd1c2VySWTvvJonICsgdGhhdC51c2VySWQpXHJcblx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ3VvSWTvvJonICsgdGhhdC51b0lkKVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQudmVyaWZpY2F0aW9uKClcclxuXHRcdFx0XHRcdFx0fSBjYXRjaChlKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+aJq+eggeWHuueOsOW8guW4uO+8micgKyBlLm1lc3NhZ2UpXHJcblx0XHRcdFx0XHRcdFx0dGhhdC5zY2FuUmVzdWx0ID0gJ+aJq+eggemUmeivr++8jOivt+aJq+aPj+ato+ehrueahOS6jOe7tOeggSdcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOaguOmUgFxyXG5cdFx0XHR2ZXJpZmljYXRpb24oKSB7XHJcblx0XHRcdFx0Ly8g5Yib5bu66K+35rGC5Y+C5pWw5bm26LWL5YC8XHJcblx0XHRcdFx0dmFyIHJlcXVlc3QgPSBuZXcgQXNzVmVyaWZpY2F0aW9uUmVxdWVzdCgpXHJcblx0XHRcdFx0cmVxdWVzdC5zZXRVc2VyaWQodGhpcy51c2VySWQpXHJcblx0XHRcdFx0cmVxdWVzdC5zZXRVb2lkKHRoaXMudW9JZClcclxuXHRcdFx0XHQvLyDosIPnlKjlrqLmiLfnq6/nm7jlupTnmoRncnBj5pa55rOV77yM5Y+R6YCBZ3JwY+ivt+axgu+8jOW5tuaOpeWPl+WQjuWPsOWPkemAgeWbnuadpeeahOi/lOWbnuWAvFxyXG5cdFx0XHRcdHRoaXMuJGNsaWVudC5hc3NWZXJpZmljYXRpb24ocmVxdWVzdCwge30sIChlcnIsIHJlc3BvbnNlKSA9PiB7XHJcblx0XHRcdFx0XHRpZiAoZXJyKSB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGBbYXNzVmVyaWZpY2F0aW9uXSBlcnI6IGNvZGUgPSAke2Vyci5jb2RlfWAgK1xyXG5cdFx0XHRcdFx0XHRcdGAsIG1lc3NhZ2UgPSBcIiR7ZXJyLm1lc3NhZ2V9XCJgKVxyXG5cdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHR0aXRsZTogYCR7ZXJyLm1lc3NhZ2V9IChlcnI6JHtlcnIuY29kZX0pYCxcclxuXHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDIwMDBcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0dGhpcy5zY2FuUmVzdWx0ID0gYCR7ZXJyLm1lc3NhZ2V9IChlcnI6JHtlcnIuY29kZX0pYFxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2cocmVzcG9uc2UpXHJcblx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHRcdHRpdGxlOiBg5qC46ZSA5oiQ5YqfYCxcclxuXHRcdFx0XHRcdFx0XHRpY29uOiAnc3VjY2VzcycsXHJcblx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDIwMDBcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0dGhpcy5zY2FuUmVzdWx0ID0gJ+aguOmUgOaIkOWKnydcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgc2NvcGVkIGxhbmc9XCJzY3NzXCI+XHJcblx0LmNvbnRhaW5lciB7XHJcblx0XHRwYWRkaW5nOiAxNXB4O1xyXG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHJcblx0XHQudGV4dC1ib3gge1xyXG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0aGVpZ2h0OiAyMDBycHg7XHJcblxyXG5cdFx0XHQuc2NhblJlc3VsdCB7fVxyXG5cdFx0fVxyXG5cclxuXHRcdC5idG4tYm94IHtcclxuXHRcdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0XHRtYXJnaW4tdG9wOiAyMHB4O1xyXG5cclxuXHRcdFx0LmJ0bi1zY2FuIHtcclxuXHRcdFx0XHR3aWR0aDogOTAlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG48L3N0eWxlPlxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///32\n");
  1080. /***/ }),
  1081. /* 33 */
  1082. /*!*************************************************************!*\
  1083. !*** D:/Work2/Orienteering/TrackOffical/grpc/ass_api_pb.js ***!
  1084. \*************************************************************/
  1085. /*! no static exports found */
  1086. /***/ (function(module, exports, __webpack_require__) {
  1087. eval("// source: ass_api.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = __webpack_require__(/*! google-protobuf */ 34);\nvar goog = jspb;\nvar global = function () {\n return this || window || global || self || Function('return this')();\n}.call(null);\nvar base_pb = __webpack_require__(/*! ./base_pb.js */ 36);\ngoog.object.extend(proto, base_pb);\ngoog.exportSymbol('proto.ass.v1.AssControlInfoDetailReply', null, global);\ngoog.exportSymbol('proto.ass.v1.AssControlInfoGpsSaveRequest', null, global);\ngoog.exportSymbol('proto.ass.v1.AssControlInfoListReply', null, global);\ngoog.exportSymbol('proto.ass.v1.AssControlInfoSaveRequest', null, global);\ngoog.exportSymbol('proto.ass.v1.AssMapInfoDetailReply', null, global);\ngoog.exportSymbol('proto.ass.v1.AssShopListReply', null, global);\ngoog.exportSymbol('proto.ass.v1.AssVerificationRequest', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ass.v1.AssShopListReply = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.ass.v1.AssShopListReply.repeatedFields_, null);\n};\ngoog.inherits(proto.ass.v1.AssShopListReply, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ass.v1.AssShopListReply.displayName = 'proto.ass.v1.AssShopListReply';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ass.v1.AssControlInfoListReply = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.ass.v1.AssControlInfoListReply.repeatedFields_, null);\n};\ngoog.inherits(proto.ass.v1.AssControlInfoListReply, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ass.v1.AssControlInfoListReply.displayName = 'proto.ass.v1.AssControlInfoListReply';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ass.v1.AssMapInfoDetailReply = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.ass.v1.AssMapInfoDetailReply, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ass.v1.AssMapInfoDetailReply.displayName = 'proto.ass.v1.AssMapInfoDetailReply';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ass.v1.AssControlInfoDetailReply = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.ass.v1.AssControlInfoDetailReply.repeatedFields_, null);\n};\ngoog.inherits(proto.ass.v1.AssControlInfoDetailReply, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ass.v1.AssControlInfoDetailReply.displayName = 'proto.ass.v1.AssControlInfoDetailReply';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ass.v1.AssControlInfoSaveRequest = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.ass.v1.AssControlInfoSaveRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.ass.v1.AssControlInfoSaveRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ass.v1.AssControlInfoSaveRequest.displayName = 'proto.ass.v1.AssControlInfoSaveRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ass.v1.AssControlInfoGpsSaveRequest = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.ass.v1.AssControlInfoGpsSaveRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ass.v1.AssControlInfoGpsSaveRequest.displayName = 'proto.ass.v1.AssControlInfoGpsSaveRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ass.v1.AssVerificationRequest = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.ass.v1.AssVerificationRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.ass.v1.AssVerificationRequest.displayName = 'proto.ass.v1.AssVerificationRequest';\n}\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.ass.v1.AssShopListReply.repeatedFields_ = [1];\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.ass.v1.AssShopListReply.prototype.toObject = function (opt_includeInstance) {\n return proto.ass.v1.AssShopListReply.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ass.v1.AssShopListReply} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.ass.v1.AssShopListReply.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n listList: jspb.Message.toObjectList(msg.getListList(), base_pb.ShopList.toObject, includeInstance)\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ass.v1.AssShopListReply}\n */\nproto.ass.v1.AssShopListReply.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ass.v1.AssShopListReply();\n return proto.ass.v1.AssShopListReply.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ass.v1.AssShopListReply} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ass.v1.AssShopListReply}\n */\nproto.ass.v1.AssShopListReply.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new base_pb.ShopList();\n reader.readMessage(value, base_pb.ShopList.deserializeBinaryFromReader);\n msg.addList(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ass.v1.AssShopListReply.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.ass.v1.AssShopListReply.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ass.v1.AssShopListReply} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ass.v1.AssShopListReply.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getListList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(1, f, base_pb.ShopList.serializeBinaryToWriter);\n }\n};\n\n/**\n * repeated base.v1.ShopList list = 1;\n * @return {!Array<!proto.base.v1.ShopList>}\n */\nproto.ass.v1.AssShopListReply.prototype.getListList = function () {\n return (/** @type{!Array<!proto.base.v1.ShopList>} */\n jspb.Message.getRepeatedWrapperField(this, base_pb.ShopList, 1)\n );\n};\n\n/**\n * @param {!Array<!proto.base.v1.ShopList>} value\n * @return {!proto.ass.v1.AssShopListReply} returns this\n*/\nproto.ass.v1.AssShopListReply.prototype.setListList = function (value) {\n return jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n/**\n * @param {!proto.base.v1.ShopList=} opt_value\n * @param {number=} opt_index\n * @return {!proto.base.v1.ShopList}\n */\nproto.ass.v1.AssShopListReply.prototype.addList = function (opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.base.v1.ShopList, opt_index);\n};\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.ass.v1.AssShopListReply} returns this\n */\nproto.ass.v1.AssShopListReply.prototype.clearListList = function () {\n return this.setListList([]);\n};\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.ass.v1.AssControlInfoListReply.repeatedFields_ = [1];\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.ass.v1.AssControlInfoListReply.prototype.toObject = function (opt_includeInstance) {\n return proto.ass.v1.AssControlInfoListReply.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ass.v1.AssControlInfoListReply} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.ass.v1.AssControlInfoListReply.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n listList: jspb.Message.toObjectList(msg.getListList(), base_pb.ControlInfoList.toObject, includeInstance)\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ass.v1.AssControlInfoListReply}\n */\nproto.ass.v1.AssControlInfoListReply.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ass.v1.AssControlInfoListReply();\n return proto.ass.v1.AssControlInfoListReply.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ass.v1.AssControlInfoListReply} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ass.v1.AssControlInfoListReply}\n */\nproto.ass.v1.AssControlInfoListReply.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new base_pb.ControlInfoList();\n reader.readMessage(value, base_pb.ControlInfoList.deserializeBinaryFromReader);\n msg.addList(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ass.v1.AssControlInfoListReply.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.ass.v1.AssControlInfoListReply.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ass.v1.AssControlInfoListReply} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ass.v1.AssControlInfoListReply.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getListList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(1, f, base_pb.ControlInfoList.serializeBinaryToWriter);\n }\n};\n\n/**\n * repeated base.v1.ControlInfoList list = 1;\n * @return {!Array<!proto.base.v1.ControlInfoList>}\n */\nproto.ass.v1.AssControlInfoListReply.prototype.getListList = function () {\n return (/** @type{!Array<!proto.base.v1.ControlInfoList>} */\n jspb.Message.getRepeatedWrapperField(this, base_pb.ControlInfoList, 1)\n );\n};\n\n/**\n * @param {!Array<!proto.base.v1.ControlInfoList>} value\n * @return {!proto.ass.v1.AssControlInfoListReply} returns this\n*/\nproto.ass.v1.AssControlInfoListReply.prototype.setListList = function (value) {\n return jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n/**\n * @param {!proto.base.v1.ControlInfoList=} opt_value\n * @param {number=} opt_index\n * @return {!proto.base.v1.ControlInfoList}\n */\nproto.ass.v1.AssControlInfoListReply.prototype.addList = function (opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.base.v1.ControlInfoList, opt_index);\n};\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.ass.v1.AssControlInfoListReply} returns this\n */\nproto.ass.v1.AssControlInfoListReply.prototype.clearListList = function () {\n return this.setListList([]);\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.ass.v1.AssMapInfoDetailReply.prototype.toObject = function (opt_includeInstance) {\n return proto.ass.v1.AssMapInfoDetailReply.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ass.v1.AssMapInfoDetailReply} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.ass.v1.AssMapInfoDetailReply.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n shopid: jspb.Message.getFieldWithDefault(msg, 1, 0),\n mapname: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n zipimage: (f = msg.getZipimage()) && base_pb.NetImage.toObject(includeInstance, f)\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ass.v1.AssMapInfoDetailReply}\n */\nproto.ass.v1.AssMapInfoDetailReply.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ass.v1.AssMapInfoDetailReply();\n return proto.ass.v1.AssMapInfoDetailReply.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ass.v1.AssMapInfoDetailReply} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ass.v1.AssMapInfoDetailReply}\n */\nproto.ass.v1.AssMapInfoDetailReply.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readInt32();\n msg.setShopid(value);\n break;\n case 2:\n var value = /** @type {string} */reader.readString();\n msg.setMapname(value);\n break;\n case 3:\n var value = new base_pb.NetImage();\n reader.readMessage(value, base_pb.NetImage.deserializeBinaryFromReader);\n msg.setZipimage(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ass.v1.AssMapInfoDetailReply.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.ass.v1.AssMapInfoDetailReply.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ass.v1.AssMapInfoDetailReply} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ass.v1.AssMapInfoDetailReply.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getShopid();\n if (f !== 0) {\n writer.writeInt32(1, f);\n }\n f = message.getMapname();\n if (f.length > 0) {\n writer.writeString(2, f);\n }\n f = message.getZipimage();\n if (f != null) {\n writer.writeMessage(3, f, base_pb.NetImage.serializeBinaryToWriter);\n }\n};\n\n/**\n * optional int32 shopId = 1;\n * @return {number}\n */\nproto.ass.v1.AssMapInfoDetailReply.prototype.getShopid = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.ass.v1.AssMapInfoDetailReply} returns this\n */\nproto.ass.v1.AssMapInfoDetailReply.prototype.setShopid = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional string mapName = 2;\n * @return {string}\n */\nproto.ass.v1.AssMapInfoDetailReply.prototype.getMapname = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 2, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.ass.v1.AssMapInfoDetailReply} returns this\n */\nproto.ass.v1.AssMapInfoDetailReply.prototype.setMapname = function (value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n/**\n * optional base.v1.NetImage zipImage = 3;\n * @return {?proto.base.v1.NetImage}\n */\nproto.ass.v1.AssMapInfoDetailReply.prototype.getZipimage = function () {\n return (/** @type{?proto.base.v1.NetImage} */\n jspb.Message.getWrapperField(this, base_pb.NetImage, 3)\n );\n};\n\n/**\n * @param {?proto.base.v1.NetImage|undefined} value\n * @return {!proto.ass.v1.AssMapInfoDetailReply} returns this\n*/\nproto.ass.v1.AssMapInfoDetailReply.prototype.setZipimage = function (value) {\n return jspb.Message.setWrapperField(this, 3, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.ass.v1.AssMapInfoDetailReply} returns this\n */\nproto.ass.v1.AssMapInfoDetailReply.prototype.clearZipimage = function () {\n return this.setZipimage(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.ass.v1.AssMapInfoDetailReply.prototype.hasZipimage = function () {\n return jspb.Message.getField(this, 3) != null;\n};\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.ass.v1.AssControlInfoDetailReply.repeatedFields_ = [4];\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.ass.v1.AssControlInfoDetailReply.prototype.toObject = function (opt_includeInstance) {\n return proto.ass.v1.AssControlInfoDetailReply.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ass.v1.AssControlInfoDetailReply} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.ass.v1.AssControlInfoDetailReply.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ciid: jspb.Message.getFieldWithDefault(msg, 1, 0),\n cicode: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n position: (f = msg.getPosition()) && base_pb.Position.toObject(includeInstance, f),\n nfccodelistList: (f = jspb.Message.getRepeatedField(msg, 4)) == null ? undefined : f\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ass.v1.AssControlInfoDetailReply}\n */\nproto.ass.v1.AssControlInfoDetailReply.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ass.v1.AssControlInfoDetailReply();\n return proto.ass.v1.AssControlInfoDetailReply.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ass.v1.AssControlInfoDetailReply} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ass.v1.AssControlInfoDetailReply}\n */\nproto.ass.v1.AssControlInfoDetailReply.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readInt32();\n msg.setCiid(value);\n break;\n case 2:\n var value = /** @type {string} */reader.readString();\n msg.setCicode(value);\n break;\n case 3:\n var value = new base_pb.Position();\n reader.readMessage(value, base_pb.Position.deserializeBinaryFromReader);\n msg.setPosition(value);\n break;\n case 4:\n var value = /** @type {string} */reader.readString();\n msg.addNfccodelist(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ass.v1.AssControlInfoDetailReply.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.ass.v1.AssControlInfoDetailReply.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ass.v1.AssControlInfoDetailReply} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ass.v1.AssControlInfoDetailReply.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getCiid();\n if (f !== 0) {\n writer.writeInt32(1, f);\n }\n f = message.getCicode();\n if (f.length > 0) {\n writer.writeString(2, f);\n }\n f = message.getPosition();\n if (f != null) {\n writer.writeMessage(3, f, base_pb.Position.serializeBinaryToWriter);\n }\n f = message.getNfccodelistList();\n if (f.length > 0) {\n writer.writeRepeatedString(4, f);\n }\n};\n\n/**\n * optional int32 ciId = 1;\n * @return {number}\n */\nproto.ass.v1.AssControlInfoDetailReply.prototype.getCiid = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.ass.v1.AssControlInfoDetailReply} returns this\n */\nproto.ass.v1.AssControlInfoDetailReply.prototype.setCiid = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional string ciCode = 2;\n * @return {string}\n */\nproto.ass.v1.AssControlInfoDetailReply.prototype.getCicode = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 2, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.ass.v1.AssControlInfoDetailReply} returns this\n */\nproto.ass.v1.AssControlInfoDetailReply.prototype.setCicode = function (value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n/**\n * optional base.v1.Position position = 3;\n * @return {?proto.base.v1.Position}\n */\nproto.ass.v1.AssControlInfoDetailReply.prototype.getPosition = function () {\n return (/** @type{?proto.base.v1.Position} */\n jspb.Message.getWrapperField(this, base_pb.Position, 3)\n );\n};\n\n/**\n * @param {?proto.base.v1.Position|undefined} value\n * @return {!proto.ass.v1.AssControlInfoDetailReply} returns this\n*/\nproto.ass.v1.AssControlInfoDetailReply.prototype.setPosition = function (value) {\n return jspb.Message.setWrapperField(this, 3, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.ass.v1.AssControlInfoDetailReply} returns this\n */\nproto.ass.v1.AssControlInfoDetailReply.prototype.clearPosition = function () {\n return this.setPosition(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.ass.v1.AssControlInfoDetailReply.prototype.hasPosition = function () {\n return jspb.Message.getField(this, 3) != null;\n};\n\n/**\n * repeated string nfcCodeList = 4;\n * @return {!Array<string>}\n */\nproto.ass.v1.AssControlInfoDetailReply.prototype.getNfccodelistList = function () {\n return (/** @type {!Array<string>} */jspb.Message.getRepeatedField(this, 4)\n );\n};\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.ass.v1.AssControlInfoDetailReply} returns this\n */\nproto.ass.v1.AssControlInfoDetailReply.prototype.setNfccodelistList = function (value) {\n return jspb.Message.setField(this, 4, value || []);\n};\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.ass.v1.AssControlInfoDetailReply} returns this\n */\nproto.ass.v1.AssControlInfoDetailReply.prototype.addNfccodelist = function (value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 4, value, opt_index);\n};\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.ass.v1.AssControlInfoDetailReply} returns this\n */\nproto.ass.v1.AssControlInfoDetailReply.prototype.clearNfccodelistList = function () {\n return this.setNfccodelistList([]);\n};\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.ass.v1.AssControlInfoSaveRequest.repeatedFields_ = [2];\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.ass.v1.AssControlInfoSaveRequest.prototype.toObject = function (opt_includeInstance) {\n return proto.ass.v1.AssControlInfoSaveRequest.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ass.v1.AssControlInfoSaveRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.ass.v1.AssControlInfoSaveRequest.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ciid: jspb.Message.getFieldWithDefault(msg, 1, 0),\n nfccodelistList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ass.v1.AssControlInfoSaveRequest}\n */\nproto.ass.v1.AssControlInfoSaveRequest.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ass.v1.AssControlInfoSaveRequest();\n return proto.ass.v1.AssControlInfoSaveRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ass.v1.AssControlInfoSaveRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ass.v1.AssControlInfoSaveRequest}\n */\nproto.ass.v1.AssControlInfoSaveRequest.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readInt32();\n msg.setCiid(value);\n break;\n case 2:\n var value = /** @type {string} */reader.readString();\n msg.addNfccodelist(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ass.v1.AssControlInfoSaveRequest.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.ass.v1.AssControlInfoSaveRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ass.v1.AssControlInfoSaveRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ass.v1.AssControlInfoSaveRequest.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getCiid();\n if (f !== 0) {\n writer.writeInt32(1, f);\n }\n f = message.getNfccodelistList();\n if (f.length > 0) {\n writer.writeRepeatedString(2, f);\n }\n};\n\n/**\n * optional int32 ciId = 1;\n * @return {number}\n */\nproto.ass.v1.AssControlInfoSaveRequest.prototype.getCiid = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.ass.v1.AssControlInfoSaveRequest} returns this\n */\nproto.ass.v1.AssControlInfoSaveRequest.prototype.setCiid = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * repeated string nfcCodeList = 2;\n * @return {!Array<string>}\n */\nproto.ass.v1.AssControlInfoSaveRequest.prototype.getNfccodelistList = function () {\n return (/** @type {!Array<string>} */jspb.Message.getRepeatedField(this, 2)\n );\n};\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.ass.v1.AssControlInfoSaveRequest} returns this\n */\nproto.ass.v1.AssControlInfoSaveRequest.prototype.setNfccodelistList = function (value) {\n return jspb.Message.setField(this, 2, value || []);\n};\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.ass.v1.AssControlInfoSaveRequest} returns this\n */\nproto.ass.v1.AssControlInfoSaveRequest.prototype.addNfccodelist = function (value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 2, value, opt_index);\n};\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.ass.v1.AssControlInfoSaveRequest} returns this\n */\nproto.ass.v1.AssControlInfoSaveRequest.prototype.clearNfccodelistList = function () {\n return this.setNfccodelistList([]);\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.ass.v1.AssControlInfoGpsSaveRequest.prototype.toObject = function (opt_includeInstance) {\n return proto.ass.v1.AssControlInfoGpsSaveRequest.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ass.v1.AssControlInfoGpsSaveRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.ass.v1.AssControlInfoGpsSaveRequest.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ciid: jspb.Message.getFieldWithDefault(msg, 1, 0),\n position: (f = msg.getPosition()) && base_pb.Position.toObject(includeInstance, f)\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ass.v1.AssControlInfoGpsSaveRequest}\n */\nproto.ass.v1.AssControlInfoGpsSaveRequest.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ass.v1.AssControlInfoGpsSaveRequest();\n return proto.ass.v1.AssControlInfoGpsSaveRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ass.v1.AssControlInfoGpsSaveRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ass.v1.AssControlInfoGpsSaveRequest}\n */\nproto.ass.v1.AssControlInfoGpsSaveRequest.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readInt32();\n msg.setCiid(value);\n break;\n case 2:\n var value = new base_pb.Position();\n reader.readMessage(value, base_pb.Position.deserializeBinaryFromReader);\n msg.setPosition(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ass.v1.AssControlInfoGpsSaveRequest.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.ass.v1.AssControlInfoGpsSaveRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ass.v1.AssControlInfoGpsSaveRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ass.v1.AssControlInfoGpsSaveRequest.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getCiid();\n if (f !== 0) {\n writer.writeInt32(1, f);\n }\n f = message.getPosition();\n if (f != null) {\n writer.writeMessage(2, f, base_pb.Position.serializeBinaryToWriter);\n }\n};\n\n/**\n * optional int32 ciId = 1;\n * @return {number}\n */\nproto.ass.v1.AssControlInfoGpsSaveRequest.prototype.getCiid = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.ass.v1.AssControlInfoGpsSaveRequest} returns this\n */\nproto.ass.v1.AssControlInfoGpsSaveRequest.prototype.setCiid = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional base.v1.Position position = 2;\n * @return {?proto.base.v1.Position}\n */\nproto.ass.v1.AssControlInfoGpsSaveRequest.prototype.getPosition = function () {\n return (/** @type{?proto.base.v1.Position} */\n jspb.Message.getWrapperField(this, base_pb.Position, 2)\n );\n};\n\n/**\n * @param {?proto.base.v1.Position|undefined} value\n * @return {!proto.ass.v1.AssControlInfoGpsSaveRequest} returns this\n*/\nproto.ass.v1.AssControlInfoGpsSaveRequest.prototype.setPosition = function (value) {\n return jspb.Message.setWrapperField(this, 2, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.ass.v1.AssControlInfoGpsSaveRequest} returns this\n */\nproto.ass.v1.AssControlInfoGpsSaveRequest.prototype.clearPosition = function () {\n return this.setPosition(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.ass.v1.AssControlInfoGpsSaveRequest.prototype.hasPosition = function () {\n return jspb.Message.getField(this, 2) != null;\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.ass.v1.AssVerificationRequest.prototype.toObject = function (opt_includeInstance) {\n return proto.ass.v1.AssVerificationRequest.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.ass.v1.AssVerificationRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.ass.v1.AssVerificationRequest.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n userid: jspb.Message.getFieldWithDefault(msg, 1, 0),\n uoid: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ass.v1.AssVerificationRequest}\n */\nproto.ass.v1.AssVerificationRequest.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.ass.v1.AssVerificationRequest();\n return proto.ass.v1.AssVerificationRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ass.v1.AssVerificationRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ass.v1.AssVerificationRequest}\n */\nproto.ass.v1.AssVerificationRequest.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readInt32();\n msg.setUserid(value);\n break;\n case 2:\n var value = /** @type {number} */reader.readInt32();\n msg.setUoid(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ass.v1.AssVerificationRequest.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.ass.v1.AssVerificationRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ass.v1.AssVerificationRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ass.v1.AssVerificationRequest.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getUserid();\n if (f !== 0) {\n writer.writeInt32(1, f);\n }\n f = message.getUoid();\n if (f !== 0) {\n writer.writeInt32(2, f);\n }\n};\n\n/**\n * optional int32 userId = 1;\n * @return {number}\n */\nproto.ass.v1.AssVerificationRequest.prototype.getUserid = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.ass.v1.AssVerificationRequest} returns this\n */\nproto.ass.v1.AssVerificationRequest.prototype.setUserid = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional int32 uoId = 2;\n * @return {number}\n */\nproto.ass.v1.AssVerificationRequest.prototype.getUoid = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 2, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.ass.v1.AssVerificationRequest} returns this\n */\nproto.ass.v1.AssVerificationRequest.prototype.setUoid = function (value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\ngoog.object.extend(exports, proto.ass.v1);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vZ3JwYy9hc3NfYXBpX3BiLmpzIl0sIm5hbWVzIjpbImpzcGIiLCJyZXF1aXJlIiwiZ29vZyIsImdsb2JhbCIsIndpbmRvdyIsInNlbGYiLCJGdW5jdGlvbiIsImNhbGwiLCJiYXNlX3BiIiwib2JqZWN0IiwiZXh0ZW5kIiwicHJvdG8iLCJleHBvcnRTeW1ib2wiLCJhc3MiLCJ2MSIsIkFzc1Nob3BMaXN0UmVwbHkiLCJvcHRfZGF0YSIsIk1lc3NhZ2UiLCJpbml0aWFsaXplIiwicmVwZWF0ZWRGaWVsZHNfIiwiaW5oZXJpdHMiLCJERUJVRyIsIkNPTVBJTEVEIiwiZGlzcGxheU5hbWUiLCJBc3NDb250cm9sSW5mb0xpc3RSZXBseSIsIkFzc01hcEluZm9EZXRhaWxSZXBseSIsIkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHkiLCJBc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0IiwiQXNzQ29udHJvbEluZm9HcHNTYXZlUmVxdWVzdCIsIkFzc1ZlcmlmaWNhdGlvblJlcXVlc3QiLCJHRU5FUkFURV9UT19PQkpFQ1QiLCJwcm90b3R5cGUiLCJ0b09iamVjdCIsIm9wdF9pbmNsdWRlSW5zdGFuY2UiLCJpbmNsdWRlSW5zdGFuY2UiLCJtc2ciLCJmIiwib2JqIiwibGlzdExpc3QiLCJ0b09iamVjdExpc3QiLCJnZXRMaXN0TGlzdCIsIlNob3BMaXN0IiwiJGpzcGJNZXNzYWdlSW5zdGFuY2UiLCJkZXNlcmlhbGl6ZUJpbmFyeSIsImJ5dGVzIiwicmVhZGVyIiwiQmluYXJ5UmVhZGVyIiwiZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyIiwibmV4dEZpZWxkIiwiaXNFbmRHcm91cCIsImZpZWxkIiwiZ2V0RmllbGROdW1iZXIiLCJ2YWx1ZSIsInJlYWRNZXNzYWdlIiwiYWRkTGlzdCIsInNraXBGaWVsZCIsInNlcmlhbGl6ZUJpbmFyeSIsIndyaXRlciIsIkJpbmFyeVdyaXRlciIsInNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyIiwiZ2V0UmVzdWx0QnVmZmVyIiwibWVzc2FnZSIsInVuZGVmaW5lZCIsImxlbmd0aCIsIndyaXRlUmVwZWF0ZWRNZXNzYWdlIiwiZ2V0UmVwZWF0ZWRXcmFwcGVyRmllbGQiLCJzZXRMaXN0TGlzdCIsInNldFJlcGVhdGVkV3JhcHBlckZpZWxkIiwib3B0X3ZhbHVlIiwib3B0X2luZGV4IiwiYWRkVG9SZXBlYXRlZFdyYXBwZXJGaWVsZCIsImJhc2UiLCJjbGVhckxpc3RMaXN0IiwiQ29udHJvbEluZm9MaXN0Iiwic2hvcGlkIiwiZ2V0RmllbGRXaXRoRGVmYXVsdCIsIm1hcG5hbWUiLCJ6aXBpbWFnZSIsImdldFppcGltYWdlIiwiTmV0SW1hZ2UiLCJyZWFkSW50MzIiLCJzZXRTaG9waWQiLCJyZWFkU3RyaW5nIiwic2V0TWFwbmFtZSIsInNldFppcGltYWdlIiwiZ2V0U2hvcGlkIiwid3JpdGVJbnQzMiIsImdldE1hcG5hbWUiLCJ3cml0ZVN0cmluZyIsIndyaXRlTWVzc2FnZSIsInNldFByb3RvM0ludEZpZWxkIiwic2V0UHJvdG8zU3RyaW5nRmllbGQiLCJnZXRXcmFwcGVyRmllbGQiLCJzZXRXcmFwcGVyRmllbGQiLCJjbGVhclppcGltYWdlIiwiaGFzWmlwaW1hZ2UiLCJnZXRGaWVsZCIsImNpaWQiLCJjaWNvZGUiLCJwb3NpdGlvbiIsImdldFBvc2l0aW9uIiwiUG9zaXRpb24iLCJuZmNjb2RlbGlzdExpc3QiLCJnZXRSZXBlYXRlZEZpZWxkIiwic2V0Q2lpZCIsInNldENpY29kZSIsInNldFBvc2l0aW9uIiwiYWRkTmZjY29kZWxpc3QiLCJnZXRDaWlkIiwiZ2V0Q2ljb2RlIiwiZ2V0TmZjY29kZWxpc3RMaXN0Iiwid3JpdGVSZXBlYXRlZFN0cmluZyIsImNsZWFyUG9zaXRpb24iLCJoYXNQb3NpdGlvbiIsInNldE5mY2NvZGVsaXN0TGlzdCIsInNldEZpZWxkIiwiYWRkVG9SZXBlYXRlZEZpZWxkIiwiY2xlYXJOZmNjb2RlbGlzdExpc3QiLCJ1c2VyaWQiLCJ1b2lkIiwic2V0VXNlcmlkIiwic2V0VW9pZCIsImdldFVzZXJpZCIsImdldFVvaWQiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSUEsSUFBSSxHQUFHQyxtQkFBTyxDQUFDLHlCQUFpQixDQUFDO0FBQ3JDLElBQUlDLElBQUksR0FBR0YsSUFBSTtBQUNmLElBQUlHLE1BQU0sR0FBSSxZQUFXO0VBQUUsT0FBTyxJQUFJLElBQUlDLE1BQU0sSUFBSUQsTUFBTSxJQUFJRSxJQUFJLElBQUlDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRTtBQUFFLENBQUMsQ0FBRUMsSUFBSSxDQUFDLElBQUksQ0FBQztBQUU5RyxJQUFJQyxPQUFPLEdBQUdQLG1CQUFPLENBQUMsc0JBQWMsQ0FBQztBQUNyQ0MsSUFBSSxDQUFDTyxNQUFNLENBQUNDLE1BQU0sQ0FBQ0MsS0FBSyxFQUFFSCxPQUFPLENBQUM7QUFDbENOLElBQUksQ0FBQ1UsWUFBWSxDQUFDLHdDQUF3QyxFQUFFLElBQUksRUFBRVQsTUFBTSxDQUFDO0FBQ3pFRCxJQUFJLENBQUNVLFlBQVksQ0FBQywyQ0FBMkMsRUFBRSxJQUFJLEVBQUVULE1BQU0sQ0FBQztBQUM1RUQsSUFBSSxDQUFDVSxZQUFZLENBQUMsc0NBQXNDLEVBQUUsSUFBSSxFQUFFVCxNQUFNLENBQUM7QUFDdkVELElBQUksQ0FBQ1UsWUFBWSxDQUFDLHdDQUF3QyxFQUFFLElBQUksRUFBRVQsTUFBTSxDQUFDO0FBQ3pFRCxJQUFJLENBQUNVLFlBQVksQ0FBQyxvQ0FBb0MsRUFBRSxJQUFJLEVBQUVULE1BQU0sQ0FBQztBQUNyRUQsSUFBSSxDQUFDVSxZQUFZLENBQUMsK0JBQStCLEVBQUUsSUFBSSxFQUFFVCxNQUFNLENBQUM7QUFDaEVELElBQUksQ0FBQ1UsWUFBWSxDQUFDLHFDQUFxQyxFQUFFLElBQUksRUFBRVQsTUFBTSxDQUFDO0FBQ3RFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0FRLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNDLGdCQUFnQixHQUFHLFVBQVNDLFFBQVEsRUFBRTtFQUNqRGhCLElBQUksQ0FBQ2lCLE9BQU8sQ0FBQ0MsVUFBVSxDQUFDLElBQUksRUFBRUYsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRUwsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ0MsZ0JBQWdCLENBQUNJLGVBQWUsRUFBRSxJQUFJLENBQUM7QUFDckcsQ0FBQztBQUNEakIsSUFBSSxDQUFDa0IsUUFBUSxDQUFDVCxLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDQyxnQkFBZ0IsRUFBRWYsSUFBSSxDQUFDaUIsT0FBTyxDQUFDO0FBQzFELElBQUlmLElBQUksQ0FBQ21CLEtBQUssSUFBSSxDQUFDQyxRQUFRLEVBQUU7RUFDM0I7QUFDRjtBQUNBO0FBQ0E7RUFDRVgsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ0MsZ0JBQWdCLENBQUNRLFdBQVcsR0FBRywrQkFBK0I7QUFDN0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBWixLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDVSx1QkFBdUIsR0FBRyxVQUFTUixRQUFRLEVBQUU7RUFDeERoQixJQUFJLENBQUNpQixPQUFPLENBQUNDLFVBQVUsQ0FBQyxJQUFJLEVBQUVGLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUVMLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNVLHVCQUF1QixDQUFDTCxlQUFlLEVBQUUsSUFBSSxDQUFDO0FBQzVHLENBQUM7QUFDRGpCLElBQUksQ0FBQ2tCLFFBQVEsQ0FBQ1QsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ1UsdUJBQXVCLEVBQUV4QixJQUFJLENBQUNpQixPQUFPLENBQUM7QUFDakUsSUFBSWYsSUFBSSxDQUFDbUIsS0FBSyxJQUFJLENBQUNDLFFBQVEsRUFBRTtFQUMzQjtBQUNGO0FBQ0E7QUFDQTtFQUNFWCxLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDVSx1QkFBdUIsQ0FBQ0QsV0FBVyxHQUFHLHNDQUFzQztBQUMzRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0FaLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNXLHFCQUFxQixHQUFHLFVBQVNULFFBQVEsRUFBRTtFQUN0RGhCLElBQUksQ0FBQ2lCLE9BQU8sQ0FBQ0MsVUFBVSxDQUFDLElBQUksRUFBRUYsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO0FBQzVELENBQUM7QUFDRGQsSUFBSSxDQUFDa0IsUUFBUSxDQUFDVCxLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDVyxxQkFBcUIsRUFBRXpCLElBQUksQ0FBQ2lCLE9BQU8sQ0FBQztBQUMvRCxJQUFJZixJQUFJLENBQUNtQixLQUFLLElBQUksQ0FBQ0MsUUFBUSxFQUFFO0VBQzNCO0FBQ0Y7QUFDQTtBQUNBO0VBQ0VYLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNXLHFCQUFxQixDQUFDRixXQUFXLEdBQUcsb0NBQW9DO0FBQ3ZGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQVosS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ1kseUJBQXlCLEdBQUcsVUFBU1YsUUFBUSxFQUFFO0VBQzFEaEIsSUFBSSxDQUFDaUIsT0FBTyxDQUFDQyxVQUFVLENBQUMsSUFBSSxFQUFFRixRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFTCxLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDWSx5QkFBeUIsQ0FBQ1AsZUFBZSxFQUFFLElBQUksQ0FBQztBQUM5RyxDQUFDO0FBQ0RqQixJQUFJLENBQUNrQixRQUFRLENBQUNULEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNZLHlCQUF5QixFQUFFMUIsSUFBSSxDQUFDaUIsT0FBTyxDQUFDO0FBQ25FLElBQUlmLElBQUksQ0FBQ21CLEtBQUssSUFBSSxDQUFDQyxRQUFRLEVBQUU7RUFDM0I7QUFDRjtBQUNBO0FBQ0E7RUFDRVgsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ1kseUJBQXlCLENBQUNILFdBQVcsR0FBRyx3Q0FBd0M7QUFDL0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBWixLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDYSx5QkFBeUIsR0FBRyxVQUFTWCxRQUFRLEVBQUU7RUFDMURoQixJQUFJLENBQUNpQixPQUFPLENBQUNDLFVBQVUsQ0FBQyxJQUFJLEVBQUVGLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUVMLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNhLHlCQUF5QixDQUFDUixlQUFlLEVBQUUsSUFBSSxDQUFDO0FBQzlHLENBQUM7QUFDRGpCLElBQUksQ0FBQ2tCLFFBQVEsQ0FBQ1QsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ2EseUJBQXlCLEVBQUUzQixJQUFJLENBQUNpQixPQUFPLENBQUM7QUFDbkUsSUFBSWYsSUFBSSxDQUFDbUIsS0FBSyxJQUFJLENBQUNDLFFBQVEsRUFBRTtFQUMzQjtBQUNGO0FBQ0E7QUFDQTtFQUNFWCxLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDYSx5QkFBeUIsQ0FBQ0osV0FBVyxHQUFHLHdDQUF3QztBQUMvRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0FaLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNjLDRCQUE0QixHQUFHLFVBQVNaLFFBQVEsRUFBRTtFQUM3RGhCLElBQUksQ0FBQ2lCLE9BQU8sQ0FBQ0MsVUFBVSxDQUFDLElBQUksRUFBRUYsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO0FBQzVELENBQUM7QUFDRGQsSUFBSSxDQUFDa0IsUUFBUSxDQUFDVCxLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDYyw0QkFBNEIsRUFBRTVCLElBQUksQ0FBQ2lCLE9BQU8sQ0FBQztBQUN0RSxJQUFJZixJQUFJLENBQUNtQixLQUFLLElBQUksQ0FBQ0MsUUFBUSxFQUFFO0VBQzNCO0FBQ0Y7QUFDQTtBQUNBO0VBQ0VYLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNjLDRCQUE0QixDQUFDTCxXQUFXLEdBQUcsMkNBQTJDO0FBQ3JHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQVosS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ2Usc0JBQXNCLEdBQUcsVUFBU2IsUUFBUSxFQUFFO0VBQ3ZEaEIsSUFBSSxDQUFDaUIsT0FBTyxDQUFDQyxVQUFVLENBQUMsSUFBSSxFQUFFRixRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7QUFDNUQsQ0FBQztBQUNEZCxJQUFJLENBQUNrQixRQUFRLENBQUNULEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNlLHNCQUFzQixFQUFFN0IsSUFBSSxDQUFDaUIsT0FBTyxDQUFDO0FBQ2hFLElBQUlmLElBQUksQ0FBQ21CLEtBQUssSUFBSSxDQUFDQyxRQUFRLEVBQUU7RUFDM0I7QUFDRjtBQUNBO0FBQ0E7RUFDRVgsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ2Usc0JBQXNCLENBQUNOLFdBQVcsR0FBRyxxQ0FBcUM7QUFDekY7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBWixLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDQyxnQkFBZ0IsQ0FBQ0ksZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBSW5ELElBQUluQixJQUFJLENBQUNpQixPQUFPLENBQUNhLGtCQUFrQixFQUFFO0VBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBbkIsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ0MsZ0JBQWdCLENBQUNnQixTQUFTLENBQUNDLFFBQVEsR0FBRyxVQUFTQyxtQkFBbUIsRUFBRTtJQUMvRSxPQUFPdEIsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ0MsZ0JBQWdCLENBQUNpQixRQUFRLENBQUNDLG1CQUFtQixFQUFFLElBQUksQ0FBQztFQUMxRSxDQUFDOztFQUdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBdEIsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ0MsZ0JBQWdCLENBQUNpQixRQUFRLEdBQUcsVUFBU0UsZUFBZSxFQUFFQyxHQUFHLEVBQUU7SUFDdEUsSUFBSUMsQ0FBQztNQUFFQyxHQUFHLEdBQUc7UUFDWEMsUUFBUSxFQUFFdEMsSUFBSSxDQUFDaUIsT0FBTyxDQUFDc0IsWUFBWSxDQUFDSixHQUFHLENBQUNLLFdBQVcsRUFBRSxFQUNyRGhDLE9BQU8sQ0FBQ2lDLFFBQVEsQ0FBQ1QsUUFBUSxFQUFFRSxlQUFlO01BQzVDLENBQUM7SUFFRCxJQUFJQSxlQUFlLEVBQUU7TUFDbkJHLEdBQUcsQ0FBQ0ssb0JBQW9CLEdBQUdQLEdBQUc7SUFDaEM7SUFDQSxPQUFPRSxHQUFHO0VBQ1osQ0FBQztBQUNEOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTFCLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNDLGdCQUFnQixDQUFDNEIsaUJBQWlCLEdBQUcsVUFBU0MsS0FBSyxFQUFFO0VBQ2hFLElBQUlDLE1BQU0sR0FBRyxJQUFJN0MsSUFBSSxDQUFDOEMsWUFBWSxDQUFDRixLQUFLLENBQUM7RUFDekMsSUFBSVQsR0FBRyxHQUFHLElBQUl4QixLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDQyxnQkFBZ0I7RUFDM0MsT0FBT0osS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ0MsZ0JBQWdCLENBQUNnQywyQkFBMkIsQ0FBQ1osR0FBRyxFQUFFVSxNQUFNLENBQUM7QUFDL0UsQ0FBQzs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBbEMsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ0MsZ0JBQWdCLENBQUNnQywyQkFBMkIsR0FBRyxVQUFTWixHQUFHLEVBQUVVLE1BQU0sRUFBRTtFQUNoRixPQUFPQSxNQUFNLENBQUNHLFNBQVMsRUFBRSxFQUFFO0lBQ3pCLElBQUlILE1BQU0sQ0FBQ0ksVUFBVSxFQUFFLEVBQUU7TUFDdkI7SUFDRjtJQUNBLElBQUlDLEtBQUssR0FBR0wsTUFBTSxDQUFDTSxjQUFjLEVBQUU7SUFDbkMsUUFBUUQsS0FBSztNQUNiLEtBQUssQ0FBQztRQUNKLElBQUlFLEtBQUssR0FBRyxJQUFJNUMsT0FBTyxDQUFDaUMsUUFBUTtRQUNoQ0ksTUFBTSxDQUFDUSxXQUFXLENBQUNELEtBQUssRUFBQzVDLE9BQU8sQ0FBQ2lDLFFBQVEsQ0FBQ00sMkJBQTJCLENBQUM7UUFDdEVaLEdBQUcsQ0FBQ21CLE9BQU8sQ0FBQ0YsS0FBSyxDQUFDO1FBQ2xCO01BQ0Y7UUFDRVAsTUFBTSxDQUFDVSxTQUFTLEVBQUU7UUFDbEI7SUFBTTtFQUVWO0VBQ0EsT0FBT3BCLEdBQUc7QUFDWixDQUFDOztBQUdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0F4QixLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDQyxnQkFBZ0IsQ0FBQ2dCLFNBQVMsQ0FBQ3lCLGVBQWUsR0FBRyxZQUFXO0VBQ25FLElBQUlDLE1BQU0sR0FBRyxJQUFJekQsSUFBSSxDQUFDMEQsWUFBWSxFQUFFO0VBQ3BDL0MsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ0MsZ0JBQWdCLENBQUM0Qyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUVGLE1BQU0sQ0FBQztFQUNuRSxPQUFPQSxNQUFNLENBQUNHLGVBQWUsRUFBRTtBQUNqQyxDQUFDOztBQUdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0FqRCxLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDQyxnQkFBZ0IsQ0FBQzRDLHVCQUF1QixHQUFHLFVBQVNFLE9BQU8sRUFBRUosTUFBTSxFQUFFO0VBQ2hGLElBQUlyQixDQUFDLEdBQUcwQixTQUFTO0VBQ2pCMUIsQ0FBQyxHQUFHeUIsT0FBTyxDQUFDckIsV0FBVyxFQUFFO0VBQ3pCLElBQUlKLENBQUMsQ0FBQzJCLE1BQU0sR0FBRyxDQUFDLEVBQUU7SUFDaEJOLE1BQU0sQ0FBQ08sb0JBQW9CLENBQ3pCLENBQUMsRUFDRDVCLENBQUMsRUFDRDVCLE9BQU8sQ0FBQ2lDLFFBQVEsQ0FBQ2tCLHVCQUF1QixDQUN6QztFQUNIO0FBQ0YsQ0FBQzs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBaEQsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ0MsZ0JBQWdCLENBQUNnQixTQUFTLENBQUNTLFdBQVcsR0FBRyxZQUFXO0VBQy9ELE9BQU87SUFDTHhDLElBQUksQ0FBQ2lCLE9BQU8sQ0FBQ2dELHVCQUF1QixDQUFDLElBQUksRUFBRXpELE9BQU8sQ0FBQ2lDLFFBQVEsRUFBRSxDQUFDO0VBQUM7QUFDbkUsQ0FBQzs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOUIsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ0MsZ0JBQWdCLENBQUNnQixTQUFTLENBQUNtQyxXQUFXLEdBQUcsVUFBU2QsS0FBSyxFQUFFO0VBQ3BFLE9BQU9wRCxJQUFJLENBQUNpQixPQUFPLENBQUNrRCx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFZixLQUFLLENBQUM7QUFDN0QsQ0FBQzs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0F6QyxLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDQyxnQkFBZ0IsQ0FBQ2dCLFNBQVMsQ0FBQ3VCLE9BQU8sR0FBRyxVQUFTYyxTQUFTLEVBQUVDLFNBQVMsRUFBRTtFQUMvRSxPQUFPckUsSUFBSSxDQUFDaUIsT0FBTyxDQUFDcUQseUJBQXlCLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRUYsU0FBUyxFQUFFekQsS0FBSyxDQUFDNEQsSUFBSSxDQUFDekQsRUFBRSxDQUFDMkIsUUFBUSxFQUFFNEIsU0FBUyxDQUFDO0FBQ3RHLENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTFELEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNDLGdCQUFnQixDQUFDZ0IsU0FBUyxDQUFDeUMsYUFBYSxHQUFHLFlBQVc7RUFDakUsT0FBTyxJQUFJLENBQUNOLFdBQVcsQ0FBQyxFQUFFLENBQUM7QUFDN0IsQ0FBQzs7QUFJRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0F2RCxLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDVSx1QkFBdUIsQ0FBQ0wsZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBSTFELElBQUluQixJQUFJLENBQUNpQixPQUFPLENBQUNhLGtCQUFrQixFQUFFO0VBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBbkIsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ1UsdUJBQXVCLENBQUNPLFNBQVMsQ0FBQ0MsUUFBUSxHQUFHLFVBQVNDLG1CQUFtQixFQUFFO0lBQ3RGLE9BQU90QixLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDVSx1QkFBdUIsQ0FBQ1EsUUFBUSxDQUFDQyxtQkFBbUIsRUFBRSxJQUFJLENBQUM7RUFDakYsQ0FBQzs7RUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQXRCLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNVLHVCQUF1QixDQUFDUSxRQUFRLEdBQUcsVUFBU0UsZUFBZSxFQUFFQyxHQUFHLEVBQUU7SUFDN0UsSUFBSUMsQ0FBQztNQUFFQyxHQUFHLEdBQUc7UUFDWEMsUUFBUSxFQUFFdEMsSUFBSSxDQUFDaUIsT0FBTyxDQUFDc0IsWUFBWSxDQUFDSixHQUFHLENBQUNLLFdBQVcsRUFBRSxFQUNyRGhDLE9BQU8sQ0FBQ2lFLGVBQWUsQ0FBQ3pDLFFBQVEsRUFBRUUsZUFBZTtNQUNuRCxDQUFDO0lBRUQsSUFBSUEsZUFBZSxFQUFFO01BQ25CRyxHQUFHLENBQUNLLG9CQUFvQixHQUFHUCxHQUFHO0lBQ2hDO0lBQ0EsT0FBT0UsR0FBRztFQUNaLENBQUM7QUFDRDs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0ExQixLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDVSx1QkFBdUIsQ0FBQ21CLGlCQUFpQixHQUFHLFVBQVNDLEtBQUssRUFBRTtFQUN2RSxJQUFJQyxNQUFNLEdBQUcsSUFBSTdDLElBQUksQ0FBQzhDLFlBQVksQ0FBQ0YsS0FBSyxDQUFDO0VBQ3pDLElBQUlULEdBQUcsR0FBRyxJQUFJeEIsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ1UsdUJBQXVCO0VBQ2xELE9BQU9iLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNVLHVCQUF1QixDQUFDdUIsMkJBQTJCLENBQUNaLEdBQUcsRUFBRVUsTUFBTSxDQUFDO0FBQ3RGLENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQWxDLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNVLHVCQUF1QixDQUFDdUIsMkJBQTJCLEdBQUcsVUFBU1osR0FBRyxFQUFFVSxNQUFNLEVBQUU7RUFDdkYsT0FBT0EsTUFBTSxDQUFDRyxTQUFTLEVBQUUsRUFBRTtJQUN6QixJQUFJSCxNQUFNLENBQUNJLFVBQVUsRUFBRSxFQUFFO01BQ3ZCO0lBQ0Y7SUFDQSxJQUFJQyxLQUFLLEdBQUdMLE1BQU0sQ0FBQ00sY0FBYyxFQUFFO0lBQ25DLFFBQVFELEtBQUs7TUFDYixLQUFLLENBQUM7UUFDSixJQUFJRSxLQUFLLEdBQUcsSUFBSTVDLE9BQU8sQ0FBQ2lFLGVBQWU7UUFDdkM1QixNQUFNLENBQUNRLFdBQVcsQ0FBQ0QsS0FBSyxFQUFDNUMsT0FBTyxDQUFDaUUsZUFBZSxDQUFDMUIsMkJBQTJCLENBQUM7UUFDN0VaLEdBQUcsQ0FBQ21CLE9BQU8sQ0FBQ0YsS0FBSyxDQUFDO1FBQ2xCO01BQ0Y7UUFDRVAsTUFBTSxDQUFDVSxTQUFTLEVBQUU7UUFDbEI7SUFBTTtFQUVWO0VBQ0EsT0FBT3BCLEdBQUc7QUFDWixDQUFDOztBQUdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0F4QixLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDVSx1QkFBdUIsQ0FBQ08sU0FBUyxDQUFDeUIsZUFBZSxHQUFHLFlBQVc7RUFDMUUsSUFBSUMsTUFBTSxHQUFHLElBQUl6RCxJQUFJLENBQUMwRCxZQUFZLEVBQUU7RUFDcEMvQyxLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDVSx1QkFBdUIsQ0FBQ21DLHVCQUF1QixDQUFDLElBQUksRUFBRUYsTUFBTSxDQUFDO0VBQzFFLE9BQU9BLE1BQU0sQ0FBQ0csZUFBZSxFQUFFO0FBQ2pDLENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQWpELEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNVLHVCQUF1QixDQUFDbUMsdUJBQXVCLEdBQUcsVUFBU0UsT0FBTyxFQUFFSixNQUFNLEVBQUU7RUFDdkYsSUFBSXJCLENBQUMsR0FBRzBCLFNBQVM7RUFDakIxQixDQUFDLEdBQUd5QixPQUFPLENBQUNyQixXQUFXLEVBQUU7RUFDekIsSUFBSUosQ0FBQyxDQUFDMkIsTUFBTSxHQUFHLENBQUMsRUFBRTtJQUNoQk4sTUFBTSxDQUFDTyxvQkFBb0IsQ0FDekIsQ0FBQyxFQUNENUIsQ0FBQyxFQUNENUIsT0FBTyxDQUFDaUUsZUFBZSxDQUFDZCx1QkFBdUIsQ0FDaEQ7RUFDSDtBQUNGLENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQWhELEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNVLHVCQUF1QixDQUFDTyxTQUFTLENBQUNTLFdBQVcsR0FBRyxZQUFXO0VBQ3RFLE9BQU87SUFDTHhDLElBQUksQ0FBQ2lCLE9BQU8sQ0FBQ2dELHVCQUF1QixDQUFDLElBQUksRUFBRXpELE9BQU8sQ0FBQ2lFLGVBQWUsRUFBRSxDQUFDO0VBQUM7QUFDMUUsQ0FBQzs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOUQsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ1UsdUJBQXVCLENBQUNPLFNBQVMsQ0FBQ21DLFdBQVcsR0FBRyxVQUFTZCxLQUFLLEVBQUU7RUFDM0UsT0FBT3BELElBQUksQ0FBQ2lCLE9BQU8sQ0FBQ2tELHVCQUF1QixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUVmLEtBQUssQ0FBQztBQUM3RCxDQUFDOztBQUdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQXpDLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNVLHVCQUF1QixDQUFDTyxTQUFTLENBQUN1QixPQUFPLEdBQUcsVUFBU2MsU0FBUyxFQUFFQyxTQUFTLEVBQUU7RUFDdEYsT0FBT3JFLElBQUksQ0FBQ2lCLE9BQU8sQ0FBQ3FELHlCQUF5QixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUVGLFNBQVMsRUFBRXpELEtBQUssQ0FBQzRELElBQUksQ0FBQ3pELEVBQUUsQ0FBQzJELGVBQWUsRUFBRUosU0FBUyxDQUFDO0FBQzdHLENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTFELEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNVLHVCQUF1QixDQUFDTyxTQUFTLENBQUN5QyxhQUFhLEdBQUcsWUFBVztFQUN4RSxPQUFPLElBQUksQ0FBQ04sV0FBVyxDQUFDLEVBQUUsQ0FBQztBQUM3QixDQUFDO0FBTUQsSUFBSWxFLElBQUksQ0FBQ2lCLE9BQU8sQ0FBQ2Esa0JBQWtCLEVBQUU7RUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0FuQixLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDVyxxQkFBcUIsQ0FBQ00sU0FBUyxDQUFDQyxRQUFRLEdBQUcsVUFBU0MsbUJBQW1CLEVBQUU7SUFDcEYsT0FBT3RCLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNXLHFCQUFxQixDQUFDTyxRQUFRLENBQUNDLG1CQUFtQixFQUFFLElBQUksQ0FBQztFQUMvRSxDQUFDOztFQUdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBdEIsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ1cscUJBQXFCLENBQUNPLFFBQVEsR0FBRyxVQUFTRSxlQUFlLEVBQUVDLEdBQUcsRUFBRTtJQUMzRSxJQUFJQyxDQUFDO01BQUVDLEdBQUcsR0FBRztRQUNYcUMsTUFBTSxFQUFFMUUsSUFBSSxDQUFDaUIsT0FBTyxDQUFDMEQsbUJBQW1CLENBQUN4QyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuRHlDLE9BQU8sRUFBRTVFLElBQUksQ0FBQ2lCLE9BQU8sQ0FBQzBELG1CQUFtQixDQUFDeEMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDckQwQyxRQUFRLEVBQUUsQ0FBQ3pDLENBQUMsR0FBR0QsR0FBRyxDQUFDMkMsV0FBVyxFQUFFLEtBQUt0RSxPQUFPLENBQUN1RSxRQUFRLENBQUMvQyxRQUFRLENBQUNFLGVBQWUsRUFBRUUsQ0FBQztNQUNuRixDQUFDO0lBRUQsSUFBSUYsZUFBZSxFQUFFO01BQ25CRyxHQUFHLENBQUNLLG9CQUFvQixHQUFHUCxHQUFHO0lBQ2hDO0lBQ0EsT0FBT0UsR0FBRztFQUNaLENBQUM7QUFDRDs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0ExQixLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDVyxxQkFBcUIsQ0FBQ2tCLGlCQUFpQixHQUFHLFVBQVNDLEtBQUssRUFBRTtFQUNyRSxJQUFJQyxNQUFNLEdBQUcsSUFBSTdDLElBQUksQ0FBQzhDLFlBQVksQ0FBQ0YsS0FBSyxDQUFDO0VBQ3pDLElBQUlULEdBQUcsR0FBRyxJQUFJeEIsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ1cscUJBQXFCO0VBQ2hELE9BQU9kLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNXLHFCQUFxQixDQUFDc0IsMkJBQTJCLENBQUNaLEdBQUcsRUFBRVUsTUFBTSxDQUFDO0FBQ3BGLENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQWxDLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNXLHFCQUFxQixDQUFDc0IsMkJBQTJCLEdBQUcsVUFBU1osR0FBRyxFQUFFVSxNQUFNLEVBQUU7RUFDckYsT0FBT0EsTUFBTSxDQUFDRyxTQUFTLEVBQUUsRUFBRTtJQUN6QixJQUFJSCxNQUFNLENBQUNJLFVBQVUsRUFBRSxFQUFFO01BQ3ZCO0lBQ0Y7SUFDQSxJQUFJQyxLQUFLLEdBQUdMLE1BQU0sQ0FBQ00sY0FBYyxFQUFFO0lBQ25DLFFBQVFELEtBQUs7TUFDYixLQUFLLENBQUM7UUFDSixJQUFJRSxLQUFLLEdBQUcscUJBQXVCUCxNQUFNLENBQUNtQyxTQUFTLEVBQUc7UUFDdEQ3QyxHQUFHLENBQUM4QyxTQUFTLENBQUM3QixLQUFLLENBQUM7UUFDcEI7TUFDRixLQUFLLENBQUM7UUFDSixJQUFJQSxLQUFLLEdBQUcscUJBQXVCUCxNQUFNLENBQUNxQyxVQUFVLEVBQUc7UUFDdkQvQyxHQUFHLENBQUNnRCxVQUFVLENBQUMvQixLQUFLLENBQUM7UUFDckI7TUFDRixLQUFLLENBQUM7UUFDSixJQUFJQSxLQUFLLEdBQUcsSUFBSTVDLE9BQU8sQ0FBQ3VFLFFBQVE7UUFDaENsQyxNQUFNLENBQUNRLFdBQVcsQ0FBQ0QsS0FBSyxFQUFDNUMsT0FBTyxDQUFDdUUsUUFBUSxDQUFDaEMsMkJBQTJCLENBQUM7UUFDdEVaLEdBQUcsQ0FBQ2lELFdBQVcsQ0FBQ2hDLEtBQUssQ0FBQztRQUN0QjtNQUNGO1FBQ0VQLE1BQU0sQ0FBQ1UsU0FBUyxFQUFFO1FBQ2xCO0lBQU07RUFFVjtFQUNBLE9BQU9wQixHQUFHO0FBQ1osQ0FBQzs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBeEIsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ1cscUJBQXFCLENBQUNNLFNBQVMsQ0FBQ3lCLGVBQWUsR0FBRyxZQUFXO0VBQ3hFLElBQUlDLE1BQU0sR0FBRyxJQUFJekQsSUFBSSxDQUFDMEQsWUFBWSxFQUFFO0VBQ3BDL0MsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ1cscUJBQXFCLENBQUNrQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUVGLE1BQU0sQ0FBQztFQUN4RSxPQUFPQSxNQUFNLENBQUNHLGVBQWUsRUFBRTtBQUNqQyxDQUFDOztBQUdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0FqRCxLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDVyxxQkFBcUIsQ0FBQ2tDLHVCQUF1QixHQUFHLFVBQVNFLE9BQU8sRUFBRUosTUFBTSxFQUFFO0VBQ3JGLElBQUlyQixDQUFDLEdBQUcwQixTQUFTO0VBQ2pCMUIsQ0FBQyxHQUFHeUIsT0FBTyxDQUFDd0IsU0FBUyxFQUFFO0VBQ3ZCLElBQUlqRCxDQUFDLEtBQUssQ0FBQyxFQUFFO0lBQ1hxQixNQUFNLENBQUM2QixVQUFVLENBQ2YsQ0FBQyxFQUNEbEQsQ0FBQyxDQUNGO0VBQ0g7RUFDQUEsQ0FBQyxHQUFHeUIsT0FBTyxDQUFDMEIsVUFBVSxFQUFFO0VBQ3hCLElBQUluRCxDQUFDLENBQUMyQixNQUFNLEdBQUcsQ0FBQyxFQUFFO0lBQ2hCTixNQUFNLENBQUMrQixXQUFXLENBQ2hCLENBQUMsRUFDRHBELENBQUMsQ0FDRjtFQUNIO0VBQ0FBLENBQUMsR0FBR3lCLE9BQU8sQ0FBQ2lCLFdBQVcsRUFBRTtFQUN6QixJQUFJMUMsQ0FBQyxJQUFJLElBQUksRUFBRTtJQUNicUIsTUFBTSxDQUFDZ0MsWUFBWSxDQUNqQixDQUFDLEVBQ0RyRCxDQUFDLEVBQ0Q1QixPQUFPLENBQUN1RSxRQUFRLENBQUNwQix1QkFBdUIsQ0FDekM7RUFDSDtBQUNGLENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQWhELEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNXLHFCQUFxQixDQUFDTSxTQUFTLENBQUNzRCxTQUFTLEdBQUcsWUFBVztFQUNsRSxPQUFPLHNCQUF1QnJGLElBQUksQ0FBQ2lCLE9BQU8sQ0FBQzBELG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztFQUFDO0FBQzVFLENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQWhFLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNXLHFCQUFxQixDQUFDTSxTQUFTLENBQUNrRCxTQUFTLEdBQUcsVUFBUzdCLEtBQUssRUFBRTtFQUN2RSxPQUFPcEQsSUFBSSxDQUFDaUIsT0FBTyxDQUFDeUUsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRXRDLEtBQUssQ0FBQztBQUN2RCxDQUFDOztBQUdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0F6QyxLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDVyxxQkFBcUIsQ0FBQ00sU0FBUyxDQUFDd0QsVUFBVSxHQUFHLFlBQVc7RUFDbkUsT0FBTyxzQkFBdUJ2RixJQUFJLENBQUNpQixPQUFPLENBQUMwRCxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUU7RUFBQztBQUM3RSxDQUFDOztBQUdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0FoRSxLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDVyxxQkFBcUIsQ0FBQ00sU0FBUyxDQUFDb0QsVUFBVSxHQUFHLFVBQVMvQixLQUFLLEVBQUU7RUFDeEUsT0FBT3BELElBQUksQ0FBQ2lCLE9BQU8sQ0FBQzBFLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUV2QyxLQUFLLENBQUM7QUFDMUQsQ0FBQzs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBekMsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ1cscUJBQXFCLENBQUNNLFNBQVMsQ0FBQytDLFdBQVcsR0FBRyxZQUFXO0VBQ3BFLE9BQU87SUFDTDlFLElBQUksQ0FBQ2lCLE9BQU8sQ0FBQzJFLGVBQWUsQ0FBQyxJQUFJLEVBQUVwRixPQUFPLENBQUN1RSxRQUFRLEVBQUUsQ0FBQztFQUFDO0FBQzNELENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQXBFLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNXLHFCQUFxQixDQUFDTSxTQUFTLENBQUNxRCxXQUFXLEdBQUcsVUFBU2hDLEtBQUssRUFBRTtFQUN6RSxPQUFPcEQsSUFBSSxDQUFDaUIsT0FBTyxDQUFDNEUsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUV6QyxLQUFLLENBQUM7QUFDckQsQ0FBQzs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBekMsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ1cscUJBQXFCLENBQUNNLFNBQVMsQ0FBQytELGFBQWEsR0FBRyxZQUFXO0VBQ3RFLE9BQU8sSUFBSSxDQUFDVixXQUFXLENBQUN0QixTQUFTLENBQUM7QUFDcEMsQ0FBQzs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBbkQsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ1cscUJBQXFCLENBQUNNLFNBQVMsQ0FBQ2dFLFdBQVcsR0FBRyxZQUFXO0VBQ3BFLE9BQU8vRixJQUFJLENBQUNpQixPQUFPLENBQUMrRSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUk7QUFDL0MsQ0FBQzs7QUFJRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0FyRixLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDWSx5QkFBeUIsQ0FBQ1AsZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBSTVELElBQUluQixJQUFJLENBQUNpQixPQUFPLENBQUNhLGtCQUFrQixFQUFFO0VBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBbkIsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ1kseUJBQXlCLENBQUNLLFNBQVMsQ0FBQ0MsUUFBUSxHQUFHLFVBQVNDLG1CQUFtQixFQUFFO0lBQ3hGLE9BQU90QixLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDWSx5QkFBeUIsQ0FBQ00sUUFBUSxDQUFDQyxtQkFBbUIsRUFBRSxJQUFJLENBQUM7RUFDbkYsQ0FBQzs7RUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQXRCLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNZLHlCQUF5QixDQUFDTSxRQUFRLEdBQUcsVUFBU0UsZUFBZSxFQUFFQyxHQUFHLEVBQUU7SUFDL0UsSUFBSUMsQ0FBQztNQUFFQyxHQUFHLEdBQUc7UUFDWDRELElBQUksRUFBRWpHLElBQUksQ0FBQ2lCLE9BQU8sQ0FBQzBELG1CQUFtQixDQUFDeEMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDakQrRCxNQUFNLEVBQUVsRyxJQUFJLENBQUNpQixPQUFPLENBQUMwRCxtQkFBbUIsQ0FBQ3hDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3BEZ0UsUUFBUSxFQUFFLENBQUMvRCxDQUFDLEdBQUdELEdBQUcsQ0FBQ2lFLFdBQVcsRUFBRSxLQUFLNUYsT0FBTyxDQUFDNkYsUUFBUSxDQUFDckUsUUFBUSxDQUFDRSxlQUFlLEVBQUVFLENBQUMsQ0FBQztRQUNsRmtFLGVBQWUsRUFBRSxDQUFDbEUsQ0FBQyxHQUFHcEMsSUFBSSxDQUFDaUIsT0FBTyxDQUFDc0YsZ0JBQWdCLENBQUNwRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxHQUFHMkIsU0FBUyxHQUFHMUI7TUFDckYsQ0FBQztJQUVELElBQUlGLGVBQWUsRUFBRTtNQUNuQkcsR0FBRyxDQUFDSyxvQkFBb0IsR0FBR1AsR0FBRztJQUNoQztJQUNBLE9BQU9FLEdBQUc7RUFDWixDQUFDO0FBQ0Q7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBMUIsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ1kseUJBQXlCLENBQUNpQixpQkFBaUIsR0FBRyxVQUFTQyxLQUFLLEVBQUU7RUFDekUsSUFBSUMsTUFBTSxHQUFHLElBQUk3QyxJQUFJLENBQUM4QyxZQUFZLENBQUNGLEtBQUssQ0FBQztFQUN6QyxJQUFJVCxHQUFHLEdBQUcsSUFBSXhCLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNZLHlCQUF5QjtFQUNwRCxPQUFPZixLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDWSx5QkFBeUIsQ0FBQ3FCLDJCQUEyQixDQUFDWixHQUFHLEVBQUVVLE1BQU0sQ0FBQztBQUN4RixDQUFDOztBQUdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0FsQyxLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDWSx5QkFBeUIsQ0FBQ3FCLDJCQUEyQixHQUFHLFVBQVNaLEdBQUcsRUFBRVUsTUFBTSxFQUFFO0VBQ3pGLE9BQU9BLE1BQU0sQ0FBQ0csU0FBUyxFQUFFLEVBQUU7SUFDekIsSUFBSUgsTUFBTSxDQUFDSSxVQUFVLEVBQUUsRUFBRTtNQUN2QjtJQUNGO0lBQ0EsSUFBSUMsS0FBSyxHQUFHTCxNQUFNLENBQUNNLGNBQWMsRUFBRTtJQUNuQyxRQUFRRCxLQUFLO01BQ2IsS0FBSyxDQUFDO1FBQ0osSUFBSUUsS0FBSyxHQUFHLHFCQUF1QlAsTUFBTSxDQUFDbUMsU0FBUyxFQUFHO1FBQ3REN0MsR0FBRyxDQUFDcUUsT0FBTyxDQUFDcEQsS0FBSyxDQUFDO1FBQ2xCO01BQ0YsS0FBSyxDQUFDO1FBQ0osSUFBSUEsS0FBSyxHQUFHLHFCQUF1QlAsTUFBTSxDQUFDcUMsVUFBVSxFQUFHO1FBQ3ZEL0MsR0FBRyxDQUFDc0UsU0FBUyxDQUFDckQsS0FBSyxDQUFDO1FBQ3BCO01BQ0YsS0FBSyxDQUFDO1FBQ0osSUFBSUEsS0FBSyxHQUFHLElBQUk1QyxPQUFPLENBQUM2RixRQUFRO1FBQ2hDeEQsTUFBTSxDQUFDUSxXQUFXLENBQUNELEtBQUssRUFBQzVDLE9BQU8sQ0FBQzZGLFFBQVEsQ0FBQ3RELDJCQUEyQixDQUFDO1FBQ3RFWixHQUFHLENBQUN1RSxXQUFXLENBQUN0RCxLQUFLLENBQUM7UUFDdEI7TUFDRixLQUFLLENBQUM7UUFDSixJQUFJQSxLQUFLLEdBQUcscUJBQXVCUCxNQUFNLENBQUNxQyxVQUFVLEVBQUc7UUFDdkQvQyxHQUFHLENBQUN3RSxjQUFjLENBQUN2RCxLQUFLLENBQUM7UUFDekI7TUFDRjtRQUNFUCxNQUFNLENBQUNVLFNBQVMsRUFBRTtRQUNsQjtJQUFNO0VBRVY7RUFDQSxPQUFPcEIsR0FBRztBQUNaLENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQXhCLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNZLHlCQUF5QixDQUFDSyxTQUFTLENBQUN5QixlQUFlLEdBQUcsWUFBVztFQUM1RSxJQUFJQyxNQUFNLEdBQUcsSUFBSXpELElBQUksQ0FBQzBELFlBQVksRUFBRTtFQUNwQy9DLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNZLHlCQUF5QixDQUFDaUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFRixNQUFNLENBQUM7RUFDNUUsT0FBT0EsTUFBTSxDQUFDRyxlQUFlLEVBQUU7QUFDakMsQ0FBQzs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBakQsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ1kseUJBQXlCLENBQUNpQyx1QkFBdUIsR0FBRyxVQUFTRSxPQUFPLEVBQUVKLE1BQU0sRUFBRTtFQUN6RixJQUFJckIsQ0FBQyxHQUFHMEIsU0FBUztFQUNqQjFCLENBQUMsR0FBR3lCLE9BQU8sQ0FBQytDLE9BQU8sRUFBRTtFQUNyQixJQUFJeEUsQ0FBQyxLQUFLLENBQUMsRUFBRTtJQUNYcUIsTUFBTSxDQUFDNkIsVUFBVSxDQUNmLENBQUMsRUFDRGxELENBQUMsQ0FDRjtFQUNIO0VBQ0FBLENBQUMsR0FBR3lCLE9BQU8sQ0FBQ2dELFNBQVMsRUFBRTtFQUN2QixJQUFJekUsQ0FBQyxDQUFDMkIsTUFBTSxHQUFHLENBQUMsRUFBRTtJQUNoQk4sTUFBTSxDQUFDK0IsV0FBVyxDQUNoQixDQUFDLEVBQ0RwRCxDQUFDLENBQ0Y7RUFDSDtFQUNBQSxDQUFDLEdBQUd5QixPQUFPLENBQUN1QyxXQUFXLEVBQUU7RUFDekIsSUFBSWhFLENBQUMsSUFBSSxJQUFJLEVBQUU7SUFDYnFCLE1BQU0sQ0FBQ2dDLFlBQVksQ0FDakIsQ0FBQyxFQUNEckQsQ0FBQyxFQUNENUIsT0FBTyxDQUFDNkYsUUFBUSxDQUFDMUMsdUJBQXVCLENBQ3pDO0VBQ0g7RUFDQXZCLENBQUMsR0FBR3lCLE9BQU8sQ0FBQ2lELGtCQUFrQixFQUFFO0VBQ2hDLElBQUkxRSxDQUFDLENBQUMyQixNQUFNLEdBQUcsQ0FBQyxFQUFFO0lBQ2hCTixNQUFNLENBQUNzRCxtQkFBbUIsQ0FDeEIsQ0FBQyxFQUNEM0UsQ0FBQyxDQUNGO0VBQ0g7QUFDRixDQUFDOztBQUdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0F6QixLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDWSx5QkFBeUIsQ0FBQ0ssU0FBUyxDQUFDNkUsT0FBTyxHQUFHLFlBQVc7RUFDcEUsT0FBTyxzQkFBdUI1RyxJQUFJLENBQUNpQixPQUFPLENBQUMwRCxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7RUFBQztBQUM1RSxDQUFDOztBQUdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0FoRSxLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDWSx5QkFBeUIsQ0FBQ0ssU0FBUyxDQUFDeUUsT0FBTyxHQUFHLFVBQVNwRCxLQUFLLEVBQUU7RUFDekUsT0FBT3BELElBQUksQ0FBQ2lCLE9BQU8sQ0FBQ3lFLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUV0QyxLQUFLLENBQUM7QUFDdkQsQ0FBQzs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBekMsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ1kseUJBQXlCLENBQUNLLFNBQVMsQ0FBQzhFLFNBQVMsR0FBRyxZQUFXO0VBQ3RFLE9BQU8sc0JBQXVCN0csSUFBSSxDQUFDaUIsT0FBTyxDQUFDMEQsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFO0VBQUM7QUFDN0UsQ0FBQzs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBaEUsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ1kseUJBQXlCLENBQUNLLFNBQVMsQ0FBQzBFLFNBQVMsR0FBRyxVQUFTckQsS0FBSyxFQUFFO0VBQzNFLE9BQU9wRCxJQUFJLENBQUNpQixPQUFPLENBQUMwRSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFdkMsS0FBSyxDQUFDO0FBQzFELENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQXpDLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNZLHlCQUF5QixDQUFDSyxTQUFTLENBQUNxRSxXQUFXLEdBQUcsWUFBVztFQUN4RSxPQUFPO0lBQ0xwRyxJQUFJLENBQUNpQixPQUFPLENBQUMyRSxlQUFlLENBQUMsSUFBSSxFQUFFcEYsT0FBTyxDQUFDNkYsUUFBUSxFQUFFLENBQUM7RUFBQztBQUMzRCxDQUFDOztBQUdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0ExRixLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDWSx5QkFBeUIsQ0FBQ0ssU0FBUyxDQUFDMkUsV0FBVyxHQUFHLFVBQVN0RCxLQUFLLEVBQUU7RUFDN0UsT0FBT3BELElBQUksQ0FBQ2lCLE9BQU8sQ0FBQzRFLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFekMsS0FBSyxDQUFDO0FBQ3JELENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQXpDLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNZLHlCQUF5QixDQUFDSyxTQUFTLENBQUNpRixhQUFhLEdBQUcsWUFBVztFQUMxRSxPQUFPLElBQUksQ0FBQ04sV0FBVyxDQUFDNUMsU0FBUyxDQUFDO0FBQ3BDLENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQW5ELEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNZLHlCQUF5QixDQUFDSyxTQUFTLENBQUNrRixXQUFXLEdBQUcsWUFBVztFQUN4RSxPQUFPakgsSUFBSSxDQUFDaUIsT0FBTyxDQUFDK0UsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJO0FBQy9DLENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQXJGLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNZLHlCQUF5QixDQUFDSyxTQUFTLENBQUMrRSxrQkFBa0IsR0FBRyxZQUFXO0VBQy9FLE9BQU8sOEJBQStCOUcsSUFBSSxDQUFDaUIsT0FBTyxDQUFDc0YsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7RUFBQztBQUM5RSxDQUFDOztBQUdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E1RixLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDWSx5QkFBeUIsQ0FBQ0ssU0FBUyxDQUFDbUYsa0JBQWtCLEdBQUcsVUFBUzlELEtBQUssRUFBRTtFQUNwRixPQUFPcEQsSUFBSSxDQUFDaUIsT0FBTyxDQUFDa0csUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUvRCxLQUFLLElBQUksRUFBRSxDQUFDO0FBQ3BELENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBekMsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ1kseUJBQXlCLENBQUNLLFNBQVMsQ0FBQzRFLGNBQWMsR0FBRyxVQUFTdkQsS0FBSyxFQUFFaUIsU0FBUyxFQUFFO0VBQzNGLE9BQU9yRSxJQUFJLENBQUNpQixPQUFPLENBQUNtRyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFaEUsS0FBSyxFQUFFaUIsU0FBUyxDQUFDO0FBQ25FLENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTFELEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNZLHlCQUF5QixDQUFDSyxTQUFTLENBQUNzRixvQkFBb0IsR0FBRyxZQUFXO0VBQ2pGLE9BQU8sSUFBSSxDQUFDSCxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7QUFDcEMsQ0FBQzs7QUFJRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0F2RyxLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDYSx5QkFBeUIsQ0FBQ1IsZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBSTVELElBQUluQixJQUFJLENBQUNpQixPQUFPLENBQUNhLGtCQUFrQixFQUFFO0VBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBbkIsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ2EseUJBQXlCLENBQUNJLFNBQVMsQ0FBQ0MsUUFBUSxHQUFHLFVBQVNDLG1CQUFtQixFQUFFO0lBQ3hGLE9BQU90QixLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDYSx5QkFBeUIsQ0FBQ0ssUUFBUSxDQUFDQyxtQkFBbUIsRUFBRSxJQUFJLENBQUM7RUFDbkYsQ0FBQzs7RUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQXRCLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNhLHlCQUF5QixDQUFDSyxRQUFRLEdBQUcsVUFBU0UsZUFBZSxFQUFFQyxHQUFHLEVBQUU7SUFDL0UsSUFBSUMsQ0FBQztNQUFFQyxHQUFHLEdBQUc7UUFDWDRELElBQUksRUFBRWpHLElBQUksQ0FBQ2lCLE9BQU8sQ0FBQzBELG1CQUFtQixDQUFDeEMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDakRtRSxlQUFlLEVBQUUsQ0FBQ2xFLENBQUMsR0FBR3BDLElBQUksQ0FBQ2lCLE9BQU8sQ0FBQ3NGLGdCQUFnQixDQUFDcEUsR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksR0FBRzJCLFNBQVMsR0FBRzFCO01BQ3JGLENBQUM7SUFFRCxJQUFJRixlQUFlLEVBQUU7TUFDbkJHLEdBQUcsQ0FBQ0ssb0JBQW9CLEdBQUdQLEdBQUc7SUFDaEM7SUFDQSxPQUFPRSxHQUFHO0VBQ1osQ0FBQztBQUNEOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTFCLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNhLHlCQUF5QixDQUFDZ0IsaUJBQWlCLEdBQUcsVUFBU0MsS0FBSyxFQUFFO0VBQ3pFLElBQUlDLE1BQU0sR0FBRyxJQUFJN0MsSUFBSSxDQUFDOEMsWUFBWSxDQUFDRixLQUFLLENBQUM7RUFDekMsSUFBSVQsR0FBRyxHQUFHLElBQUl4QixLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDYSx5QkFBeUI7RUFDcEQsT0FBT2hCLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNhLHlCQUF5QixDQUFDb0IsMkJBQTJCLENBQUNaLEdBQUcsRUFBRVUsTUFBTSxDQUFDO0FBQ3hGLENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQWxDLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNhLHlCQUF5QixDQUFDb0IsMkJBQTJCLEdBQUcsVUFBU1osR0FBRyxFQUFFVSxNQUFNLEVBQUU7RUFDekYsT0FBT0EsTUFBTSxDQUFDRyxTQUFTLEVBQUUsRUFBRTtJQUN6QixJQUFJSCxNQUFNLENBQUNJLFVBQVUsRUFBRSxFQUFFO01BQ3ZCO0lBQ0Y7SUFDQSxJQUFJQyxLQUFLLEdBQUdMLE1BQU0sQ0FBQ00sY0FBYyxFQUFFO0lBQ25DLFFBQVFELEtBQUs7TUFDYixLQUFLLENBQUM7UUFDSixJQUFJRSxLQUFLLEdBQUcscUJBQXVCUCxNQUFNLENBQUNtQyxTQUFTLEVBQUc7UUFDdEQ3QyxHQUFHLENBQUNxRSxPQUFPLENBQUNwRCxLQUFLLENBQUM7UUFDbEI7TUFDRixLQUFLLENBQUM7UUFDSixJQUFJQSxLQUFLLEdBQUcscUJBQXVCUCxNQUFNLENBQUNxQyxVQUFVLEVBQUc7UUFDdkQvQyxHQUFHLENBQUN3RSxjQUFjLENBQUN2RCxLQUFLLENBQUM7UUFDekI7TUFDRjtRQUNFUCxNQUFNLENBQUNVLFNBQVMsRUFBRTtRQUNsQjtJQUFNO0VBRVY7RUFDQSxPQUFPcEIsR0FBRztBQUNaLENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQXhCLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNhLHlCQUF5QixDQUFDSSxTQUFTLENBQUN5QixlQUFlLEdBQUcsWUFBVztFQUM1RSxJQUFJQyxNQUFNLEdBQUcsSUFBSXpELElBQUksQ0FBQzBELFlBQVksRUFBRTtFQUNwQy9DLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNhLHlCQUF5QixDQUFDZ0MsdUJBQXVCLENBQUMsSUFBSSxFQUFFRixNQUFNLENBQUM7RUFDNUUsT0FBT0EsTUFBTSxDQUFDRyxlQUFlLEVBQUU7QUFDakMsQ0FBQzs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBakQsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ2EseUJBQXlCLENBQUNnQyx1QkFBdUIsR0FBRyxVQUFTRSxPQUFPLEVBQUVKLE1BQU0sRUFBRTtFQUN6RixJQUFJckIsQ0FBQyxHQUFHMEIsU0FBUztFQUNqQjFCLENBQUMsR0FBR3lCLE9BQU8sQ0FBQytDLE9BQU8sRUFBRTtFQUNyQixJQUFJeEUsQ0FBQyxLQUFLLENBQUMsRUFBRTtJQUNYcUIsTUFBTSxDQUFDNkIsVUFBVSxDQUNmLENBQUMsRUFDRGxELENBQUMsQ0FDRjtFQUNIO0VBQ0FBLENBQUMsR0FBR3lCLE9BQU8sQ0FBQ2lELGtCQUFrQixFQUFFO0VBQ2hDLElBQUkxRSxDQUFDLENBQUMyQixNQUFNLEdBQUcsQ0FBQyxFQUFFO0lBQ2hCTixNQUFNLENBQUNzRCxtQkFBbUIsQ0FDeEIsQ0FBQyxFQUNEM0UsQ0FBQyxDQUNGO0VBQ0g7QUFDRixDQUFDOztBQUdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0F6QixLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDYSx5QkFBeUIsQ0FBQ0ksU0FBUyxDQUFDNkUsT0FBTyxHQUFHLFlBQVc7RUFDcEUsT0FBTyxzQkFBdUI1RyxJQUFJLENBQUNpQixPQUFPLENBQUMwRCxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7RUFBQztBQUM1RSxDQUFDOztBQUdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0FoRSxLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDYSx5QkFBeUIsQ0FBQ0ksU0FBUyxDQUFDeUUsT0FBTyxHQUFHLFVBQVNwRCxLQUFLLEVBQUU7RUFDekUsT0FBT3BELElBQUksQ0FBQ2lCLE9BQU8sQ0FBQ3lFLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUV0QyxLQUFLLENBQUM7QUFDdkQsQ0FBQzs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBekMsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ2EseUJBQXlCLENBQUNJLFNBQVMsQ0FBQytFLGtCQUFrQixHQUFHLFlBQVc7RUFDL0UsT0FBTyw4QkFBK0I5RyxJQUFJLENBQUNpQixPQUFPLENBQUNzRixnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztFQUFDO0FBQzlFLENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTVGLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNhLHlCQUF5QixDQUFDSSxTQUFTLENBQUNtRixrQkFBa0IsR0FBRyxVQUFTOUQsS0FBSyxFQUFFO0VBQ3BGLE9BQU9wRCxJQUFJLENBQUNpQixPQUFPLENBQUNrRyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRS9ELEtBQUssSUFBSSxFQUFFLENBQUM7QUFDcEQsQ0FBQzs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0F6QyxLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDYSx5QkFBeUIsQ0FBQ0ksU0FBUyxDQUFDNEUsY0FBYyxHQUFHLFVBQVN2RCxLQUFLLEVBQUVpQixTQUFTLEVBQUU7RUFDM0YsT0FBT3JFLElBQUksQ0FBQ2lCLE9BQU8sQ0FBQ21HLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUVoRSxLQUFLLEVBQUVpQixTQUFTLENBQUM7QUFDbkUsQ0FBQzs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBMUQsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ2EseUJBQXlCLENBQUNJLFNBQVMsQ0FBQ3NGLG9CQUFvQixHQUFHLFlBQVc7RUFDakYsT0FBTyxJQUFJLENBQUNILGtCQUFrQixDQUFDLEVBQUUsQ0FBQztBQUNwQyxDQUFDO0FBTUQsSUFBSWxILElBQUksQ0FBQ2lCLE9BQU8sQ0FBQ2Esa0JBQWtCLEVBQUU7RUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0FuQixLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDYyw0QkFBNEIsQ0FBQ0csU0FBUyxDQUFDQyxRQUFRLEdBQUcsVUFBU0MsbUJBQW1CLEVBQUU7SUFDM0YsT0FBT3RCLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNjLDRCQUE0QixDQUFDSSxRQUFRLENBQUNDLG1CQUFtQixFQUFFLElBQUksQ0FBQztFQUN0RixDQUFDOztFQUdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBdEIsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ2MsNEJBQTRCLENBQUNJLFFBQVEsR0FBRyxVQUFTRSxlQUFlLEVBQUVDLEdBQUcsRUFBRTtJQUNsRixJQUFJQyxDQUFDO01BQUVDLEdBQUcsR0FBRztRQUNYNEQsSUFBSSxFQUFFakcsSUFBSSxDQUFDaUIsT0FBTyxDQUFDMEQsbUJBQW1CLENBQUN4QyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqRGdFLFFBQVEsRUFBRSxDQUFDL0QsQ0FBQyxHQUFHRCxHQUFHLENBQUNpRSxXQUFXLEVBQUUsS0FBSzVGLE9BQU8sQ0FBQzZGLFFBQVEsQ0FBQ3JFLFFBQVEsQ0FBQ0UsZUFBZSxFQUFFRSxDQUFDO01BQ25GLENBQUM7SUFFRCxJQUFJRixlQUFlLEVBQUU7TUFDbkJHLEdBQUcsQ0FBQ0ssb0JBQW9CLEdBQUdQLEdBQUc7SUFDaEM7SUFDQSxPQUFPRSxHQUFHO0VBQ1osQ0FBQztBQUNEOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTFCLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNjLDRCQUE0QixDQUFDZSxpQkFBaUIsR0FBRyxVQUFTQyxLQUFLLEVBQUU7RUFDNUUsSUFBSUMsTUFBTSxHQUFHLElBQUk3QyxJQUFJLENBQUM4QyxZQUFZLENBQUNGLEtBQUssQ0FBQztFQUN6QyxJQUFJVCxHQUFHLEdBQUcsSUFBSXhCLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNjLDRCQUE0QjtFQUN2RCxPQUFPakIsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ2MsNEJBQTRCLENBQUNtQiwyQkFBMkIsQ0FBQ1osR0FBRyxFQUFFVSxNQUFNLENBQUM7QUFDM0YsQ0FBQzs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBbEMsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ2MsNEJBQTRCLENBQUNtQiwyQkFBMkIsR0FBRyxVQUFTWixHQUFHLEVBQUVVLE1BQU0sRUFBRTtFQUM1RixPQUFPQSxNQUFNLENBQUNHLFNBQVMsRUFBRSxFQUFFO0lBQ3pCLElBQUlILE1BQU0sQ0FBQ0ksVUFBVSxFQUFFLEVBQUU7TUFDdkI7SUFDRjtJQUNBLElBQUlDLEtBQUssR0FBR0wsTUFBTSxDQUFDTSxjQUFjLEVBQUU7SUFDbkMsUUFBUUQsS0FBSztNQUNiLEtBQUssQ0FBQztRQUNKLElBQUlFLEtBQUssR0FBRyxxQkFBdUJQLE1BQU0sQ0FBQ21DLFNBQVMsRUFBRztRQUN0RDdDLEdBQUcsQ0FBQ3FFLE9BQU8sQ0FBQ3BELEtBQUssQ0FBQztRQUNsQjtNQUNGLEtBQUssQ0FBQztRQUNKLElBQUlBLEtBQUssR0FBRyxJQUFJNUMsT0FBTyxDQUFDNkYsUUFBUTtRQUNoQ3hELE1BQU0sQ0FBQ1EsV0FBVyxDQUFDRCxLQUFLLEVBQUM1QyxPQUFPLENBQUM2RixRQUFRLENBQUN0RCwyQkFBMkIsQ0FBQztRQUN0RVosR0FBRyxDQUFDdUUsV0FBVyxDQUFDdEQsS0FBSyxDQUFDO1FBQ3RCO01BQ0Y7UUFDRVAsTUFBTSxDQUFDVSxTQUFTLEVBQUU7UUFDbEI7SUFBTTtFQUVWO0VBQ0EsT0FBT3BCLEdBQUc7QUFDWixDQUFDOztBQUdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0F4QixLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDYyw0QkFBNEIsQ0FBQ0csU0FBUyxDQUFDeUIsZUFBZSxHQUFHLFlBQVc7RUFDL0UsSUFBSUMsTUFBTSxHQUFHLElBQUl6RCxJQUFJLENBQUMwRCxZQUFZLEVBQUU7RUFDcEMvQyxLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDYyw0QkFBNEIsQ0FBQytCLHVCQUF1QixDQUFDLElBQUksRUFBRUYsTUFBTSxDQUFDO0VBQy9FLE9BQU9BLE1BQU0sQ0FBQ0csZUFBZSxFQUFFO0FBQ2pDLENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQWpELEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNjLDRCQUE0QixDQUFDK0IsdUJBQXVCLEdBQUcsVUFBU0UsT0FBTyxFQUFFSixNQUFNLEVBQUU7RUFDNUYsSUFBSXJCLENBQUMsR0FBRzBCLFNBQVM7RUFDakIxQixDQUFDLEdBQUd5QixPQUFPLENBQUMrQyxPQUFPLEVBQUU7RUFDckIsSUFBSXhFLENBQUMsS0FBSyxDQUFDLEVBQUU7SUFDWHFCLE1BQU0sQ0FBQzZCLFVBQVUsQ0FDZixDQUFDLEVBQ0RsRCxDQUFDLENBQ0Y7RUFDSDtFQUNBQSxDQUFDLEdBQUd5QixPQUFPLENBQUN1QyxXQUFXLEVBQUU7RUFDekIsSUFBSWhFLENBQUMsSUFBSSxJQUFJLEVBQUU7SUFDYnFCLE1BQU0sQ0FBQ2dDLFlBQVksQ0FDakIsQ0FBQyxFQUNEckQsQ0FBQyxFQUNENUIsT0FBTyxDQUFDNkYsUUFBUSxDQUFDMUMsdUJBQXVCLENBQ3pDO0VBQ0g7QUFDRixDQUFDOztBQUdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0FoRCxLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDYyw0QkFBNEIsQ0FBQ0csU0FBUyxDQUFDNkUsT0FBTyxHQUFHLFlBQVc7RUFDdkUsT0FBTyxzQkFBdUI1RyxJQUFJLENBQUNpQixPQUFPLENBQUMwRCxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7RUFBQztBQUM1RSxDQUFDOztBQUdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0FoRSxLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDYyw0QkFBNEIsQ0FBQ0csU0FBUyxDQUFDeUUsT0FBTyxHQUFHLFVBQVNwRCxLQUFLLEVBQUU7RUFDNUUsT0FBT3BELElBQUksQ0FBQ2lCLE9BQU8sQ0FBQ3lFLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUV0QyxLQUFLLENBQUM7QUFDdkQsQ0FBQzs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBekMsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ2MsNEJBQTRCLENBQUNHLFNBQVMsQ0FBQ3FFLFdBQVcsR0FBRyxZQUFXO0VBQzNFLE9BQU87SUFDTHBHLElBQUksQ0FBQ2lCLE9BQU8sQ0FBQzJFLGVBQWUsQ0FBQyxJQUFJLEVBQUVwRixPQUFPLENBQUM2RixRQUFRLEVBQUUsQ0FBQztFQUFDO0FBQzNELENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTFGLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNjLDRCQUE0QixDQUFDRyxTQUFTLENBQUMyRSxXQUFXLEdBQUcsVUFBU3RELEtBQUssRUFBRTtFQUNoRixPQUFPcEQsSUFBSSxDQUFDaUIsT0FBTyxDQUFDNEUsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUV6QyxLQUFLLENBQUM7QUFDckQsQ0FBQzs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBekMsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ2MsNEJBQTRCLENBQUNHLFNBQVMsQ0FBQ2lGLGFBQWEsR0FBRyxZQUFXO0VBQzdFLE9BQU8sSUFBSSxDQUFDTixXQUFXLENBQUM1QyxTQUFTLENBQUM7QUFDcEMsQ0FBQzs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBbkQsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ2MsNEJBQTRCLENBQUNHLFNBQVMsQ0FBQ2tGLFdBQVcsR0FBRyxZQUFXO0VBQzNFLE9BQU9qSCxJQUFJLENBQUNpQixPQUFPLENBQUMrRSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUk7QUFDL0MsQ0FBQztBQU1ELElBQUloRyxJQUFJLENBQUNpQixPQUFPLENBQUNhLGtCQUFrQixFQUFFO0VBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBbkIsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ2Usc0JBQXNCLENBQUNFLFNBQVMsQ0FBQ0MsUUFBUSxHQUFHLFVBQVNDLG1CQUFtQixFQUFFO0lBQ3JGLE9BQU90QixLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDZSxzQkFBc0IsQ0FBQ0csUUFBUSxDQUFDQyxtQkFBbUIsRUFBRSxJQUFJLENBQUM7RUFDaEYsQ0FBQzs7RUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQXRCLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNlLHNCQUFzQixDQUFDRyxRQUFRLEdBQUcsVUFBU0UsZUFBZSxFQUFFQyxHQUFHLEVBQUU7SUFDNUUsSUFBSUMsQ0FBQztNQUFFQyxHQUFHLEdBQUc7UUFDWGlGLE1BQU0sRUFBRXRILElBQUksQ0FBQ2lCLE9BQU8sQ0FBQzBELG1CQUFtQixDQUFDeEMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkRvRixJQUFJLEVBQUV2SCxJQUFJLENBQUNpQixPQUFPLENBQUMwRCxtQkFBbUIsQ0FBQ3hDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztNQUNsRCxDQUFDO0lBRUQsSUFBSUQsZUFBZSxFQUFFO01BQ25CRyxHQUFHLENBQUNLLG9CQUFvQixHQUFHUCxHQUFHO0lBQ2hDO0lBQ0EsT0FBT0UsR0FBRztFQUNaLENBQUM7QUFDRDs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0ExQixLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDZSxzQkFBc0IsQ0FBQ2MsaUJBQWlCLEdBQUcsVUFBU0MsS0FBSyxFQUFFO0VBQ3RFLElBQUlDLE1BQU0sR0FBRyxJQUFJN0MsSUFBSSxDQUFDOEMsWUFBWSxDQUFDRixLQUFLLENBQUM7RUFDekMsSUFBSVQsR0FBRyxHQUFHLElBQUl4QixLQUFLLENBQUNFLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDZSxzQkFBc0I7RUFDakQsT0FBT2xCLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNlLHNCQUFzQixDQUFDa0IsMkJBQTJCLENBQUNaLEdBQUcsRUFBRVUsTUFBTSxDQUFDO0FBQ3JGLENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQWxDLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNlLHNCQUFzQixDQUFDa0IsMkJBQTJCLEdBQUcsVUFBU1osR0FBRyxFQUFFVSxNQUFNLEVBQUU7RUFDdEYsT0FBT0EsTUFBTSxDQUFDRyxTQUFTLEVBQUUsRUFBRTtJQUN6QixJQUFJSCxNQUFNLENBQUNJLFVBQVUsRUFBRSxFQUFFO01BQ3ZCO0lBQ0Y7SUFDQSxJQUFJQyxLQUFLLEdBQUdMLE1BQU0sQ0FBQ00sY0FBYyxFQUFFO0lBQ25DLFFBQVFELEtBQUs7TUFDYixLQUFLLENBQUM7UUFDSixJQUFJRSxLQUFLLEdBQUcscUJBQXVCUCxNQUFNLENBQUNtQyxTQUFTLEVBQUc7UUFDdEQ3QyxHQUFHLENBQUNxRixTQUFTLENBQUNwRSxLQUFLLENBQUM7UUFDcEI7TUFDRixLQUFLLENBQUM7UUFDSixJQUFJQSxLQUFLLEdBQUcscUJBQXVCUCxNQUFNLENBQUNtQyxTQUFTLEVBQUc7UUFDdEQ3QyxHQUFHLENBQUNzRixPQUFPLENBQUNyRSxLQUFLLENBQUM7UUFDbEI7TUFDRjtRQUNFUCxNQUFNLENBQUNVLFNBQVMsRUFBRTtRQUNsQjtJQUFNO0VBRVY7RUFDQSxPQUFPcEIsR0FBRztBQUNaLENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQXhCLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNlLHNCQUFzQixDQUFDRSxTQUFTLENBQUN5QixlQUFlLEdBQUcsWUFBVztFQUN6RSxJQUFJQyxNQUFNLEdBQUcsSUFBSXpELElBQUksQ0FBQzBELFlBQVksRUFBRTtFQUNwQy9DLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNlLHNCQUFzQixDQUFDOEIsdUJBQXVCLENBQUMsSUFBSSxFQUFFRixNQUFNLENBQUM7RUFDekUsT0FBT0EsTUFBTSxDQUFDRyxlQUFlLEVBQUU7QUFDakMsQ0FBQzs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBakQsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ2Usc0JBQXNCLENBQUM4Qix1QkFBdUIsR0FBRyxVQUFTRSxPQUFPLEVBQUVKLE1BQU0sRUFBRTtFQUN0RixJQUFJckIsQ0FBQyxHQUFHMEIsU0FBUztFQUNqQjFCLENBQUMsR0FBR3lCLE9BQU8sQ0FBQzZELFNBQVMsRUFBRTtFQUN2QixJQUFJdEYsQ0FBQyxLQUFLLENBQUMsRUFBRTtJQUNYcUIsTUFBTSxDQUFDNkIsVUFBVSxDQUNmLENBQUMsRUFDRGxELENBQUMsQ0FDRjtFQUNIO0VBQ0FBLENBQUMsR0FBR3lCLE9BQU8sQ0FBQzhELE9BQU8sRUFBRTtFQUNyQixJQUFJdkYsQ0FBQyxLQUFLLENBQUMsRUFBRTtJQUNYcUIsTUFBTSxDQUFDNkIsVUFBVSxDQUNmLENBQUMsRUFDRGxELENBQUMsQ0FDRjtFQUNIO0FBQ0YsQ0FBQzs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBekIsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ2Usc0JBQXNCLENBQUNFLFNBQVMsQ0FBQzJGLFNBQVMsR0FBRyxZQUFXO0VBQ25FLE9BQU8sc0JBQXVCMUgsSUFBSSxDQUFDaUIsT0FBTyxDQUFDMEQsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO0VBQUM7QUFDNUUsQ0FBQzs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBaEUsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQ2Usc0JBQXNCLENBQUNFLFNBQVMsQ0FBQ3lGLFNBQVMsR0FBRyxVQUFTcEUsS0FBSyxFQUFFO0VBQ3hFLE9BQU9wRCxJQUFJLENBQUNpQixPQUFPLENBQUN5RSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFdEMsS0FBSyxDQUFDO0FBQ3ZELENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQXpDLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNlLHNCQUFzQixDQUFDRSxTQUFTLENBQUM0RixPQUFPLEdBQUcsWUFBVztFQUNqRSxPQUFPLHNCQUF1QjNILElBQUksQ0FBQ2lCLE9BQU8sQ0FBQzBELG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztFQUFDO0FBQzVFLENBQUM7O0FBR0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQWhFLEtBQUssQ0FBQ0UsR0FBRyxDQUFDQyxFQUFFLENBQUNlLHNCQUFzQixDQUFDRSxTQUFTLENBQUMwRixPQUFPLEdBQUcsVUFBU3JFLEtBQUssRUFBRTtFQUN0RSxPQUFPcEQsSUFBSSxDQUFDaUIsT0FBTyxDQUFDeUUsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRXRDLEtBQUssQ0FBQztBQUN2RCxDQUFDO0FBR0RsRCxJQUFJLENBQUNPLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDa0gsT0FBTyxFQUFFakgsS0FBSyxDQUFDRSxHQUFHLENBQUNDLEVBQUUsQ0FBQyIsImZpbGUiOiIzMy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHNvdXJjZTogYXNzX2FwaS5wcm90b1xuLyoqXG4gKiBAZmlsZW92ZXJ2aWV3XG4gKiBAZW5oYW5jZWFibGVcbiAqIEBzdXBwcmVzcyB7bWlzc2luZ1JlcXVpcmV9IHJlcG9ydHMgZXJyb3Igb24gaW1wbGljaXQgdHlwZSB1c2FnZXMuXG4gKiBAc3VwcHJlc3Mge21lc3NhZ2VDb252ZW50aW9uc30gSlMgQ29tcGlsZXIgcmVwb3J0cyBhbiBlcnJvciBpZiBhIHZhcmlhYmxlIG9yXG4gKiAgICAgZmllbGQgc3RhcnRzIHdpdGggJ01TR18nIGFuZCBpc24ndCBhIHRyYW5zbGF0YWJsZSBtZXNzYWdlLlxuICogQHB1YmxpY1xuICovXG4vLyBHRU5FUkFURUQgQ09ERSAtLSBETyBOT1QgRURJVCFcbi8qIGVzbGludC1kaXNhYmxlICovXG4vLyBAdHMtbm9jaGVja1xuXG52YXIganNwYiA9IHJlcXVpcmUoJ2dvb2dsZS1wcm90b2J1ZicpO1xudmFyIGdvb2cgPSBqc3BiO1xudmFyIGdsb2JhbCA9IChmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXMgfHwgd2luZG93IHx8IGdsb2JhbCB8fCBzZWxmIHx8IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7IH0pLmNhbGwobnVsbCk7XG5cbnZhciBiYXNlX3BiID0gcmVxdWlyZSgnLi9iYXNlX3BiLmpzJyk7XG5nb29nLm9iamVjdC5leHRlbmQocHJvdG8sIGJhc2VfcGIpO1xuZ29vZy5leHBvcnRTeW1ib2woJ3Byb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5JywgbnVsbCwgZ2xvYmFsKTtcbmdvb2cuZXhwb3J0U3ltYm9sKCdwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9HcHNTYXZlUmVxdWVzdCcsIG51bGwsIGdsb2JhbCk7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5JywgbnVsbCwgZ2xvYmFsKTtcbmdvb2cuZXhwb3J0U3ltYm9sKCdwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9TYXZlUmVxdWVzdCcsIG51bGwsIGdsb2JhbCk7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYXNzLnYxLkFzc01hcEluZm9EZXRhaWxSZXBseScsIG51bGwsIGdsb2JhbCk7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHknLCBudWxsLCBnbG9iYWwpO1xuZ29vZy5leHBvcnRTeW1ib2woJ3Byb3RvLmFzcy52MS5Bc3NWZXJpZmljYXRpb25SZXF1ZXN0JywgbnVsbCwgZ2xvYmFsKTtcbi8qKlxuICogR2VuZXJhdGVkIGJ5IEpzUGJDb2RlR2VuZXJhdG9yLlxuICogQHBhcmFtIHtBcnJheT19IG9wdF9kYXRhIE9wdGlvbmFsIGluaXRpYWwgZGF0YSBhcnJheSwgdHlwaWNhbGx5IGZyb20gYVxuICogc2VydmVyIHJlc3BvbnNlLCBvciBjb25zdHJ1Y3RlZCBkaXJlY3RseSBpbiBKYXZhc2NyaXB0LiBUaGUgYXJyYXkgaXMgdXNlZFxuICogaW4gcGxhY2UgYW5kIGJlY29tZXMgcGFydCBvZiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0LiBJdCBpcyBub3QgY2xvbmVkLlxuICogSWYgbm8gZGF0YSBpcyBwcm92aWRlZCwgdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlIGVtcHR5LCBidXQgc3RpbGxcbiAqIHZhbGlkLlxuICogQGV4dGVuZHMge2pzcGIuTWVzc2FnZX1cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5wcm90by5hc3MudjEuQXNzU2hvcExpc3RSZXBseSA9IGZ1bmN0aW9uKG9wdF9kYXRhKSB7XG4gIGpzcGIuTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsIG9wdF9kYXRhLCAwLCAtMSwgcHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHkucmVwZWF0ZWRGaWVsZHNfLCBudWxsKTtcbn07XG5nb29nLmluaGVyaXRzKHByb3RvLmFzcy52MS5Bc3NTaG9wTGlzdFJlcGx5LCBqc3BiLk1lc3NhZ2UpO1xuaWYgKGdvb2cuREVCVUcgJiYgIUNPTVBJTEVEKSB7XG4gIC8qKlxuICAgKiBAcHVibGljXG4gICAqIEBvdmVycmlkZVxuICAgKi9cbiAgcHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHkuZGlzcGxheU5hbWUgPSAncHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHknO1xufVxuLyoqXG4gKiBHZW5lcmF0ZWQgYnkgSnNQYkNvZGVHZW5lcmF0b3IuXG4gKiBAcGFyYW0ge0FycmF5PX0gb3B0X2RhdGEgT3B0aW9uYWwgaW5pdGlhbCBkYXRhIGFycmF5LCB0eXBpY2FsbHkgZnJvbSBhXG4gKiBzZXJ2ZXIgcmVzcG9uc2UsIG9yIGNvbnN0cnVjdGVkIGRpcmVjdGx5IGluIEphdmFzY3JpcHQuIFRoZSBhcnJheSBpcyB1c2VkXG4gKiBpbiBwbGFjZSBhbmQgYmVjb21lcyBwYXJ0IG9mIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3QuIEl0IGlzIG5vdCBjbG9uZWQuXG4gKiBJZiBubyBkYXRhIGlzIHByb3ZpZGVkLCB0aGUgY29uc3RydWN0ZWQgb2JqZWN0IHdpbGwgYmUgZW1wdHksIGJ1dCBzdGlsbFxuICogdmFsaWQuXG4gKiBAZXh0ZW5kcyB7anNwYi5NZXNzYWdlfVxuICogQGNvbnN0cnVjdG9yXG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0xpc3RSZXBseSA9IGZ1bmN0aW9uKG9wdF9kYXRhKSB7XG4gIGpzcGIuTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsIG9wdF9kYXRhLCAwLCAtMSwgcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5LnJlcGVhdGVkRmllbGRzXywgbnVsbCk7XG59O1xuZ29vZy5pbmhlcml0cyhwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHksIGpzcGIuTWVzc2FnZSk7XG5pZiAoZ29vZy5ERUJVRyAmJiAhQ09NUElMRUQpIHtcbiAgLyoqXG4gICAqIEBwdWJsaWNcbiAgICogQG92ZXJyaWRlXG4gICAqL1xuICBwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHkuZGlzcGxheU5hbWUgPSAncHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5Jztcbn1cbi8qKlxuICogR2VuZXJhdGVkIGJ5IEpzUGJDb2RlR2VuZXJhdG9yLlxuICogQHBhcmFtIHtBcnJheT19IG9wdF9kYXRhIE9wdGlvbmFsIGluaXRpYWwgZGF0YSBhcnJheSwgdHlwaWNhbGx5IGZyb20gYVxuICogc2VydmVyIHJlc3BvbnNlLCBvciBjb25zdHJ1Y3RlZCBkaXJlY3RseSBpbiBKYXZhc2NyaXB0LiBUaGUgYXJyYXkgaXMgdXNlZFxuICogaW4gcGxhY2UgYW5kIGJlY29tZXMgcGFydCBvZiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0LiBJdCBpcyBub3QgY2xvbmVkLlxuICogSWYgbm8gZGF0YSBpcyBwcm92aWRlZCwgdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlIGVtcHR5LCBidXQgc3RpbGxcbiAqIHZhbGlkLlxuICogQGV4dGVuZHMge2pzcGIuTWVzc2FnZX1cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5wcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5ID0gZnVuY3Rpb24ob3B0X2RhdGEpIHtcbiAganNwYi5NZXNzYWdlLmluaXRpYWxpemUodGhpcywgb3B0X2RhdGEsIDAsIC0xLCBudWxsLCBudWxsKTtcbn07XG5nb29nLmluaGVyaXRzKHByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHksIGpzcGIuTWVzc2FnZSk7XG5pZiAoZ29vZy5ERUJVRyAmJiAhQ09NUElMRUQpIHtcbiAgLyoqXG4gICAqIEBwdWJsaWNcbiAgICogQG92ZXJyaWRlXG4gICAqL1xuICBwcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5LmRpc3BsYXlOYW1lID0gJ3Byb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHknO1xufVxuLyoqXG4gKiBHZW5lcmF0ZWQgYnkgSnNQYkNvZGVHZW5lcmF0b3IuXG4gKiBAcGFyYW0ge0FycmF5PX0gb3B0X2RhdGEgT3B0aW9uYWwgaW5pdGlhbCBkYXRhIGFycmF5LCB0eXBpY2FsbHkgZnJvbSBhXG4gKiBzZXJ2ZXIgcmVzcG9uc2UsIG9yIGNvbnN0cnVjdGVkIGRpcmVjdGx5IGluIEphdmFzY3JpcHQuIFRoZSBhcnJheSBpcyB1c2VkXG4gKiBpbiBwbGFjZSBhbmQgYmVjb21lcyBwYXJ0IG9mIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3QuIEl0IGlzIG5vdCBjbG9uZWQuXG4gKiBJZiBubyBkYXRhIGlzIHByb3ZpZGVkLCB0aGUgY29uc3RydWN0ZWQgb2JqZWN0IHdpbGwgYmUgZW1wdHksIGJ1dCBzdGlsbFxuICogdmFsaWQuXG4gKiBAZXh0ZW5kcyB7anNwYi5NZXNzYWdlfVxuICogQGNvbnN0cnVjdG9yXG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5ID0gZnVuY3Rpb24ob3B0X2RhdGEpIHtcbiAganNwYi5NZXNzYWdlLmluaXRpYWxpemUodGhpcywgb3B0X2RhdGEsIDAsIC0xLCBwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseS5yZXBlYXRlZEZpZWxkc18sIG51bGwpO1xufTtcbmdvb2cuaW5oZXJpdHMocHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHksIGpzcGIuTWVzc2FnZSk7XG5pZiAoZ29vZy5ERUJVRyAmJiAhQ09NUElMRUQpIHtcbiAgLyoqXG4gICAqIEBwdWJsaWNcbiAgICogQG92ZXJyaWRlXG4gICAqL1xuICBwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseS5kaXNwbGF5TmFtZSA9ICdwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseSc7XG59XG4vKipcbiAqIEdlbmVyYXRlZCBieSBKc1BiQ29kZUdlbmVyYXRvci5cbiAqIEBwYXJhbSB7QXJyYXk9fSBvcHRfZGF0YSBPcHRpb25hbCBpbml0aWFsIGRhdGEgYXJyYXksIHR5cGljYWxseSBmcm9tIGFcbiAqIHNlcnZlciByZXNwb25zZSwgb3IgY29uc3RydWN0ZWQgZGlyZWN0bHkgaW4gSmF2YXNjcmlwdC4gVGhlIGFycmF5IGlzIHVzZWRcbiAqIGluIHBsYWNlIGFuZCBiZWNvbWVzIHBhcnQgb2YgdGhlIGNvbnN0cnVjdGVkIG9iamVjdC4gSXQgaXMgbm90IGNsb25lZC5cbiAqIElmIG5vIGRhdGEgaXMgcHJvdmlkZWQsIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3Qgd2lsbCBiZSBlbXB0eSwgYnV0IHN0aWxsXG4gKiB2YWxpZC5cbiAqIEBleHRlbmRzIHtqc3BiLk1lc3NhZ2V9XG4gKiBAY29uc3RydWN0b3JcbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3QgPSBmdW5jdGlvbihvcHRfZGF0YSkge1xuICBqc3BiLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLCBvcHRfZGF0YSwgMCwgLTEsIHByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0LnJlcGVhdGVkRmllbGRzXywgbnVsbCk7XG59O1xuZ29vZy5pbmhlcml0cyhwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9TYXZlUmVxdWVzdCwganNwYi5NZXNzYWdlKTtcbmlmIChnb29nLkRFQlVHICYmICFDT01QSUxFRCkge1xuICAvKipcbiAgICogQHB1YmxpY1xuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0LmRpc3BsYXlOYW1lID0gJ3Byb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0Jztcbn1cbi8qKlxuICogR2VuZXJhdGVkIGJ5IEpzUGJDb2RlR2VuZXJhdG9yLlxuICogQHBhcmFtIHtBcnJheT19IG9wdF9kYXRhIE9wdGlvbmFsIGluaXRpYWwgZGF0YSBhcnJheSwgdHlwaWNhbGx5IGZyb20gYVxuICogc2VydmVyIHJlc3BvbnNlLCBvciBjb25zdHJ1Y3RlZCBkaXJlY3RseSBpbiBKYXZhc2NyaXB0LiBUaGUgYXJyYXkgaXMgdXNlZFxuICogaW4gcGxhY2UgYW5kIGJlY29tZXMgcGFydCBvZiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0LiBJdCBpcyBub3QgY2xvbmVkLlxuICogSWYgbm8gZGF0YSBpcyBwcm92aWRlZCwgdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlIGVtcHR5LCBidXQgc3RpbGxcbiAqIHZhbGlkLlxuICogQGV4dGVuZHMge2pzcGIuTWVzc2FnZX1cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9HcHNTYXZlUmVxdWVzdCA9IGZ1bmN0aW9uKG9wdF9kYXRhKSB7XG4gIGpzcGIuTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsIG9wdF9kYXRhLCAwLCAtMSwgbnVsbCwgbnVsbCk7XG59O1xuZ29vZy5pbmhlcml0cyhwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9HcHNTYXZlUmVxdWVzdCwganNwYi5NZXNzYWdlKTtcbmlmIChnb29nLkRFQlVHICYmICFDT01QSUxFRCkge1xuICAvKipcbiAgICogQHB1YmxpY1xuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0LmRpc3BsYXlOYW1lID0gJ3Byb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0Jztcbn1cbi8qKlxuICogR2VuZXJhdGVkIGJ5IEpzUGJDb2RlR2VuZXJhdG9yLlxuICogQHBhcmFtIHtBcnJheT19IG9wdF9kYXRhIE9wdGlvbmFsIGluaXRpYWwgZGF0YSBhcnJheSwgdHlwaWNhbGx5IGZyb20gYVxuICogc2VydmVyIHJlc3BvbnNlLCBvciBjb25zdHJ1Y3RlZCBkaXJlY3RseSBpbiBKYXZhc2NyaXB0LiBUaGUgYXJyYXkgaXMgdXNlZFxuICogaW4gcGxhY2UgYW5kIGJlY29tZXMgcGFydCBvZiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0LiBJdCBpcyBub3QgY2xvbmVkLlxuICogSWYgbm8gZGF0YSBpcyBwcm92aWRlZCwgdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlIGVtcHR5LCBidXQgc3RpbGxcbiAqIHZhbGlkLlxuICogQGV4dGVuZHMge2pzcGIuTWVzc2FnZX1cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5wcm90by5hc3MudjEuQXNzVmVyaWZpY2F0aW9uUmVxdWVzdCA9IGZ1bmN0aW9uKG9wdF9kYXRhKSB7XG4gIGpzcGIuTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsIG9wdF9kYXRhLCAwLCAtMSwgbnVsbCwgbnVsbCk7XG59O1xuZ29vZy5pbmhlcml0cyhwcm90by5hc3MudjEuQXNzVmVyaWZpY2F0aW9uUmVxdWVzdCwganNwYi5NZXNzYWdlKTtcbmlmIChnb29nLkRFQlVHICYmICFDT01QSUxFRCkge1xuICAvKipcbiAgICogQHB1YmxpY1xuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RvLmFzcy52MS5Bc3NWZXJpZmljYXRpb25SZXF1ZXN0LmRpc3BsYXlOYW1lID0gJ3Byb3RvLmFzcy52MS5Bc3NWZXJpZmljYXRpb25SZXF1ZXN0Jztcbn1cblxuLyoqXG4gKiBMaXN0IG9mIHJlcGVhdGVkIGZpZWxkcyB3aXRoaW4gdGhpcyBtZXNzYWdlIHR5cGUuXG4gKiBAcHJpdmF0ZSB7IUFycmF5PG51bWJlcj59XG4gKiBAY29uc3RcbiAqL1xucHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHkucmVwZWF0ZWRGaWVsZHNfID0gWzFdO1xuXG5cblxuaWYgKGpzcGIuTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QpIHtcbi8qKlxuICogQ3JlYXRlcyBhbiBvYmplY3QgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBwcm90by5cbiAqIEZpZWxkIG5hbWVzIHRoYXQgYXJlIHJlc2VydmVkIGluIEphdmFTY3JpcHQgYW5kIHdpbGwgYmUgcmVuYW1lZCB0byBwYl9uYW1lLlxuICogT3B0aW9uYWwgZmllbGRzIHRoYXQgYXJlIG5vdCBzZXQgd2lsbCBiZSBzZXQgdG8gdW5kZWZpbmVkLlxuICogVG8gYWNjZXNzIGEgcmVzZXJ2ZWQgZmllbGQgdXNlLCBmb28ucGJfPG5hbWU+LCBlZywgZm9vLnBiX2RlZmF1bHQuXG4gKiBGb3IgdGhlIGxpc3Qgb2YgcmVzZXJ2ZWQgbmFtZXMgcGxlYXNlIHNlZTpcbiAqICAgICBuZXQvcHJvdG8yL2NvbXBpbGVyL2pzL2ludGVybmFsL2dlbmVyYXRvci5jYyNrS2V5d29yZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbj19IG9wdF9pbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gd2hldGhlciB0byBpbmNsdWRlIHRoZVxuICogICAgIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICovXG5wcm90by5hc3MudjEuQXNzU2hvcExpc3RSZXBseS5wcm90b3R5cGUudG9PYmplY3QgPSBmdW5jdGlvbihvcHRfaW5jbHVkZUluc3RhbmNlKSB7XG4gIHJldHVybiBwcm90by5hc3MudjEuQXNzU2hvcExpc3RSZXBseS50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmFzcy52MS5Bc3NTaG9wTGlzdFJlcGx5fSBtc2cgVGhlIG1zZyBpbnN0YW5jZSB0byB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5hc3MudjEuQXNzU2hvcExpc3RSZXBseS50b09iamVjdCA9IGZ1bmN0aW9uKGluY2x1ZGVJbnN0YW5jZSwgbXNnKSB7XG4gIHZhciBmLCBvYmogPSB7XG4gICAgbGlzdExpc3Q6IGpzcGIuTWVzc2FnZS50b09iamVjdExpc3QobXNnLmdldExpc3RMaXN0KCksXG4gICAgYmFzZV9wYi5TaG9wTGlzdC50b09iamVjdCwgaW5jbHVkZUluc3RhbmNlKVxuICB9O1xuXG4gIGlmIChpbmNsdWRlSW5zdGFuY2UpIHtcbiAgICBvYmouJGpzcGJNZXNzYWdlSW5zdGFuY2UgPSBtc2c7XG4gIH1cbiAgcmV0dXJuIG9iajtcbn07XG59XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEBwYXJhbSB7anNwYi5CeXRlU291cmNlfSBieXRlcyBUaGUgYnl0ZXMgdG8gZGVzZXJpYWxpemUuXG4gKiBAcmV0dXJuIHshcHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHl9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NTaG9wTGlzdFJlcGx5LmRlc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oYnl0ZXMpIHtcbiAgdmFyIHJlYWRlciA9IG5ldyBqc3BiLkJpbmFyeVJlYWRlcihieXRlcyk7XG4gIHZhciBtc2cgPSBuZXcgcHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHk7XG4gIHJldHVybiBwcm90by5hc3MudjEuQXNzU2hvcExpc3RSZXBseS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIobXNnLCByZWFkZXIpO1xufTtcblxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpIGZyb20gdGhlXG4gKiBnaXZlbiByZWFkZXIgaW50byB0aGUgZ2l2ZW4gbWVzc2FnZSBvYmplY3QuXG4gKiBAcGFyYW0geyFwcm90by5hc3MudjEuQXNzU2hvcExpc3RSZXBseX0gbXNnIFRoZSBtZXNzYWdlIG9iamVjdCB0byBkZXNlcmlhbGl6ZSBpbnRvLlxuICogQHBhcmFtIHshanNwYi5CaW5hcnlSZWFkZXJ9IHJlYWRlciBUaGUgQmluYXJ5UmVhZGVyIHRvIHVzZS5cbiAqIEByZXR1cm4geyFwcm90by5hc3MudjEuQXNzU2hvcExpc3RSZXBseX1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHkuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyID0gZnVuY3Rpb24obXNnLCByZWFkZXIpIHtcbiAgd2hpbGUgKHJlYWRlci5uZXh0RmllbGQoKSkge1xuICAgIGlmIChyZWFkZXIuaXNFbmRHcm91cCgpKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgdmFyIGZpZWxkID0gcmVhZGVyLmdldEZpZWxkTnVtYmVyKCk7XG4gICAgc3dpdGNoIChmaWVsZCkge1xuICAgIGNhc2UgMTpcbiAgICAgIHZhciB2YWx1ZSA9IG5ldyBiYXNlX3BiLlNob3BMaXN0O1xuICAgICAgcmVhZGVyLnJlYWRNZXNzYWdlKHZhbHVlLGJhc2VfcGIuU2hvcExpc3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKTtcbiAgICAgIG1zZy5hZGRMaXN0KHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZWFkZXIuc2tpcEZpZWxkKCk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1zZztcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcmV0dXJuIHshVWludDhBcnJheX1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHkucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgd3JpdGVyID0gbmV3IGpzcGIuQmluYXJ5V3JpdGVyKCk7XG4gIHByb3RvLmFzcy52MS5Bc3NTaG9wTGlzdFJlcGx5LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsIHdyaXRlcik7XG4gIHJldHVybiB3cml0ZXIuZ2V0UmVzdWx0QnVmZmVyKCk7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgZ2l2ZW4gbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZVxuICogZm9ybWF0KSwgd3JpdGluZyB0byB0aGUgZ2l2ZW4gQmluYXJ5V3JpdGVyLlxuICogQHBhcmFtIHshcHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHl9IG1lc3NhZ2VcbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5V3JpdGVyfSB3cml0ZXJcbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHkuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIgPSBmdW5jdGlvbihtZXNzYWdlLCB3cml0ZXIpIHtcbiAgdmFyIGYgPSB1bmRlZmluZWQ7XG4gIGYgPSBtZXNzYWdlLmdldExpc3RMaXN0KCk7XG4gIGlmIChmLmxlbmd0aCA+IDApIHtcbiAgICB3cml0ZXIud3JpdGVSZXBlYXRlZE1lc3NhZ2UoXG4gICAgICAxLFxuICAgICAgZixcbiAgICAgIGJhc2VfcGIuU2hvcExpc3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXJcbiAgICApO1xuICB9XG59O1xuXG5cbi8qKlxuICogcmVwZWF0ZWQgYmFzZS52MS5TaG9wTGlzdCBsaXN0ID0gMTtcbiAqIEByZXR1cm4geyFBcnJheTwhcHJvdG8uYmFzZS52MS5TaG9wTGlzdD59XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NTaG9wTGlzdFJlcGx5LnByb3RvdHlwZS5nZXRMaXN0TGlzdCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBleyFBcnJheTwhcHJvdG8uYmFzZS52MS5TaG9wTGlzdD59ICovIChcbiAgICBqc3BiLk1lc3NhZ2UuZ2V0UmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcywgYmFzZV9wYi5TaG9wTGlzdCwgMSkpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7IUFycmF5PCFwcm90by5iYXNlLnYxLlNob3BMaXN0Pn0gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5hc3MudjEuQXNzU2hvcExpc3RSZXBseX0gcmV0dXJucyB0aGlzXG4qL1xucHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHkucHJvdG90eXBlLnNldExpc3RMaXN0ID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRSZXBlYXRlZFdyYXBwZXJGaWVsZCh0aGlzLCAxLCB2YWx1ZSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5TaG9wTGlzdD19IG9wdF92YWx1ZVxuICogQHBhcmFtIHtudW1iZXI9fSBvcHRfaW5kZXhcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLlNob3BMaXN0fVxuICovXG5wcm90by5hc3MudjEuQXNzU2hvcExpc3RSZXBseS5wcm90b3R5cGUuYWRkTGlzdCA9IGZ1bmN0aW9uKG9wdF92YWx1ZSwgb3B0X2luZGV4KSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2UuYWRkVG9SZXBlYXRlZFdyYXBwZXJGaWVsZCh0aGlzLCAxLCBvcHRfdmFsdWUsIHByb3RvLmJhc2UudjEuU2hvcExpc3QsIG9wdF9pbmRleCk7XG59O1xuXG5cbi8qKlxuICogQ2xlYXJzIHRoZSBsaXN0IG1ha2luZyBpdCBlbXB0eSBidXQgbm9uLW51bGwuXG4gKiBAcmV0dXJuIHshcHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHl9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5hc3MudjEuQXNzU2hvcExpc3RSZXBseS5wcm90b3R5cGUuY2xlYXJMaXN0TGlzdCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gdGhpcy5zZXRMaXN0TGlzdChbXSk7XG59O1xuXG5cblxuLyoqXG4gKiBMaXN0IG9mIHJlcGVhdGVkIGZpZWxkcyB3aXRoaW4gdGhpcyBtZXNzYWdlIHR5cGUuXG4gKiBAcHJpdmF0ZSB7IUFycmF5PG51bWJlcj59XG4gKiBAY29uc3RcbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5LnJlcGVhdGVkRmllbGRzXyA9IFsxXTtcblxuXG5cbmlmIChqc3BiLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUKSB7XG4vKipcbiAqIENyZWF0ZXMgYW4gb2JqZWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgcHJvdG8uXG4gKiBGaWVsZCBuYW1lcyB0aGF0IGFyZSByZXNlcnZlZCBpbiBKYXZhU2NyaXB0IGFuZCB3aWxsIGJlIHJlbmFtZWQgdG8gcGJfbmFtZS5cbiAqIE9wdGlvbmFsIGZpZWxkcyB0aGF0IGFyZSBub3Qgc2V0IHdpbGwgYmUgc2V0IHRvIHVuZGVmaW5lZC5cbiAqIFRvIGFjY2VzcyBhIHJlc2VydmVkIGZpZWxkIHVzZSwgZm9vLnBiXzxuYW1lPiwgZWcsIGZvby5wYl9kZWZhdWx0LlxuICogRm9yIHRoZSBsaXN0IG9mIHJlc2VydmVkIG5hbWVzIHBsZWFzZSBzZWU6XG4gKiAgICAgbmV0L3Byb3RvMi9jb21waWxlci9qcy9pbnRlcm5hbC9nZW5lcmF0b3IuY2Mja0tleXdvcmQuXG4gKiBAcGFyYW0ge2Jvb2xlYW49fSBvcHRfaW5jbHVkZUluc3RhbmNlIERlcHJlY2F0ZWQuIHdoZXRoZXIgdG8gaW5jbHVkZSB0aGVcbiAqICAgICBKU1BCIGluc3RhbmNlIGZvciB0cmFuc2l0aW9uYWwgc295IHByb3RvIHN1cHBvcnQ6XG4gKiAgICAgaHR0cDovL2dvdG8vc295LXBhcmFtLW1pZ3JhdGlvblxuICogQHJldHVybiB7IU9iamVjdH1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5LnByb3RvdHlwZS50b09iamVjdCA9IGZ1bmN0aW9uKG9wdF9pbmNsdWRlSW5zdGFuY2UpIHtcbiAgcmV0dXJuIHByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0xpc3RSZXBseS50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0xpc3RSZXBseX0gbXNnIFRoZSBtc2cgaW5zdGFuY2UgdG8gdHJhbnNmb3JtLlxuICogQHJldHVybiB7IU9iamVjdH1cbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5LnRvT2JqZWN0ID0gZnVuY3Rpb24oaW5jbHVkZUluc3RhbmNlLCBtc2cpIHtcbiAgdmFyIGYsIG9iaiA9IHtcbiAgICBsaXN0TGlzdDoganNwYi5NZXNzYWdlLnRvT2JqZWN0TGlzdChtc2cuZ2V0TGlzdExpc3QoKSxcbiAgICBiYXNlX3BiLkNvbnRyb2xJbmZvTGlzdC50b09iamVjdCwgaW5jbHVkZUluc3RhbmNlKVxuICB9O1xuXG4gIGlmIChpbmNsdWRlSW5zdGFuY2UpIHtcbiAgICBvYmouJGpzcGJNZXNzYWdlSW5zdGFuY2UgPSBtc2c7XG4gIH1cbiAgcmV0dXJuIG9iajtcbn07XG59XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEBwYXJhbSB7anNwYi5CeXRlU291cmNlfSBieXRlcyBUaGUgYnl0ZXMgdG8gZGVzZXJpYWxpemUuXG4gKiBAcmV0dXJuIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5fVxuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHkuZGVzZXJpYWxpemVCaW5hcnkgPSBmdW5jdGlvbihieXRlcykge1xuICB2YXIgcmVhZGVyID0gbmV3IGpzcGIuQmluYXJ5UmVhZGVyKGJ5dGVzKTtcbiAgdmFyIG1zZyA9IG5ldyBwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHk7XG4gIHJldHVybiBwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHkuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG1zZywgcmVhZGVyKTtcbn07XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KSBmcm9tIHRoZVxuICogZ2l2ZW4gcmVhZGVyIGludG8gdGhlIGdpdmVuIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHBhcmFtIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5fSBtc2cgVGhlIG1lc3NhZ2Ugb2JqZWN0IHRvIGRlc2VyaWFsaXplIGludG8uXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVJlYWRlcn0gcmVhZGVyIFRoZSBCaW5hcnlSZWFkZXIgdG8gdXNlLlxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0xpc3RSZXBseX1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciA9IGZ1bmN0aW9uKG1zZywgcmVhZGVyKSB7XG4gIHdoaWxlIChyZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICBpZiAocmVhZGVyLmlzRW5kR3JvdXAoKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBmaWVsZCA9IHJlYWRlci5nZXRGaWVsZE51bWJlcigpO1xuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICBjYXNlIDE6XG4gICAgICB2YXIgdmFsdWUgPSBuZXcgYmFzZV9wYi5Db250cm9sSW5mb0xpc3Q7XG4gICAgICByZWFkZXIucmVhZE1lc3NhZ2UodmFsdWUsYmFzZV9wYi5Db250cm9sSW5mb0xpc3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKTtcbiAgICAgIG1zZy5hZGRMaXN0KHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZWFkZXIuc2tpcEZpZWxkKCk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1zZztcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcmV0dXJuIHshVWludDhBcnJheX1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnkgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHdyaXRlciA9IG5ldyBqc3BiLkJpbmFyeVdyaXRlcigpO1xuICBwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHkuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlXG4gKiBmb3JtYXQpLCB3cml0aW5nIHRvIHRoZSBnaXZlbiBCaW5hcnlXcml0ZXIuXG4gKiBAcGFyYW0geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHl9IG1lc3NhZ2VcbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5V3JpdGVyfSB3cml0ZXJcbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyID0gZnVuY3Rpb24obWVzc2FnZSwgd3JpdGVyKSB7XG4gIHZhciBmID0gdW5kZWZpbmVkO1xuICBmID0gbWVzc2FnZS5nZXRMaXN0TGlzdCgpO1xuICBpZiAoZi5sZW5ndGggPiAwKSB7XG4gICAgd3JpdGVyLndyaXRlUmVwZWF0ZWRNZXNzYWdlKFxuICAgICAgMSxcbiAgICAgIGYsXG4gICAgICBiYXNlX3BiLkNvbnRyb2xJbmZvTGlzdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlclxuICAgICk7XG4gIH1cbn07XG5cblxuLyoqXG4gKiByZXBlYXRlZCBiYXNlLnYxLkNvbnRyb2xJbmZvTGlzdCBsaXN0ID0gMTtcbiAqIEByZXR1cm4geyFBcnJheTwhcHJvdG8uYmFzZS52MS5Db250cm9sSW5mb0xpc3Q+fVxuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHkucHJvdG90eXBlLmdldExpc3RMaXN0ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGV7IUFycmF5PCFwcm90by5iYXNlLnYxLkNvbnRyb2xJbmZvTGlzdD59ICovIChcbiAgICBqc3BiLk1lc3NhZ2UuZ2V0UmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcywgYmFzZV9wYi5Db250cm9sSW5mb0xpc3QsIDEpKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0geyFBcnJheTwhcHJvdG8uYmFzZS52MS5Db250cm9sSW5mb0xpc3Q+fSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0xpc3RSZXBseX0gcmV0dXJucyB0aGlzXG4qL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5LnByb3RvdHlwZS5zZXRMaXN0TGlzdCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcywgMSwgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuQ29udHJvbEluZm9MaXN0PX0gb3B0X3ZhbHVlXG4gKiBAcGFyYW0ge251bWJlcj19IG9wdF9pbmRleFxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuQ29udHJvbEluZm9MaXN0fVxuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHkucHJvdG90eXBlLmFkZExpc3QgPSBmdW5jdGlvbihvcHRfdmFsdWUsIG9wdF9pbmRleCkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLmFkZFRvUmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcywgMSwgb3B0X3ZhbHVlLCBwcm90by5iYXNlLnYxLkNvbnRyb2xJbmZvTGlzdCwgb3B0X2luZGV4KTtcbn07XG5cblxuLyoqXG4gKiBDbGVhcnMgdGhlIGxpc3QgbWFraW5nIGl0IGVtcHR5IGJ1dCBub24tbnVsbC5cbiAqIEByZXR1cm4geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHl9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHkucHJvdG90eXBlLmNsZWFyTGlzdExpc3QgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHRoaXMuc2V0TGlzdExpc3QoW10pO1xufTtcblxuXG5cblxuXG5pZiAoanNwYi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCkge1xuLyoqXG4gKiBDcmVhdGVzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHByb3RvLlxuICogRmllbGQgbmFtZXMgdGhhdCBhcmUgcmVzZXJ2ZWQgaW4gSmF2YVNjcmlwdCBhbmQgd2lsbCBiZSByZW5hbWVkIHRvIHBiX25hbWUuXG4gKiBPcHRpb25hbCBmaWVsZHMgdGhhdCBhcmUgbm90IHNldCB3aWxsIGJlIHNldCB0byB1bmRlZmluZWQuXG4gKiBUbyBhY2Nlc3MgYSByZXNlcnZlZCBmaWVsZCB1c2UsIGZvby5wYl88bmFtZT4sIGVnLCBmb28ucGJfZGVmYXVsdC5cbiAqIEZvciB0aGUgbGlzdCBvZiByZXNlcnZlZCBuYW1lcyBwbGVhc2Ugc2VlOlxuICogICAgIG5ldC9wcm90bzIvY29tcGlsZXIvanMvaW50ZXJuYWwvZ2VuZXJhdG9yLmNjI2tLZXl3b3JkLlxuICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2luY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiB3aGV0aGVyIHRvIGluY2x1ZGUgdGhlXG4gKiAgICAgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHkucHJvdG90eXBlLnRvT2JqZWN0ID0gZnVuY3Rpb24ob3B0X2luY2x1ZGVJbnN0YW5jZSkge1xuICByZXR1cm4gcHJvdG8uYXNzLnYxLkFzc01hcEluZm9EZXRhaWxSZXBseS50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHl9IG1zZyBUaGUgbXNnIGluc3RhbmNlIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHkudG9PYmplY3QgPSBmdW5jdGlvbihpbmNsdWRlSW5zdGFuY2UsIG1zZykge1xuICB2YXIgZiwgb2JqID0ge1xuICAgIHNob3BpZDoganNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQobXNnLCAxLCAwKSxcbiAgICBtYXBuYW1lOiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdChtc2csIDIsIFwiXCIpLFxuICAgIHppcGltYWdlOiAoZiA9IG1zZy5nZXRaaXBpbWFnZSgpKSAmJiBiYXNlX3BiLk5ldEltYWdlLnRvT2JqZWN0KGluY2x1ZGVJbnN0YW5jZSwgZilcbiAgfTtcblxuICBpZiAoaW5jbHVkZUluc3RhbmNlKSB7XG4gICAgb2JqLiRqc3BiTWVzc2FnZUluc3RhbmNlID0gbXNnO1xuICB9XG4gIHJldHVybiBvYmo7XG59O1xufVxuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcGFyYW0ge2pzcGIuQnl0ZVNvdXJjZX0gYnl0ZXMgVGhlIGJ5dGVzIHRvIGRlc2VyaWFsaXplLlxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHl9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHkuZGVzZXJpYWxpemVCaW5hcnkgPSBmdW5jdGlvbihieXRlcykge1xuICB2YXIgcmVhZGVyID0gbmV3IGpzcGIuQmluYXJ5UmVhZGVyKGJ5dGVzKTtcbiAgdmFyIG1zZyA9IG5ldyBwcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5O1xuICByZXR1cm4gcHJvdG8uYXNzLnYxLkFzc01hcEluZm9EZXRhaWxSZXBseS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIobXNnLCByZWFkZXIpO1xufTtcblxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpIGZyb20gdGhlXG4gKiBnaXZlbiByZWFkZXIgaW50byB0aGUgZ2l2ZW4gbWVzc2FnZSBvYmplY3QuXG4gKiBAcGFyYW0geyFwcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5fSBtc2cgVGhlIG1lc3NhZ2Ugb2JqZWN0IHRvIGRlc2VyaWFsaXplIGludG8uXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVJlYWRlcn0gcmVhZGVyIFRoZSBCaW5hcnlSZWFkZXIgdG8gdXNlLlxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHl9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHkuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyID0gZnVuY3Rpb24obXNnLCByZWFkZXIpIHtcbiAgd2hpbGUgKHJlYWRlci5uZXh0RmllbGQoKSkge1xuICAgIGlmIChyZWFkZXIuaXNFbmRHcm91cCgpKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgdmFyIGZpZWxkID0gcmVhZGVyLmdldEZpZWxkTnVtYmVyKCk7XG4gICAgc3dpdGNoIChmaWVsZCkge1xuICAgIGNhc2UgMTpcbiAgICAgIHZhciB2YWx1ZSA9IC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAocmVhZGVyLnJlYWRJbnQzMigpKTtcbiAgICAgIG1zZy5zZXRTaG9waWQodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAyOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChyZWFkZXIucmVhZFN0cmluZygpKTtcbiAgICAgIG1zZy5zZXRNYXBuYW1lKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMzpcbiAgICAgIHZhciB2YWx1ZSA9IG5ldyBiYXNlX3BiLk5ldEltYWdlO1xuICAgICAgcmVhZGVyLnJlYWRNZXNzYWdlKHZhbHVlLGJhc2VfcGIuTmV0SW1hZ2UuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKTtcbiAgICAgIG1zZy5zZXRaaXBpbWFnZSh2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgcmVhZGVyLnNraXBGaWVsZCgpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBtc2c7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHJldHVybiB7IVVpbnQ4QXJyYXl9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHkucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgd3JpdGVyID0gbmV3IGpzcGIuQmluYXJ5V3JpdGVyKCk7XG4gIHByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHkuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlXG4gKiBmb3JtYXQpLCB3cml0aW5nIHRvIHRoZSBnaXZlbiBCaW5hcnlXcml0ZXIuXG4gKiBAcGFyYW0geyFwcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5fSBtZXNzYWdlXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVdyaXRlcn0gd3JpdGVyXG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHkuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIgPSBmdW5jdGlvbihtZXNzYWdlLCB3cml0ZXIpIHtcbiAgdmFyIGYgPSB1bmRlZmluZWQ7XG4gIGYgPSBtZXNzYWdlLmdldFNob3BpZCgpO1xuICBpZiAoZiAhPT0gMCkge1xuICAgIHdyaXRlci53cml0ZUludDMyKFxuICAgICAgMSxcbiAgICAgIGZcbiAgICApO1xuICB9XG4gIGYgPSBtZXNzYWdlLmdldE1hcG5hbWUoKTtcbiAgaWYgKGYubGVuZ3RoID4gMCkge1xuICAgIHdyaXRlci53cml0ZVN0cmluZyhcbiAgICAgIDIsXG4gICAgICBmXG4gICAgKTtcbiAgfVxuICBmID0gbWVzc2FnZS5nZXRaaXBpbWFnZSgpO1xuICBpZiAoZiAhPSBudWxsKSB7XG4gICAgd3JpdGVyLndyaXRlTWVzc2FnZShcbiAgICAgIDMsXG4gICAgICBmLFxuICAgICAgYmFzZV9wYi5OZXRJbWFnZS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlclxuICAgICk7XG4gIH1cbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBpbnQzMiBzaG9wSWQgPSAxO1xuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5wcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5LnByb3RvdHlwZS5nZXRTaG9waWQgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAoanNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywgMSwgMCkpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHl9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5LnByb3RvdHlwZS5zZXRTaG9waWQgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsIDEsIHZhbHVlKTtcbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBzdHJpbmcgbWFwTmFtZSA9IDI7XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHkucHJvdG90eXBlLmdldE1hcG5hbWUgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAoanNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywgMiwgXCJcIikpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHl9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5LnByb3RvdHlwZS5zZXRNYXBuYW1lID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNTdHJpbmdGaWVsZCh0aGlzLCAyLCB2YWx1ZSk7XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgYmFzZS52MS5OZXRJbWFnZSB6aXBJbWFnZSA9IDM7XG4gKiBAcmV0dXJuIHs/cHJvdG8uYmFzZS52MS5OZXRJbWFnZX1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc01hcEluZm9EZXRhaWxSZXBseS5wcm90b3R5cGUuZ2V0WmlwaW1hZ2UgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZXs/cHJvdG8uYmFzZS52MS5OZXRJbWFnZX0gKi8gKFxuICAgIGpzcGIuTWVzc2FnZS5nZXRXcmFwcGVyRmllbGQodGhpcywgYmFzZV9wYi5OZXRJbWFnZSwgMykpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7P3Byb3RvLmJhc2UudjEuTmV0SW1hZ2V8dW5kZWZpbmVkfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHl9IHJldHVybnMgdGhpc1xuKi9cbnByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHkucHJvdG90eXBlLnNldFppcGltYWdlID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRXcmFwcGVyRmllbGQodGhpcywgMywgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIENsZWFycyB0aGUgbWVzc2FnZSBmaWVsZCBtYWtpbmcgaXQgdW5kZWZpbmVkLlxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NNYXBJbmZvRGV0YWlsUmVwbHl9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5LnByb3RvdHlwZS5jbGVhclppcGltYWdlID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB0aGlzLnNldFppcGltYWdlKHVuZGVmaW5lZCk7XG59O1xuXG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIHRoaXMgZmllbGQgaXMgc2V0LlxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc01hcEluZm9EZXRhaWxSZXBseS5wcm90b3R5cGUuaGFzWmlwaW1hZ2UgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5nZXRGaWVsZCh0aGlzLCAzKSAhPSBudWxsO1xufTtcblxuXG5cbi8qKlxuICogTGlzdCBvZiByZXBlYXRlZCBmaWVsZHMgd2l0aGluIHRoaXMgbWVzc2FnZSB0eXBlLlxuICogQHByaXZhdGUgeyFBcnJheTxudW1iZXI+fVxuICogQGNvbnN0XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5LnJlcGVhdGVkRmllbGRzXyA9IFs0XTtcblxuXG5cbmlmIChqc3BiLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUKSB7XG4vKipcbiAqIENyZWF0ZXMgYW4gb2JqZWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgcHJvdG8uXG4gKiBGaWVsZCBuYW1lcyB0aGF0IGFyZSByZXNlcnZlZCBpbiBKYXZhU2NyaXB0IGFuZCB3aWxsIGJlIHJlbmFtZWQgdG8gcGJfbmFtZS5cbiAqIE9wdGlvbmFsIGZpZWxkcyB0aGF0IGFyZSBub3Qgc2V0IHdpbGwgYmUgc2V0IHRvIHVuZGVmaW5lZC5cbiAqIFRvIGFjY2VzcyBhIHJlc2VydmVkIGZpZWxkIHVzZSwgZm9vLnBiXzxuYW1lPiwgZWcsIGZvby5wYl9kZWZhdWx0LlxuICogRm9yIHRoZSBsaXN0IG9mIHJlc2VydmVkIG5hbWVzIHBsZWFzZSBzZWU6XG4gKiAgICAgbmV0L3Byb3RvMi9jb21waWxlci9qcy9pbnRlcm5hbC9nZW5lcmF0b3IuY2Mja0tleXdvcmQuXG4gKiBAcGFyYW0ge2Jvb2xlYW49fSBvcHRfaW5jbHVkZUluc3RhbmNlIERlcHJlY2F0ZWQuIHdoZXRoZXIgdG8gaW5jbHVkZSB0aGVcbiAqICAgICBKU1BCIGluc3RhbmNlIGZvciB0cmFuc2l0aW9uYWwgc295IHByb3RvIHN1cHBvcnQ6XG4gKiAgICAgaHR0cDovL2dvdG8vc295LXBhcmFtLW1pZ3JhdGlvblxuICogQHJldHVybiB7IU9iamVjdH1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHkucHJvdG90eXBlLnRvT2JqZWN0ID0gZnVuY3Rpb24ob3B0X2luY2x1ZGVJbnN0YW5jZSkge1xuICByZXR1cm4gcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHkudG9PYmplY3Qob3B0X2luY2x1ZGVJbnN0YW5jZSwgdGhpcyk7XG59O1xuXG5cbi8qKlxuICogU3RhdGljIHZlcnNpb24gb2YgdGhlIHtAc2VlIHRvT2JqZWN0fSBtZXRob2QuXG4gKiBAcGFyYW0ge2Jvb2xlYW58dW5kZWZpbmVkfSBpbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gV2hldGhlciB0byBpbmNsdWRlXG4gKiAgICAgdGhlIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcGFyYW0geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseX0gbXNnIFRoZSBtc2cgaW5zdGFuY2UgdG8gdHJhbnNmb3JtLlxuICogQHJldHVybiB7IU9iamVjdH1cbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHkudG9PYmplY3QgPSBmdW5jdGlvbihpbmNsdWRlSW5zdGFuY2UsIG1zZykge1xuICB2YXIgZiwgb2JqID0ge1xuICAgIGNpaWQ6IGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KG1zZywgMSwgMCksXG4gICAgY2ljb2RlOiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdChtc2csIDIsIFwiXCIpLFxuICAgIHBvc2l0aW9uOiAoZiA9IG1zZy5nZXRQb3NpdGlvbigpKSAmJiBiYXNlX3BiLlBvc2l0aW9uLnRvT2JqZWN0KGluY2x1ZGVJbnN0YW5jZSwgZiksXG4gICAgbmZjY29kZWxpc3RMaXN0OiAoZiA9IGpzcGIuTWVzc2FnZS5nZXRSZXBlYXRlZEZpZWxkKG1zZywgNCkpID09IG51bGwgPyB1bmRlZmluZWQgOiBmXG4gIH07XG5cbiAgaWYgKGluY2x1ZGVJbnN0YW5jZSkge1xuICAgIG9iai4kanNwYk1lc3NhZ2VJbnN0YW5jZSA9IG1zZztcbiAgfVxuICByZXR1cm4gb2JqO1xufTtcbn1cblxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHBhcmFtIHtqc3BiLkJ5dGVTb3VyY2V9IGJ5dGVzIFRoZSBieXRlcyB0byBkZXNlcmlhbGl6ZS5cbiAqIEByZXR1cm4geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseX1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHkuZGVzZXJpYWxpemVCaW5hcnkgPSBmdW5jdGlvbihieXRlcykge1xuICB2YXIgcmVhZGVyID0gbmV3IGpzcGIuQmluYXJ5UmVhZGVyKGJ5dGVzKTtcbiAgdmFyIG1zZyA9IG5ldyBwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseTtcbiAgcmV0dXJuIHByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihtc2csIHJlYWRlcik7XG59O1xuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkgZnJvbSB0aGVcbiAqIGdpdmVuIHJlYWRlciBpbnRvIHRoZSBnaXZlbiBtZXNzYWdlIG9iamVjdC5cbiAqIEBwYXJhbSB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5fSBtc2cgVGhlIG1lc3NhZ2Ugb2JqZWN0IHRvIGRlc2VyaWFsaXplIGludG8uXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVJlYWRlcn0gcmVhZGVyIFRoZSBCaW5hcnlSZWFkZXIgdG8gdXNlLlxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5fVxuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIgPSBmdW5jdGlvbihtc2csIHJlYWRlcikge1xuICB3aGlsZSAocmVhZGVyLm5leHRGaWVsZCgpKSB7XG4gICAgaWYgKHJlYWRlci5pc0VuZEdyb3VwKCkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB2YXIgZmllbGQgPSByZWFkZXIuZ2V0RmllbGROdW1iZXIoKTtcbiAgICBzd2l0Y2ggKGZpZWxkKSB7XG4gICAgY2FzZSAxOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtudW1iZXJ9ICovIChyZWFkZXIucmVhZEludDMyKCkpO1xuICAgICAgbXNnLnNldENpaWQodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAyOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChyZWFkZXIucmVhZFN0cmluZygpKTtcbiAgICAgIG1zZy5zZXRDaWNvZGUodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAzOlxuICAgICAgdmFyIHZhbHVlID0gbmV3IGJhc2VfcGIuUG9zaXRpb247XG4gICAgICByZWFkZXIucmVhZE1lc3NhZ2UodmFsdWUsYmFzZV9wYi5Qb3NpdGlvbi5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIpO1xuICAgICAgbXNnLnNldFBvc2l0aW9uKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgNDpcbiAgICAgIHZhciB2YWx1ZSA9IC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAocmVhZGVyLnJlYWRTdHJpbmcoKSk7XG4gICAgICBtc2cuYWRkTmZjY29kZWxpc3QodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJlYWRlci5za2lwRmllbGQoKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbXNnO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEByZXR1cm4geyFVaW50OEFycmF5fVxuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseS5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oKSB7XG4gIHZhciB3cml0ZXIgPSBuZXcganNwYi5CaW5hcnlXcml0ZXIoKTtcbiAgcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHkuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlXG4gKiBmb3JtYXQpLCB3cml0aW5nIHRvIHRoZSBnaXZlbiBCaW5hcnlXcml0ZXIuXG4gKiBAcGFyYW0geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseX0gbWVzc2FnZVxuICogQHBhcmFtIHshanNwYi5CaW5hcnlXcml0ZXJ9IHdyaXRlclxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciA9IGZ1bmN0aW9uKG1lc3NhZ2UsIHdyaXRlcikge1xuICB2YXIgZiA9IHVuZGVmaW5lZDtcbiAgZiA9IG1lc3NhZ2UuZ2V0Q2lpZCgpO1xuICBpZiAoZiAhPT0gMCkge1xuICAgIHdyaXRlci53cml0ZUludDMyKFxuICAgICAgMSxcbiAgICAgIGZcbiAgICApO1xuICB9XG4gIGYgPSBtZXNzYWdlLmdldENpY29kZSgpO1xuICBpZiAoZi5sZW5ndGggPiAwKSB7XG4gICAgd3JpdGVyLndyaXRlU3RyaW5nKFxuICAgICAgMixcbiAgICAgIGZcbiAgICApO1xuICB9XG4gIGYgPSBtZXNzYWdlLmdldFBvc2l0aW9uKCk7XG4gIGlmIChmICE9IG51bGwpIHtcbiAgICB3cml0ZXIud3JpdGVNZXNzYWdlKFxuICAgICAgMyxcbiAgICAgIGYsXG4gICAgICBiYXNlX3BiLlBvc2l0aW9uLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyXG4gICAgKTtcbiAgfVxuICBmID0gbWVzc2FnZS5nZXROZmNjb2RlbGlzdExpc3QoKTtcbiAgaWYgKGYubGVuZ3RoID4gMCkge1xuICAgIHdyaXRlci53cml0ZVJlcGVhdGVkU3RyaW5nKFxuICAgICAgNCxcbiAgICAgIGZcbiAgICApO1xuICB9XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgaW50MzIgY2lJZCA9IDE7XG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5LnByb3RvdHlwZS5nZXRDaWlkID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge251bWJlcn0gKi8gKGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsIDEsIDApKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseX0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5LnByb3RvdHlwZS5zZXRDaWlkID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLCAxLCB2YWx1ZSk7XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgc3RyaW5nIGNpQ29kZSA9IDI7XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5LnByb3RvdHlwZS5nZXRDaWNvZGUgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAoanNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywgMiwgXCJcIikpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5fSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHkucHJvdG90eXBlLnNldENpY29kZSA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zU3RyaW5nRmllbGQodGhpcywgMiwgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGJhc2UudjEuUG9zaXRpb24gcG9zaXRpb24gPSAzO1xuICogQHJldHVybiB7P3Byb3RvLmJhc2UudjEuUG9zaXRpb259XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5LnByb3RvdHlwZS5nZXRQb3NpdGlvbiA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlez9wcm90by5iYXNlLnYxLlBvc2l0aW9ufSAqLyAoXG4gICAganNwYi5NZXNzYWdlLmdldFdyYXBwZXJGaWVsZCh0aGlzLCBiYXNlX3BiLlBvc2l0aW9uLCAzKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHs/cHJvdG8uYmFzZS52MS5Qb3NpdGlvbnx1bmRlZmluZWR9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHl9IHJldHVybnMgdGhpc1xuKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5LnByb3RvdHlwZS5zZXRQb3NpdGlvbiA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0V3JhcHBlckZpZWxkKHRoaXMsIDMsIHZhbHVlKTtcbn07XG5cblxuLyoqXG4gKiBDbGVhcnMgdGhlIG1lc3NhZ2UgZmllbGQgbWFraW5nIGl0IHVuZGVmaW5lZC5cbiAqIEByZXR1cm4geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseX0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5LnByb3RvdHlwZS5jbGVhclBvc2l0aW9uID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB0aGlzLnNldFBvc2l0aW9uKHVuZGVmaW5lZCk7XG59O1xuXG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIHRoaXMgZmllbGQgaXMgc2V0LlxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHkucHJvdG90eXBlLmhhc1Bvc2l0aW9uID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGQodGhpcywgMykgIT0gbnVsbDtcbn07XG5cblxuLyoqXG4gKiByZXBlYXRlZCBzdHJpbmcgbmZjQ29kZUxpc3QgPSA0O1xuICogQHJldHVybiB7IUFycmF5PHN0cmluZz59XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5LnByb3RvdHlwZS5nZXROZmNjb2RlbGlzdExpc3QgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7IUFycmF5PHN0cmluZz59ICovIChqc3BiLk1lc3NhZ2UuZ2V0UmVwZWF0ZWRGaWVsZCh0aGlzLCA0KSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHshQXJyYXk8c3RyaW5nPn0gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseX0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5LnByb3RvdHlwZS5zZXROZmNjb2RlbGlzdExpc3QgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLnNldEZpZWxkKHRoaXMsIDQsIHZhbHVlIHx8IFtdKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7bnVtYmVyPX0gb3B0X2luZGV4XG4gKiBAcmV0dXJuIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHl9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseS5wcm90b3R5cGUuYWRkTmZjY29kZWxpc3QgPSBmdW5jdGlvbih2YWx1ZSwgb3B0X2luZGV4KSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2UuYWRkVG9SZXBlYXRlZEZpZWxkKHRoaXMsIDQsIHZhbHVlLCBvcHRfaW5kZXgpO1xufTtcblxuXG4vKipcbiAqIENsZWFycyB0aGUgbGlzdCBtYWtpbmcgaXQgZW1wdHkgYnV0IG5vbi1udWxsLlxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5fSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHkucHJvdG90eXBlLmNsZWFyTmZjY29kZWxpc3RMaXN0ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB0aGlzLnNldE5mY2NvZGVsaXN0TGlzdChbXSk7XG59O1xuXG5cblxuLyoqXG4gKiBMaXN0IG9mIHJlcGVhdGVkIGZpZWxkcyB3aXRoaW4gdGhpcyBtZXNzYWdlIHR5cGUuXG4gKiBAcHJpdmF0ZSB7IUFycmF5PG51bWJlcj59XG4gKiBAY29uc3RcbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3QucmVwZWF0ZWRGaWVsZHNfID0gWzJdO1xuXG5cblxuaWYgKGpzcGIuTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QpIHtcbi8qKlxuICogQ3JlYXRlcyBhbiBvYmplY3QgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBwcm90by5cbiAqIEZpZWxkIG5hbWVzIHRoYXQgYXJlIHJlc2VydmVkIGluIEphdmFTY3JpcHQgYW5kIHdpbGwgYmUgcmVuYW1lZCB0byBwYl9uYW1lLlxuICogT3B0aW9uYWwgZmllbGRzIHRoYXQgYXJlIG5vdCBzZXQgd2lsbCBiZSBzZXQgdG8gdW5kZWZpbmVkLlxuICogVG8gYWNjZXNzIGEgcmVzZXJ2ZWQgZmllbGQgdXNlLCBmb28ucGJfPG5hbWU+LCBlZywgZm9vLnBiX2RlZmF1bHQuXG4gKiBGb3IgdGhlIGxpc3Qgb2YgcmVzZXJ2ZWQgbmFtZXMgcGxlYXNlIHNlZTpcbiAqICAgICBuZXQvcHJvdG8yL2NvbXBpbGVyL2pzL2ludGVybmFsL2dlbmVyYXRvci5jYyNrS2V5d29yZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbj19IG9wdF9pbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gd2hldGhlciB0byBpbmNsdWRlIHRoZVxuICogICAgIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9TYXZlUmVxdWVzdC5wcm90b3R5cGUudG9PYmplY3QgPSBmdW5jdGlvbihvcHRfaW5jbHVkZUluc3RhbmNlKSB7XG4gIHJldHVybiBwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9TYXZlUmVxdWVzdC50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0fSBtc2cgVGhlIG1zZyBpbnN0YW5jZSB0byB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9TYXZlUmVxdWVzdC50b09iamVjdCA9IGZ1bmN0aW9uKGluY2x1ZGVJbnN0YW5jZSwgbXNnKSB7XG4gIHZhciBmLCBvYmogPSB7XG4gICAgY2lpZDoganNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQobXNnLCAxLCAwKSxcbiAgICBuZmNjb2RlbGlzdExpc3Q6IChmID0ganNwYi5NZXNzYWdlLmdldFJlcGVhdGVkRmllbGQobXNnLCAyKSkgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IGZcbiAgfTtcblxuICBpZiAoaW5jbHVkZUluc3RhbmNlKSB7XG4gICAgb2JqLiRqc3BiTWVzc2FnZUluc3RhbmNlID0gbXNnO1xuICB9XG4gIHJldHVybiBvYmo7XG59O1xufVxuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcGFyYW0ge2pzcGIuQnl0ZVNvdXJjZX0gYnl0ZXMgVGhlIGJ5dGVzIHRvIGRlc2VyaWFsaXplLlxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0fVxuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9TYXZlUmVxdWVzdC5kZXNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcganNwYi5CaW5hcnlSZWFkZXIoYnl0ZXMpO1xuICB2YXIgbXNnID0gbmV3IHByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0O1xuICByZXR1cm4gcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG1zZywgcmVhZGVyKTtcbn07XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KSBmcm9tIHRoZVxuICogZ2l2ZW4gcmVhZGVyIGludG8gdGhlIGdpdmVuIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHBhcmFtIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3R9IG1zZyBUaGUgbWVzc2FnZSBvYmplY3QgdG8gZGVzZXJpYWxpemUgaW50by5cbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5UmVhZGVyfSByZWFkZXIgVGhlIEJpbmFyeVJlYWRlciB0byB1c2UuXG4gKiBAcmV0dXJuIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3R9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciA9IGZ1bmN0aW9uKG1zZywgcmVhZGVyKSB7XG4gIHdoaWxlIChyZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICBpZiAocmVhZGVyLmlzRW5kR3JvdXAoKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBmaWVsZCA9IHJlYWRlci5nZXRGaWVsZE51bWJlcigpO1xuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICBjYXNlIDE6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge251bWJlcn0gKi8gKHJlYWRlci5yZWFkSW50MzIoKSk7XG4gICAgICBtc2cuc2V0Q2lpZCh2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDI6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge3N0cmluZ30gKi8gKHJlYWRlci5yZWFkU3RyaW5nKCkpO1xuICAgICAgbXNnLmFkZE5mY2NvZGVsaXN0KHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZWFkZXIuc2tpcEZpZWxkKCk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1zZztcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcmV0dXJuIHshVWludDhBcnJheX1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3QucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgd3JpdGVyID0gbmV3IGpzcGIuQmluYXJ5V3JpdGVyKCk7XG4gIHByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsIHdyaXRlcik7XG4gIHJldHVybiB3cml0ZXIuZ2V0UmVzdWx0QnVmZmVyKCk7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgZ2l2ZW4gbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZVxuICogZm9ybWF0KSwgd3JpdGluZyB0byB0aGUgZ2l2ZW4gQmluYXJ5V3JpdGVyLlxuICogQHBhcmFtIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3R9IG1lc3NhZ2VcbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5V3JpdGVyfSB3cml0ZXJcbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIgPSBmdW5jdGlvbihtZXNzYWdlLCB3cml0ZXIpIHtcbiAgdmFyIGYgPSB1bmRlZmluZWQ7XG4gIGYgPSBtZXNzYWdlLmdldENpaWQoKTtcbiAgaWYgKGYgIT09IDApIHtcbiAgICB3cml0ZXIud3JpdGVJbnQzMihcbiAgICAgIDEsXG4gICAgICBmXG4gICAgKTtcbiAgfVxuICBmID0gbWVzc2FnZS5nZXROZmNjb2RlbGlzdExpc3QoKTtcbiAgaWYgKGYubGVuZ3RoID4gMCkge1xuICAgIHdyaXRlci53cml0ZVJlcGVhdGVkU3RyaW5nKFxuICAgICAgMixcbiAgICAgIGZcbiAgICApO1xuICB9XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgaW50MzIgY2lJZCA9IDE7XG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0LnByb3RvdHlwZS5nZXRDaWlkID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge251bWJlcn0gKi8gKGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsIDEsIDApKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9TYXZlUmVxdWVzdH0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0LnByb3RvdHlwZS5zZXRDaWlkID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLCAxLCB2YWx1ZSk7XG59O1xuXG5cbi8qKlxuICogcmVwZWF0ZWQgc3RyaW5nIG5mY0NvZGVMaXN0ID0gMjtcbiAqIEByZXR1cm4geyFBcnJheTxzdHJpbmc+fVxuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9TYXZlUmVxdWVzdC5wcm90b3R5cGUuZ2V0TmZjY29kZWxpc3RMaXN0ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUgeyFBcnJheTxzdHJpbmc+fSAqLyAoanNwYi5NZXNzYWdlLmdldFJlcGVhdGVkRmllbGQodGhpcywgMikpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7IUFycmF5PHN0cmluZz59IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3R9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9TYXZlUmVxdWVzdC5wcm90b3R5cGUuc2V0TmZjY29kZWxpc3RMaXN0ID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRGaWVsZCh0aGlzLCAyLCB2YWx1ZSB8fCBbXSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge251bWJlcj19IG9wdF9pbmRleFxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0fSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3QucHJvdG90eXBlLmFkZE5mY2NvZGVsaXN0ID0gZnVuY3Rpb24odmFsdWUsIG9wdF9pbmRleCkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLmFkZFRvUmVwZWF0ZWRGaWVsZCh0aGlzLCAyLCB2YWx1ZSwgb3B0X2luZGV4KTtcbn07XG5cblxuLyoqXG4gKiBDbGVhcnMgdGhlIGxpc3QgbWFraW5nIGl0IGVtcHR5IGJ1dCBub24tbnVsbC5cbiAqIEByZXR1cm4geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9TYXZlUmVxdWVzdH0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb1NhdmVSZXF1ZXN0LnByb3RvdHlwZS5jbGVhck5mY2NvZGVsaXN0TGlzdCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gdGhpcy5zZXROZmNjb2RlbGlzdExpc3QoW10pO1xufTtcblxuXG5cblxuXG5pZiAoanNwYi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCkge1xuLyoqXG4gKiBDcmVhdGVzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHByb3RvLlxuICogRmllbGQgbmFtZXMgdGhhdCBhcmUgcmVzZXJ2ZWQgaW4gSmF2YVNjcmlwdCBhbmQgd2lsbCBiZSByZW5hbWVkIHRvIHBiX25hbWUuXG4gKiBPcHRpb25hbCBmaWVsZHMgdGhhdCBhcmUgbm90IHNldCB3aWxsIGJlIHNldCB0byB1bmRlZmluZWQuXG4gKiBUbyBhY2Nlc3MgYSByZXNlcnZlZCBmaWVsZCB1c2UsIGZvby5wYl88bmFtZT4sIGVnLCBmb28ucGJfZGVmYXVsdC5cbiAqIEZvciB0aGUgbGlzdCBvZiByZXNlcnZlZCBuYW1lcyBwbGVhc2Ugc2VlOlxuICogICAgIG5ldC9wcm90bzIvY29tcGlsZXIvanMvaW50ZXJuYWwvZ2VuZXJhdG9yLmNjI2tLZXl3b3JkLlxuICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2luY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiB3aGV0aGVyIHRvIGluY2x1ZGUgdGhlXG4gKiAgICAgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0LnByb3RvdHlwZS50b09iamVjdCA9IGZ1bmN0aW9uKG9wdF9pbmNsdWRlSW5zdGFuY2UpIHtcbiAgcmV0dXJuIHByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0LnRvT2JqZWN0KG9wdF9pbmNsdWRlSW5zdGFuY2UsIHRoaXMpO1xufTtcblxuXG4vKipcbiAqIFN0YXRpYyB2ZXJzaW9uIG9mIHRoZSB7QHNlZSB0b09iamVjdH0gbWV0aG9kLlxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gaW5jbHVkZUluc3RhbmNlIERlcHJlY2F0ZWQuIFdoZXRoZXIgdG8gaW5jbHVkZVxuICogICAgIHRoZSBKU1BCIGluc3RhbmNlIGZvciB0cmFuc2l0aW9uYWwgc295IHByb3RvIHN1cHBvcnQ6XG4gKiAgICAgaHR0cDovL2dvdG8vc295LXBhcmFtLW1pZ3JhdGlvblxuICogQHBhcmFtIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvR3BzU2F2ZVJlcXVlc3R9IG1zZyBUaGUgbXNnIGluc3RhbmNlIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0LnRvT2JqZWN0ID0gZnVuY3Rpb24oaW5jbHVkZUluc3RhbmNlLCBtc2cpIHtcbiAgdmFyIGYsIG9iaiA9IHtcbiAgICBjaWlkOiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdChtc2csIDEsIDApLFxuICAgIHBvc2l0aW9uOiAoZiA9IG1zZy5nZXRQb3NpdGlvbigpKSAmJiBiYXNlX3BiLlBvc2l0aW9uLnRvT2JqZWN0KGluY2x1ZGVJbnN0YW5jZSwgZilcbiAgfTtcblxuICBpZiAoaW5jbHVkZUluc3RhbmNlKSB7XG4gICAgb2JqLiRqc3BiTWVzc2FnZUluc3RhbmNlID0gbXNnO1xuICB9XG4gIHJldHVybiBvYmo7XG59O1xufVxuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcGFyYW0ge2pzcGIuQnl0ZVNvdXJjZX0gYnl0ZXMgVGhlIGJ5dGVzIHRvIGRlc2VyaWFsaXplLlxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0fVxuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9HcHNTYXZlUmVxdWVzdC5kZXNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcganNwYi5CaW5hcnlSZWFkZXIoYnl0ZXMpO1xuICB2YXIgbXNnID0gbmV3IHByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0O1xuICByZXR1cm4gcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvR3BzU2F2ZVJlcXVlc3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG1zZywgcmVhZGVyKTtcbn07XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KSBmcm9tIHRoZVxuICogZ2l2ZW4gcmVhZGVyIGludG8gdGhlIGdpdmVuIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHBhcmFtIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvR3BzU2F2ZVJlcXVlc3R9IG1zZyBUaGUgbWVzc2FnZSBvYmplY3QgdG8gZGVzZXJpYWxpemUgaW50by5cbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5UmVhZGVyfSByZWFkZXIgVGhlIEJpbmFyeVJlYWRlciB0byB1c2UuXG4gKiBAcmV0dXJuIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvR3BzU2F2ZVJlcXVlc3R9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciA9IGZ1bmN0aW9uKG1zZywgcmVhZGVyKSB7XG4gIHdoaWxlIChyZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICBpZiAocmVhZGVyLmlzRW5kR3JvdXAoKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBmaWVsZCA9IHJlYWRlci5nZXRGaWVsZE51bWJlcigpO1xuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICBjYXNlIDE6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge251bWJlcn0gKi8gKHJlYWRlci5yZWFkSW50MzIoKSk7XG4gICAgICBtc2cuc2V0Q2lpZCh2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDI6XG4gICAgICB2YXIgdmFsdWUgPSBuZXcgYmFzZV9wYi5Qb3NpdGlvbjtcbiAgICAgIHJlYWRlci5yZWFkTWVzc2FnZSh2YWx1ZSxiYXNlX3BiLlBvc2l0aW9uLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcik7XG4gICAgICBtc2cuc2V0UG9zaXRpb24odmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJlYWRlci5za2lwRmllbGQoKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbXNnO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEByZXR1cm4geyFVaW50OEFycmF5fVxuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9HcHNTYXZlUmVxdWVzdC5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oKSB7XG4gIHZhciB3cml0ZXIgPSBuZXcganNwYi5CaW5hcnlXcml0ZXIoKTtcbiAgcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvR3BzU2F2ZVJlcXVlc3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlXG4gKiBmb3JtYXQpLCB3cml0aW5nIHRvIHRoZSBnaXZlbiBCaW5hcnlXcml0ZXIuXG4gKiBAcGFyYW0geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9HcHNTYXZlUmVxdWVzdH0gbWVzc2FnZVxuICogQHBhcmFtIHshanNwYi5CaW5hcnlXcml0ZXJ9IHdyaXRlclxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9HcHNTYXZlUmVxdWVzdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciA9IGZ1bmN0aW9uKG1lc3NhZ2UsIHdyaXRlcikge1xuICB2YXIgZiA9IHVuZGVmaW5lZDtcbiAgZiA9IG1lc3NhZ2UuZ2V0Q2lpZCgpO1xuICBpZiAoZiAhPT0gMCkge1xuICAgIHdyaXRlci53cml0ZUludDMyKFxuICAgICAgMSxcbiAgICAgIGZcbiAgICApO1xuICB9XG4gIGYgPSBtZXNzYWdlLmdldFBvc2l0aW9uKCk7XG4gIGlmIChmICE9IG51bGwpIHtcbiAgICB3cml0ZXIud3JpdGVNZXNzYWdlKFxuICAgICAgMixcbiAgICAgIGYsXG4gICAgICBiYXNlX3BiLlBvc2l0aW9uLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyXG4gICAgKTtcbiAgfVxufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGludDMyIGNpSWQgPSAxO1xuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9HcHNTYXZlUmVxdWVzdC5wcm90b3R5cGUuZ2V0Q2lpZCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtudW1iZXJ9ICovIChqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLCAxLCAwKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvR3BzU2F2ZVJlcXVlc3R9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9HcHNTYXZlUmVxdWVzdC5wcm90b3R5cGUuc2V0Q2lpZCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywgMSwgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGJhc2UudjEuUG9zaXRpb24gcG9zaXRpb24gPSAyO1xuICogQHJldHVybiB7P3Byb3RvLmJhc2UudjEuUG9zaXRpb259XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0LnByb3RvdHlwZS5nZXRQb3NpdGlvbiA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlez9wcm90by5iYXNlLnYxLlBvc2l0aW9ufSAqLyAoXG4gICAganNwYi5NZXNzYWdlLmdldFdyYXBwZXJGaWVsZCh0aGlzLCBiYXNlX3BiLlBvc2l0aW9uLCAyKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHs/cHJvdG8uYmFzZS52MS5Qb3NpdGlvbnx1bmRlZmluZWR9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvR3BzU2F2ZVJlcXVlc3R9IHJldHVybnMgdGhpc1xuKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0LnByb3RvdHlwZS5zZXRQb3NpdGlvbiA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0V3JhcHBlckZpZWxkKHRoaXMsIDIsIHZhbHVlKTtcbn07XG5cblxuLyoqXG4gKiBDbGVhcnMgdGhlIG1lc3NhZ2UgZmllbGQgbWFraW5nIGl0IHVuZGVmaW5lZC5cbiAqIEByZXR1cm4geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9HcHNTYXZlUmVxdWVzdH0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0LnByb3RvdHlwZS5jbGVhclBvc2l0aW9uID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB0aGlzLnNldFBvc2l0aW9uKHVuZGVmaW5lZCk7XG59O1xuXG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIHRoaXMgZmllbGQgaXMgc2V0LlxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvR3BzU2F2ZVJlcXVlc3QucHJvdG90eXBlLmhhc1Bvc2l0aW9uID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGQodGhpcywgMikgIT0gbnVsbDtcbn07XG5cblxuXG5cblxuaWYgKGpzcGIuTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QpIHtcbi8qKlxuICogQ3JlYXRlcyBhbiBvYmplY3QgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBwcm90by5cbiAqIEZpZWxkIG5hbWVzIHRoYXQgYXJlIHJlc2VydmVkIGluIEphdmFTY3JpcHQgYW5kIHdpbGwgYmUgcmVuYW1lZCB0byBwYl9uYW1lLlxuICogT3B0aW9uYWwgZmllbGRzIHRoYXQgYXJlIG5vdCBzZXQgd2lsbCBiZSBzZXQgdG8gdW5kZWZpbmVkLlxuICogVG8gYWNjZXNzIGEgcmVzZXJ2ZWQgZmllbGQgdXNlLCBmb28ucGJfPG5hbWU+LCBlZywgZm9vLnBiX2RlZmF1bHQuXG4gKiBGb3IgdGhlIGxpc3Qgb2YgcmVzZXJ2ZWQgbmFtZXMgcGxlYXNlIHNlZTpcbiAqICAgICBuZXQvcHJvdG8yL2NvbXBpbGVyL2pzL2ludGVybmFsL2dlbmVyYXRvci5jYyNrS2V5d29yZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbj19IG9wdF9pbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gd2hldGhlciB0byBpbmNsdWRlIHRoZVxuICogICAgIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICovXG5wcm90by5hc3MudjEuQXNzVmVyaWZpY2F0aW9uUmVxdWVzdC5wcm90b3R5cGUudG9PYmplY3QgPSBmdW5jdGlvbihvcHRfaW5jbHVkZUluc3RhbmNlKSB7XG4gIHJldHVybiBwcm90by5hc3MudjEuQXNzVmVyaWZpY2F0aW9uUmVxdWVzdC50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmFzcy52MS5Bc3NWZXJpZmljYXRpb25SZXF1ZXN0fSBtc2cgVGhlIG1zZyBpbnN0YW5jZSB0byB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5hc3MudjEuQXNzVmVyaWZpY2F0aW9uUmVxdWVzdC50b09iamVjdCA9IGZ1bmN0aW9uKGluY2x1ZGVJbnN0YW5jZSwgbXNnKSB7XG4gIHZhciBmLCBvYmogPSB7XG4gICAgdXNlcmlkOiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdChtc2csIDEsIDApLFxuICAgIHVvaWQ6IGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KG1zZywgMiwgMClcbiAgfTtcblxuICBpZiAoaW5jbHVkZUluc3RhbmNlKSB7XG4gICAgb2JqLiRqc3BiTWVzc2FnZUluc3RhbmNlID0gbXNnO1xuICB9XG4gIHJldHVybiBvYmo7XG59O1xufVxuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcGFyYW0ge2pzcGIuQnl0ZVNvdXJjZX0gYnl0ZXMgVGhlIGJ5dGVzIHRvIGRlc2VyaWFsaXplLlxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NWZXJpZmljYXRpb25SZXF1ZXN0fVxuICovXG5wcm90by5hc3MudjEuQXNzVmVyaWZpY2F0aW9uUmVxdWVzdC5kZXNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcganNwYi5CaW5hcnlSZWFkZXIoYnl0ZXMpO1xuICB2YXIgbXNnID0gbmV3IHByb3RvLmFzcy52MS5Bc3NWZXJpZmljYXRpb25SZXF1ZXN0O1xuICByZXR1cm4gcHJvdG8uYXNzLnYxLkFzc1ZlcmlmaWNhdGlvblJlcXVlc3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG1zZywgcmVhZGVyKTtcbn07XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KSBmcm9tIHRoZVxuICogZ2l2ZW4gcmVhZGVyIGludG8gdGhlIGdpdmVuIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHBhcmFtIHshcHJvdG8uYXNzLnYxLkFzc1ZlcmlmaWNhdGlvblJlcXVlc3R9IG1zZyBUaGUgbWVzc2FnZSBvYmplY3QgdG8gZGVzZXJpYWxpemUgaW50by5cbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5UmVhZGVyfSByZWFkZXIgVGhlIEJpbmFyeVJlYWRlciB0byB1c2UuXG4gKiBAcmV0dXJuIHshcHJvdG8uYXNzLnYxLkFzc1ZlcmlmaWNhdGlvblJlcXVlc3R9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NWZXJpZmljYXRpb25SZXF1ZXN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciA9IGZ1bmN0aW9uKG1zZywgcmVhZGVyKSB7XG4gIHdoaWxlIChyZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICBpZiAocmVhZGVyLmlzRW5kR3JvdXAoKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBmaWVsZCA9IHJlYWRlci5nZXRGaWVsZE51bWJlcigpO1xuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICBjYXNlIDE6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge251bWJlcn0gKi8gKHJlYWRlci5yZWFkSW50MzIoKSk7XG4gICAgICBtc2cuc2V0VXNlcmlkKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMjpcbiAgICAgIHZhciB2YWx1ZSA9IC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAocmVhZGVyLnJlYWRJbnQzMigpKTtcbiAgICAgIG1zZy5zZXRVb2lkKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZWFkZXIuc2tpcEZpZWxkKCk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1zZztcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcmV0dXJuIHshVWludDhBcnJheX1cbiAqL1xucHJvdG8uYXNzLnYxLkFzc1ZlcmlmaWNhdGlvblJlcXVlc3QucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgd3JpdGVyID0gbmV3IGpzcGIuQmluYXJ5V3JpdGVyKCk7XG4gIHByb3RvLmFzcy52MS5Bc3NWZXJpZmljYXRpb25SZXF1ZXN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsIHdyaXRlcik7XG4gIHJldHVybiB3cml0ZXIuZ2V0UmVzdWx0QnVmZmVyKCk7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgZ2l2ZW4gbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZVxuICogZm9ybWF0KSwgd3JpdGluZyB0byB0aGUgZ2l2ZW4gQmluYXJ5V3JpdGVyLlxuICogQHBhcmFtIHshcHJvdG8uYXNzLnYxLkFzc1ZlcmlmaWNhdGlvblJlcXVlc3R9IG1lc3NhZ2VcbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5V3JpdGVyfSB3cml0ZXJcbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYXNzLnYxLkFzc1ZlcmlmaWNhdGlvblJlcXVlc3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIgPSBmdW5jdGlvbihtZXNzYWdlLCB3cml0ZXIpIHtcbiAgdmFyIGYgPSB1bmRlZmluZWQ7XG4gIGYgPSBtZXNzYWdlLmdldFVzZXJpZCgpO1xuICBpZiAoZiAhPT0gMCkge1xuICAgIHdyaXRlci53cml0ZUludDMyKFxuICAgICAgMSxcbiAgICAgIGZcbiAgICApO1xuICB9XG4gIGYgPSBtZXNzYWdlLmdldFVvaWQoKTtcbiAgaWYgKGYgIT09IDApIHtcbiAgICB3cml0ZXIud3JpdGVJbnQzMihcbiAgICAgIDIsXG4gICAgICBmXG4gICAgKTtcbiAgfVxufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGludDMyIHVzZXJJZCA9IDE7XG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbnByb3RvLmFzcy52MS5Bc3NWZXJpZmljYXRpb25SZXF1ZXN0LnByb3RvdHlwZS5nZXRVc2VyaWQgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAoanNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywgMSwgMCkpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmFzcy52MS5Bc3NWZXJpZmljYXRpb25SZXF1ZXN0fSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYXNzLnYxLkFzc1ZlcmlmaWNhdGlvblJlcXVlc3QucHJvdG90eXBlLnNldFVzZXJpZCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywgMSwgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGludDMyIHVvSWQgPSAyO1xuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5wcm90by5hc3MudjEuQXNzVmVyaWZpY2F0aW9uUmVxdWVzdC5wcm90b3R5cGUuZ2V0VW9pZCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtudW1iZXJ9ICovIChqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLCAyLCAwKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYXNzLnYxLkFzc1ZlcmlmaWNhdGlvblJlcXVlc3R9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5hc3MudjEuQXNzVmVyaWZpY2F0aW9uUmVxdWVzdC5wcm90b3R5cGUuc2V0VW9pZCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywgMiwgdmFsdWUpO1xufTtcblxuXG5nb29nLm9iamVjdC5leHRlbmQoZXhwb3J0cywgcHJvdG8uYXNzLnYxKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///33\n");
  1088. /***/ }),
  1089. /* 34 */
  1090. /*!******************************************************************************************!*\
  1091. !*** D:/Work2/Orienteering/TrackOffical/node_modules/google-protobuf/google-protobuf.js ***!
  1092. \******************************************************************************************/
  1093. /*! no static exports found */
  1094. /***/ (function(module, exports, __webpack_require__) {
  1095. /* WEBPACK VAR INJECTION */(function(global) {var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4);
  1096. /*
  1097. Copyright The Closure Library Authors.
  1098. SPDX-License-Identifier: Apache-2.0
  1099. */
  1100. var $jscomp = $jscomp || {};
  1101. $jscomp.scope = {};
  1102. $jscomp.findInternal = function (a, b, c) {
  1103. a instanceof String && (a = String(a));
  1104. for (var d = a.length, e = 0; e < d; e++) {
  1105. var f = a[e];
  1106. if (b.call(c, f, e, a)) return {
  1107. i: e,
  1108. v: f
  1109. };
  1110. }
  1111. return {
  1112. i: -1,
  1113. v: void 0
  1114. };
  1115. };
  1116. $jscomp.ASSUME_ES5 = !1;
  1117. $jscomp.ASSUME_NO_NATIVE_MAP = !1;
  1118. $jscomp.ASSUME_NO_NATIVE_SET = !1;
  1119. $jscomp.SIMPLE_FROUND_POLYFILL = !1;
  1120. $jscomp.defineProperty = $jscomp.ASSUME_ES5 || "function" == typeof Object.defineProperties ? Object.defineProperty : function (a, b, c) {
  1121. a != Array.prototype && a != Object.prototype && (a[b] = c.value);
  1122. };
  1123. $jscomp.getGlobal = function (a) {
  1124. return "undefined" != typeof window && window === a ? a : "undefined" != typeof global && null != global ? global : a;
  1125. };
  1126. $jscomp.global = $jscomp.getGlobal(this);
  1127. $jscomp.polyfill = function (a, b, c, d) {
  1128. if (b) {
  1129. c = $jscomp.global;
  1130. a = a.split(".");
  1131. for (d = 0; d < a.length - 1; d++) {
  1132. var e = a[d];
  1133. e in c || (c[e] = {});
  1134. c = c[e];
  1135. }
  1136. a = a[a.length - 1];
  1137. d = c[a];
  1138. b = b(d);
  1139. b != d && null != b && $jscomp.defineProperty(c, a, {
  1140. configurable: !0,
  1141. writable: !0,
  1142. value: b
  1143. });
  1144. }
  1145. };
  1146. $jscomp.polyfill("Array.prototype.findIndex", function (a) {
  1147. return a ? a : function (a, c) {
  1148. return $jscomp.findInternal(this, a, c).i;
  1149. };
  1150. }, "es6", "es3");
  1151. $jscomp.checkStringArgs = function (a, b, c) {
  1152. if (null == a) throw new TypeError("The 'this' value for String.prototype." + c + " must not be null or undefined");
  1153. if (b instanceof RegExp) throw new TypeError("First argument to String.prototype." + c + " must not be a regular expression");
  1154. return a + "";
  1155. };
  1156. $jscomp.polyfill("String.prototype.endsWith", function (a) {
  1157. return a ? a : function (a, c) {
  1158. var b = $jscomp.checkStringArgs(this, a, "endsWith");
  1159. a += "";
  1160. void 0 === c && (c = b.length);
  1161. c = Math.max(0, Math.min(c | 0, b.length));
  1162. for (var e = a.length; 0 < e && 0 < c;) {
  1163. if (b[--c] != a[--e]) return !1;
  1164. }
  1165. return 0 >= e;
  1166. };
  1167. }, "es6", "es3");
  1168. $jscomp.polyfill("Array.prototype.find", function (a) {
  1169. return a ? a : function (a, c) {
  1170. return $jscomp.findInternal(this, a, c).v;
  1171. };
  1172. }, "es6", "es3");
  1173. $jscomp.polyfill("String.prototype.startsWith", function (a) {
  1174. return a ? a : function (a, c) {
  1175. var b = $jscomp.checkStringArgs(this, a, "startsWith");
  1176. a += "";
  1177. var e = b.length,
  1178. f = a.length;
  1179. c = Math.max(0, Math.min(c | 0, b.length));
  1180. for (var g = 0; g < f && c < e;) {
  1181. if (b[c++] != a[g++]) return !1;
  1182. }
  1183. return g >= f;
  1184. };
  1185. }, "es6", "es3");
  1186. $jscomp.polyfill("String.prototype.repeat", function (a) {
  1187. return a ? a : function (a) {
  1188. var b = $jscomp.checkStringArgs(this, null, "repeat");
  1189. if (0 > a || 1342177279 < a) throw new RangeError("Invalid count value");
  1190. a |= 0;
  1191. for (var d = ""; a;) {
  1192. if (a & 1 && (d += b), a >>>= 1) b += b;
  1193. }
  1194. return d;
  1195. };
  1196. }, "es6", "es3");
  1197. var COMPILED = !0,
  1198. goog = goog || {};
  1199. goog.global = this || self;
  1200. goog.exportPath_ = function (a, b, c) {
  1201. a = a.split(".");
  1202. c = c || goog.global;
  1203. a[0] in c || "undefined" == typeof c.execScript || c.execScript("var " + a[0]);
  1204. for (var d; a.length && (d = a.shift());) {
  1205. a.length || void 0 === b ? c = c[d] && c[d] !== Object.prototype[d] ? c[d] : c[d] = {} : c[d] = b;
  1206. }
  1207. };
  1208. goog.define = function (a, b) {
  1209. if (!COMPILED) {
  1210. var c = goog.global.CLOSURE_UNCOMPILED_DEFINES,
  1211. d = goog.global.CLOSURE_DEFINES;
  1212. c && void 0 === c.nodeType && Object.prototype.hasOwnProperty.call(c, a) ? b = c[a] : d && void 0 === d.nodeType && Object.prototype.hasOwnProperty.call(d, a) && (b = d[a]);
  1213. }
  1214. return b;
  1215. };
  1216. goog.FEATURESET_YEAR = 2012;
  1217. goog.DEBUG = !0;
  1218. goog.LOCALE = "en";
  1219. goog.TRUSTED_SITE = !0;
  1220. goog.STRICT_MODE_COMPATIBLE = !1;
  1221. goog.DISALLOW_TEST_ONLY_CODE = COMPILED && !goog.DEBUG;
  1222. goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING = !1;
  1223. goog.provide = function (a) {
  1224. if (goog.isInModuleLoader_()) throw Error("goog.provide cannot be used within a module.");
  1225. if (!COMPILED && goog.isProvided_(a)) throw Error('Namespace "' + a + '" already declared.');
  1226. goog.constructNamespace_(a);
  1227. };
  1228. goog.constructNamespace_ = function (a, b) {
  1229. if (!COMPILED) {
  1230. delete goog.implicitNamespaces_[a];
  1231. for (var c = a; (c = c.substring(0, c.lastIndexOf("."))) && !goog.getObjectByName(c);) {
  1232. goog.implicitNamespaces_[c] = !0;
  1233. }
  1234. }
  1235. goog.exportPath_(a, b);
  1236. };
  1237. goog.getScriptNonce = function (a) {
  1238. if (a && a != goog.global) return goog.getScriptNonce_(a.document);
  1239. null === goog.cspNonce_ && (goog.cspNonce_ = goog.getScriptNonce_(goog.global.document));
  1240. return goog.cspNonce_;
  1241. };
  1242. goog.NONCE_PATTERN_ = /^[\w+/_-]+[=]{0,2}$/;
  1243. goog.cspNonce_ = null;
  1244. goog.getScriptNonce_ = function (a) {
  1245. return (a = a.querySelector && a.querySelector("script[nonce]")) && (a = a.nonce || a.getAttribute("nonce")) && goog.NONCE_PATTERN_.test(a) ? a : "";
  1246. };
  1247. goog.VALID_MODULE_RE_ = /^[a-zA-Z_$][a-zA-Z0-9._$]*$/;
  1248. goog.module = function (a) {
  1249. if ("string" !== typeof a || !a || -1 == a.search(goog.VALID_MODULE_RE_)) throw Error("Invalid module identifier");
  1250. if (!goog.isInGoogModuleLoader_()) throw Error("Module " + a + " has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");
  1251. if (goog.moduleLoaderState_.moduleName) throw Error("goog.module may only be called once per module.");
  1252. goog.moduleLoaderState_.moduleName = a;
  1253. if (!COMPILED) {
  1254. if (goog.isProvided_(a)) throw Error('Namespace "' + a + '" already declared.');
  1255. delete goog.implicitNamespaces_[a];
  1256. }
  1257. };
  1258. goog.module.get = function (a) {
  1259. return goog.module.getInternal_(a);
  1260. };
  1261. goog.module.getInternal_ = function (a) {
  1262. if (!COMPILED) {
  1263. if (a in goog.loadedModules_) return goog.loadedModules_[a].exports;
  1264. if (!goog.implicitNamespaces_[a]) return a = goog.getObjectByName(a), null != a ? a : null;
  1265. }
  1266. return null;
  1267. };
  1268. goog.ModuleType = {
  1269. ES6: "es6",
  1270. GOOG: "goog"
  1271. };
  1272. goog.moduleLoaderState_ = null;
  1273. goog.isInModuleLoader_ = function () {
  1274. return goog.isInGoogModuleLoader_() || goog.isInEs6ModuleLoader_();
  1275. };
  1276. goog.isInGoogModuleLoader_ = function () {
  1277. return !!goog.moduleLoaderState_ && goog.moduleLoaderState_.type == goog.ModuleType.GOOG;
  1278. };
  1279. goog.isInEs6ModuleLoader_ = function () {
  1280. if (goog.moduleLoaderState_ && goog.moduleLoaderState_.type == goog.ModuleType.ES6) return !0;
  1281. var a = goog.global.$jscomp;
  1282. return a ? "function" != typeof a.getCurrentModulePath ? !1 : !!a.getCurrentModulePath() : !1;
  1283. };
  1284. goog.module.declareLegacyNamespace = function () {
  1285. if (!COMPILED && !goog.isInGoogModuleLoader_()) throw Error("goog.module.declareLegacyNamespace must be called from within a goog.module");
  1286. if (!COMPILED && !goog.moduleLoaderState_.moduleName) throw Error("goog.module must be called prior to goog.module.declareLegacyNamespace.");
  1287. goog.moduleLoaderState_.declareLegacyNamespace = !0;
  1288. };
  1289. goog.declareModuleId = function (a) {
  1290. if (!COMPILED) {
  1291. if (!goog.isInEs6ModuleLoader_()) throw Error("goog.declareModuleId may only be called from within an ES6 module");
  1292. if (goog.moduleLoaderState_ && goog.moduleLoaderState_.moduleName) throw Error("goog.declareModuleId may only be called once per module.");
  1293. if (a in goog.loadedModules_) throw Error('Module with namespace "' + a + '" already exists.');
  1294. }
  1295. if (goog.moduleLoaderState_) goog.moduleLoaderState_.moduleName = a;else {
  1296. var b = goog.global.$jscomp;
  1297. if (!b || "function" != typeof b.getCurrentModulePath) throw Error('Module with namespace "' + a + '" has been loaded incorrectly.');
  1298. b = b.require(b.getCurrentModulePath());
  1299. goog.loadedModules_[a] = {
  1300. exports: b,
  1301. type: goog.ModuleType.ES6,
  1302. moduleId: a
  1303. };
  1304. }
  1305. };
  1306. goog.setTestOnly = function (a) {
  1307. if (goog.DISALLOW_TEST_ONLY_CODE) throw a = a || "", Error("Importing test-only code into non-debug environment" + (a ? ": " + a : "."));
  1308. };
  1309. goog.forwardDeclare = function (a) {};
  1310. COMPILED || (goog.isProvided_ = function (a) {
  1311. return a in goog.loadedModules_ || !goog.implicitNamespaces_[a] && null != goog.getObjectByName(a);
  1312. }, goog.implicitNamespaces_ = {
  1313. "goog.module": !0
  1314. });
  1315. goog.getObjectByName = function (a, b) {
  1316. a = a.split(".");
  1317. b = b || goog.global;
  1318. for (var c = 0; c < a.length; c++) {
  1319. if (b = b[a[c]], null == b) return null;
  1320. }
  1321. return b;
  1322. };
  1323. goog.globalize = function (a, b) {
  1324. b = b || goog.global;
  1325. for (var c in a) {
  1326. b[c] = a[c];
  1327. }
  1328. };
  1329. goog.addDependency = function (a, b, c, d) {
  1330. !COMPILED && goog.DEPENDENCIES_ENABLED && goog.debugLoader_.addDependency(a, b, c, d);
  1331. };
  1332. goog.ENABLE_DEBUG_LOADER = !0;
  1333. goog.logToConsole_ = function (a) {
  1334. goog.global.console && goog.global.console.error(a);
  1335. };
  1336. goog.require = function (a) {
  1337. if (!COMPILED) {
  1338. goog.ENABLE_DEBUG_LOADER && goog.debugLoader_.requested(a);
  1339. if (goog.isProvided_(a)) {
  1340. if (goog.isInModuleLoader_()) return goog.module.getInternal_(a);
  1341. } else if (goog.ENABLE_DEBUG_LOADER) {
  1342. var b = goog.moduleLoaderState_;
  1343. goog.moduleLoaderState_ = null;
  1344. try {
  1345. goog.debugLoader_.load_(a);
  1346. } finally {
  1347. goog.moduleLoaderState_ = b;
  1348. }
  1349. }
  1350. return null;
  1351. }
  1352. };
  1353. goog.requireType = function (a) {
  1354. return {};
  1355. };
  1356. goog.basePath = "";
  1357. goog.nullFunction = function () {};
  1358. goog.abstractMethod = function () {
  1359. throw Error("unimplemented abstract method");
  1360. };
  1361. goog.addSingletonGetter = function (a) {
  1362. a.instance_ = void 0;
  1363. a.getInstance = function () {
  1364. if (a.instance_) return a.instance_;
  1365. goog.DEBUG && (goog.instantiatedSingletons_[goog.instantiatedSingletons_.length] = a);
  1366. return a.instance_ = new a();
  1367. };
  1368. };
  1369. goog.instantiatedSingletons_ = [];
  1370. goog.LOAD_MODULE_USING_EVAL = !0;
  1371. goog.SEAL_MODULE_EXPORTS = goog.DEBUG;
  1372. goog.loadedModules_ = {};
  1373. goog.DEPENDENCIES_ENABLED = !COMPILED && goog.ENABLE_DEBUG_LOADER;
  1374. goog.TRANSPILE = "detect";
  1375. goog.ASSUME_ES_MODULES_TRANSPILED = !1;
  1376. goog.TRANSPILE_TO_LANGUAGE = "";
  1377. goog.TRANSPILER = "transpile.js";
  1378. goog.hasBadLetScoping = null;
  1379. goog.useSafari10Workaround = function () {
  1380. if (null == goog.hasBadLetScoping) {
  1381. try {
  1382. var a = !eval('"use strict";let x = 1; function f() { return typeof x; };f() == "number";');
  1383. } catch (b) {
  1384. a = !1;
  1385. }
  1386. goog.hasBadLetScoping = a;
  1387. }
  1388. return goog.hasBadLetScoping;
  1389. };
  1390. goog.workaroundSafari10EvalBug = function (a) {
  1391. return "(function(){" + a + "\n;})();\n";
  1392. };
  1393. goog.loadModule = function (a) {
  1394. var b = goog.moduleLoaderState_;
  1395. try {
  1396. goog.moduleLoaderState_ = {
  1397. moduleName: "",
  1398. declareLegacyNamespace: !1,
  1399. type: goog.ModuleType.GOOG
  1400. };
  1401. if (goog.isFunction(a)) var c = a.call(void 0, {});else if ("string" === typeof a) goog.useSafari10Workaround() && (a = goog.workaroundSafari10EvalBug(a)), c = goog.loadModuleFromSource_.call(void 0, a);else throw Error("Invalid module definition");
  1402. var d = goog.moduleLoaderState_.moduleName;
  1403. if ("string" === typeof d && d) goog.moduleLoaderState_.declareLegacyNamespace ? goog.constructNamespace_(d, c) : goog.SEAL_MODULE_EXPORTS && Object.seal && "object" == _typeof(c) && null != c && Object.seal(c), goog.loadedModules_[d] = {
  1404. exports: c,
  1405. type: goog.ModuleType.GOOG,
  1406. moduleId: goog.moduleLoaderState_.moduleName
  1407. };else throw Error('Invalid module name "' + d + '"');
  1408. } finally {
  1409. goog.moduleLoaderState_ = b;
  1410. }
  1411. };
  1412. goog.loadModuleFromSource_ = function (a) {
  1413. eval(a);
  1414. return {};
  1415. };
  1416. goog.normalizePath_ = function (a) {
  1417. a = a.split("/");
  1418. for (var b = 0; b < a.length;) {
  1419. "." == a[b] ? a.splice(b, 1) : b && ".." == a[b] && a[b - 1] && ".." != a[b - 1] ? a.splice(--b, 2) : b++;
  1420. }
  1421. return a.join("/");
  1422. };
  1423. goog.loadFileSync_ = function (a) {
  1424. if (goog.global.CLOSURE_LOAD_FILE_SYNC) return goog.global.CLOSURE_LOAD_FILE_SYNC(a);
  1425. try {
  1426. var b = new goog.global.XMLHttpRequest();
  1427. b.open("get", a, !1);
  1428. b.send();
  1429. return 0 == b.status || 200 == b.status ? b.responseText : null;
  1430. } catch (c) {
  1431. return null;
  1432. }
  1433. };
  1434. goog.transpile_ = function (a, b, c) {
  1435. var d = goog.global.$jscomp;
  1436. d || (goog.global.$jscomp = d = {});
  1437. var e = d.transpile;
  1438. if (!e) {
  1439. var f = goog.basePath + goog.TRANSPILER,
  1440. g = goog.loadFileSync_(f);
  1441. if (g) {
  1442. (function () {
  1443. (0, eval)(g + "\n//# sourceURL=" + f);
  1444. }).call(goog.global);
  1445. if (goog.global.$gwtExport && goog.global.$gwtExport.$jscomp && !goog.global.$gwtExport.$jscomp.transpile) throw Error('The transpiler did not properly export the "transpile" method. $gwtExport: ' + JSON.stringify(goog.global.$gwtExport));
  1446. goog.global.$jscomp.transpile = goog.global.$gwtExport.$jscomp.transpile;
  1447. d = goog.global.$jscomp;
  1448. e = d.transpile;
  1449. }
  1450. }
  1451. e || (e = d.transpile = function (a, b) {
  1452. goog.logToConsole_(b + " requires transpilation but no transpiler was found.");
  1453. return a;
  1454. });
  1455. return e(a, b, c);
  1456. };
  1457. goog.typeOf = function (a) {
  1458. var b = _typeof(a);
  1459. if ("object" == b) {
  1460. if (a) {
  1461. if (a instanceof Array) return "array";
  1462. if (a instanceof Object) return b;
  1463. var c = Object.prototype.toString.call(a);
  1464. if ("[object Window]" == c) return "object";
  1465. if ("[object Array]" == c || "number" == typeof a.length && "undefined" != typeof a.splice && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("splice")) return "array";
  1466. if ("[object Function]" == c || "undefined" != typeof a.call && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("call")) return "function";
  1467. } else return "null";
  1468. } else if ("function" == b && "undefined" == typeof a.call) return "object";
  1469. return b;
  1470. };
  1471. goog.isArray = function (a) {
  1472. return "array" == goog.typeOf(a);
  1473. };
  1474. goog.isArrayLike = function (a) {
  1475. var b = goog.typeOf(a);
  1476. return "array" == b || "object" == b && "number" == typeof a.length;
  1477. };
  1478. goog.isDateLike = function (a) {
  1479. return goog.isObject(a) && "function" == typeof a.getFullYear;
  1480. };
  1481. goog.isFunction = function (a) {
  1482. return "function" == goog.typeOf(a);
  1483. };
  1484. goog.isObject = function (a) {
  1485. var b = _typeof(a);
  1486. return "object" == b && null != a || "function" == b;
  1487. };
  1488. goog.getUid = function (a) {
  1489. return Object.prototype.hasOwnProperty.call(a, goog.UID_PROPERTY_) && a[goog.UID_PROPERTY_] || (a[goog.UID_PROPERTY_] = ++goog.uidCounter_);
  1490. };
  1491. goog.hasUid = function (a) {
  1492. return !!a[goog.UID_PROPERTY_];
  1493. };
  1494. goog.removeUid = function (a) {
  1495. null !== a && "removeAttribute" in a && a.removeAttribute(goog.UID_PROPERTY_);
  1496. try {
  1497. delete a[goog.UID_PROPERTY_];
  1498. } catch (b) {}
  1499. };
  1500. goog.UID_PROPERTY_ = "closure_uid_" + (1E9 * Math.random() >>> 0);
  1501. goog.uidCounter_ = 0;
  1502. goog.getHashCode = goog.getUid;
  1503. goog.removeHashCode = goog.removeUid;
  1504. goog.cloneObject = function (a) {
  1505. var b = goog.typeOf(a);
  1506. if ("object" == b || "array" == b) {
  1507. if ("function" === typeof a.clone) return a.clone();
  1508. b = "array" == b ? [] : {};
  1509. for (var c in a) {
  1510. b[c] = goog.cloneObject(a[c]);
  1511. }
  1512. return b;
  1513. }
  1514. return a;
  1515. };
  1516. goog.bindNative_ = function (a, b, c) {
  1517. return a.call.apply(a.bind, arguments);
  1518. };
  1519. goog.bindJs_ = function (a, b, c) {
  1520. if (!a) throw Error();
  1521. if (2 < arguments.length) {
  1522. var d = Array.prototype.slice.call(arguments, 2);
  1523. return function () {
  1524. var c = Array.prototype.slice.call(arguments);
  1525. Array.prototype.unshift.apply(c, d);
  1526. return a.apply(b, c);
  1527. };
  1528. }
  1529. return function () {
  1530. return a.apply(b, arguments);
  1531. };
  1532. };
  1533. goog.bind = function (a, b, c) {
  1534. Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? goog.bind = goog.bindNative_ : goog.bind = goog.bindJs_;
  1535. return goog.bind.apply(null, arguments);
  1536. };
  1537. goog.partial = function (a, b) {
  1538. var c = Array.prototype.slice.call(arguments, 1);
  1539. return function () {
  1540. var b = c.slice();
  1541. b.push.apply(b, arguments);
  1542. return a.apply(this, b);
  1543. };
  1544. };
  1545. goog.mixin = function (a, b) {
  1546. for (var c in b) {
  1547. a[c] = b[c];
  1548. }
  1549. };
  1550. goog.now = goog.TRUSTED_SITE && Date.now || function () {
  1551. return +new Date();
  1552. };
  1553. goog.globalEval = function (a) {
  1554. if (goog.global.execScript) goog.global.execScript(a, "JavaScript");else if (goog.global.eval) {
  1555. if (null == goog.evalWorksForGlobals_) {
  1556. try {
  1557. goog.global.eval("var _evalTest_ = 1;");
  1558. } catch (d) {}
  1559. if ("undefined" != typeof goog.global._evalTest_) {
  1560. try {
  1561. delete goog.global._evalTest_;
  1562. } catch (d) {}
  1563. goog.evalWorksForGlobals_ = !0;
  1564. } else goog.evalWorksForGlobals_ = !1;
  1565. }
  1566. if (goog.evalWorksForGlobals_) goog.global.eval(a);else {
  1567. var b = goog.global.document,
  1568. c = b.createElement("script");
  1569. c.type = "text/javascript";
  1570. c.defer = !1;
  1571. c.appendChild(b.createTextNode(a));
  1572. b.head.appendChild(c);
  1573. b.head.removeChild(c);
  1574. }
  1575. } else throw Error("goog.globalEval not available");
  1576. };
  1577. goog.evalWorksForGlobals_ = null;
  1578. goog.getCssName = function (a, b) {
  1579. if ("." == String(a).charAt(0)) throw Error('className passed in goog.getCssName must not start with ".". You passed: ' + a);
  1580. var c = function c(a) {
  1581. return goog.cssNameMapping_[a] || a;
  1582. },
  1583. d = function d(a) {
  1584. a = a.split("-");
  1585. for (var b = [], d = 0; d < a.length; d++) {
  1586. b.push(c(a[d]));
  1587. }
  1588. return b.join("-");
  1589. };
  1590. d = goog.cssNameMapping_ ? "BY_WHOLE" == goog.cssNameMappingStyle_ ? c : d : function (a) {
  1591. return a;
  1592. };
  1593. a = b ? a + "-" + d(b) : d(a);
  1594. return goog.global.CLOSURE_CSS_NAME_MAP_FN ? goog.global.CLOSURE_CSS_NAME_MAP_FN(a) : a;
  1595. };
  1596. goog.setCssNameMapping = function (a, b) {
  1597. goog.cssNameMapping_ = a;
  1598. goog.cssNameMappingStyle_ = b;
  1599. };
  1600. !COMPILED && goog.global.CLOSURE_CSS_NAME_MAPPING && (goog.cssNameMapping_ = goog.global.CLOSURE_CSS_NAME_MAPPING);
  1601. goog.getMsg = function (a, b, c) {
  1602. c && c.html && (a = a.replace(/</g, "&lt;"));
  1603. b && (a = a.replace(/\{\$([^}]+)}/g, function (a, c) {
  1604. return null != b && c in b ? b[c] : a;
  1605. }));
  1606. return a;
  1607. };
  1608. goog.getMsgWithFallback = function (a, b) {
  1609. return a;
  1610. };
  1611. goog.exportSymbol = function (a, b, c) {
  1612. goog.exportPath_(a, b, c);
  1613. };
  1614. goog.exportProperty = function (a, b, c) {
  1615. a[b] = c;
  1616. };
  1617. goog.inherits = function (a, b) {
  1618. function c() {}
  1619. c.prototype = b.prototype;
  1620. a.superClass_ = b.prototype;
  1621. a.prototype = new c();
  1622. a.prototype.constructor = a;
  1623. a.base = function (a, c, f) {
  1624. for (var d = Array(arguments.length - 2), e = 2; e < arguments.length; e++) {
  1625. d[e - 2] = arguments[e];
  1626. }
  1627. return b.prototype[c].apply(a, d);
  1628. };
  1629. };
  1630. goog.scope = function (a) {
  1631. if (goog.isInModuleLoader_()) throw Error("goog.scope is not supported within a module.");
  1632. a.call(goog.global);
  1633. };
  1634. COMPILED || (goog.global.COMPILED = COMPILED);
  1635. goog.defineClass = function (a, b) {
  1636. var c = b.constructor,
  1637. d = b.statics;
  1638. c && c != Object.prototype.constructor || (c = function c() {
  1639. throw Error("cannot instantiate an interface (no constructor defined).");
  1640. });
  1641. c = goog.defineClass.createSealingConstructor_(c, a);
  1642. a && goog.inherits(c, a);
  1643. delete b.constructor;
  1644. delete b.statics;
  1645. goog.defineClass.applyProperties_(c.prototype, b);
  1646. null != d && (d instanceof Function ? d(c) : goog.defineClass.applyProperties_(c, d));
  1647. return c;
  1648. };
  1649. goog.defineClass.SEAL_CLASS_INSTANCES = goog.DEBUG;
  1650. goog.defineClass.createSealingConstructor_ = function (a, b) {
  1651. if (!goog.defineClass.SEAL_CLASS_INSTANCES) return a;
  1652. var c = !goog.defineClass.isUnsealable_(b),
  1653. d = function d() {
  1654. var b = a.apply(this, arguments) || this;
  1655. b[goog.UID_PROPERTY_] = b[goog.UID_PROPERTY_];
  1656. this.constructor === d && c && Object.seal instanceof Function && Object.seal(b);
  1657. return b;
  1658. };
  1659. return d;
  1660. };
  1661. goog.defineClass.isUnsealable_ = function (a) {
  1662. return a && a.prototype && a.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_];
  1663. };
  1664. goog.defineClass.OBJECT_PROTOTYPE_FIELDS_ = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
  1665. goog.defineClass.applyProperties_ = function (a, b) {
  1666. for (var c in b) {
  1667. Object.prototype.hasOwnProperty.call(b, c) && (a[c] = b[c]);
  1668. }
  1669. for (var d = 0; d < goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length; d++) {
  1670. c = goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[d], Object.prototype.hasOwnProperty.call(b, c) && (a[c] = b[c]);
  1671. }
  1672. };
  1673. goog.tagUnsealableClass = function (a) {
  1674. !COMPILED && goog.defineClass.SEAL_CLASS_INSTANCES && (a.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_] = !0);
  1675. };
  1676. goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_ = "goog_defineClass_legacy_unsealable";
  1677. !COMPILED && goog.DEPENDENCIES_ENABLED && (goog.inHtmlDocument_ = function () {
  1678. var a = goog.global.document;
  1679. return null != a && "write" in a;
  1680. }, goog.isDocumentLoading_ = function () {
  1681. var a = goog.global.document;
  1682. return a.attachEvent ? "complete" != a.readyState : "loading" == a.readyState;
  1683. }, goog.findBasePath_ = function () {
  1684. if (void 0 != goog.global.CLOSURE_BASE_PATH && "string" === typeof goog.global.CLOSURE_BASE_PATH) goog.basePath = goog.global.CLOSURE_BASE_PATH;else if (goog.inHtmlDocument_()) {
  1685. var a = goog.global.document,
  1686. b = a.currentScript;
  1687. a = b ? [b] : a.getElementsByTagName("SCRIPT");
  1688. for (b = a.length - 1; 0 <= b; --b) {
  1689. var c = a[b].src,
  1690. d = c.lastIndexOf("?");
  1691. d = -1 == d ? c.length : d;
  1692. if ("base.js" == c.substr(d - 7, 7)) {
  1693. goog.basePath = c.substr(0, d - 7);
  1694. break;
  1695. }
  1696. }
  1697. }
  1698. }, goog.findBasePath_(), goog.Transpiler = function () {
  1699. this.requiresTranspilation_ = null;
  1700. this.transpilationTarget_ = goog.TRANSPILE_TO_LANGUAGE;
  1701. }, goog.Transpiler.prototype.createRequiresTranspilation_ = function () {
  1702. function a(a, b) {
  1703. e ? d[a] = !0 : b() ? (c = a, d[a] = !1) : e = d[a] = !0;
  1704. }
  1705. function b(a) {
  1706. try {
  1707. return !!eval(a);
  1708. } catch (h) {
  1709. return !1;
  1710. }
  1711. }
  1712. var c = "es3",
  1713. d = {
  1714. es3: !1
  1715. },
  1716. e = !1,
  1717. f = goog.global.navigator && goog.global.navigator.userAgent ? goog.global.navigator.userAgent : "";
  1718. a("es5", function () {
  1719. return b("[1,].length==1");
  1720. });
  1721. a("es6", function () {
  1722. return f.match(/Edge\/(\d+)(\.\d)*/i) ? !1 : b('(()=>{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()');
  1723. });
  1724. a("es7", function () {
  1725. return b("2 ** 2 == 4");
  1726. });
  1727. a("es8", function () {
  1728. return b("async () => 1, true");
  1729. });
  1730. a("es9", function () {
  1731. return b("({...rest} = {}), true");
  1732. });
  1733. a("es_next", function () {
  1734. return !1;
  1735. });
  1736. return {
  1737. target: c,
  1738. map: d
  1739. };
  1740. }, goog.Transpiler.prototype.needsTranspile = function (a, b) {
  1741. if ("always" == goog.TRANSPILE) return !0;
  1742. if ("never" == goog.TRANSPILE) return !1;
  1743. if (!this.requiresTranspilation_) {
  1744. var c = this.createRequiresTranspilation_();
  1745. this.requiresTranspilation_ = c.map;
  1746. this.transpilationTarget_ = this.transpilationTarget_ || c.target;
  1747. }
  1748. if (a in this.requiresTranspilation_) return this.requiresTranspilation_[a] ? !0 : !goog.inHtmlDocument_() || "es6" != b || "noModule" in goog.global.document.createElement("script") ? !1 : !0;
  1749. throw Error("Unknown language mode: " + a);
  1750. }, goog.Transpiler.prototype.transpile = function (a, b) {
  1751. return goog.transpile_(a, b, this.transpilationTarget_);
  1752. }, goog.transpiler_ = new goog.Transpiler(), goog.protectScriptTag_ = function (a) {
  1753. return a.replace(/<\/(SCRIPT)/ig, "\\x3c/$1");
  1754. }, goog.DebugLoader_ = function () {
  1755. this.dependencies_ = {};
  1756. this.idToPath_ = {};
  1757. this.written_ = {};
  1758. this.loadingDeps_ = [];
  1759. this.depsToLoad_ = [];
  1760. this.paused_ = !1;
  1761. this.factory_ = new goog.DependencyFactory(goog.transpiler_);
  1762. this.deferredCallbacks_ = {};
  1763. this.deferredQueue_ = [];
  1764. }, goog.DebugLoader_.prototype.bootstrap = function (a, b) {
  1765. function c() {
  1766. d && (goog.global.setTimeout(d, 0), d = null);
  1767. }
  1768. var d = b;
  1769. if (a.length) {
  1770. b = [];
  1771. for (var e = 0; e < a.length; e++) {
  1772. var f = this.getPathFromDeps_(a[e]);
  1773. if (!f) throw Error("Unregonized namespace: " + a[e]);
  1774. b.push(this.dependencies_[f]);
  1775. }
  1776. f = goog.require;
  1777. var g = 0;
  1778. for (e = 0; e < a.length; e++) {
  1779. f(a[e]), b[e].onLoad(function () {
  1780. ++g == a.length && c();
  1781. });
  1782. }
  1783. } else c();
  1784. }, goog.DebugLoader_.prototype.loadClosureDeps = function () {
  1785. this.depsToLoad_.push(this.factory_.createDependency(goog.normalizePath_(goog.basePath + "deps.js"), "deps.js", [], [], {}, !1));
  1786. this.loadDeps_();
  1787. }, goog.DebugLoader_.prototype.requested = function (a, b) {
  1788. (a = this.getPathFromDeps_(a)) && (b || this.areDepsLoaded_(this.dependencies_[a].requires)) && (b = this.deferredCallbacks_[a]) && (delete this.deferredCallbacks_[a], b());
  1789. }, goog.DebugLoader_.prototype.setDependencyFactory = function (a) {
  1790. this.factory_ = a;
  1791. }, goog.DebugLoader_.prototype.load_ = function (a) {
  1792. if (this.getPathFromDeps_(a)) {
  1793. var b = this,
  1794. c = [],
  1795. d = function d(a) {
  1796. var e = b.getPathFromDeps_(a);
  1797. if (!e) throw Error("Bad dependency path or symbol: " + a);
  1798. if (!b.written_[e]) {
  1799. b.written_[e] = !0;
  1800. a = b.dependencies_[e];
  1801. for (e = 0; e < a.requires.length; e++) {
  1802. goog.isProvided_(a.requires[e]) || d(a.requires[e]);
  1803. }
  1804. c.push(a);
  1805. }
  1806. };
  1807. d(a);
  1808. a = !!this.depsToLoad_.length;
  1809. this.depsToLoad_ = this.depsToLoad_.concat(c);
  1810. this.paused_ || a || this.loadDeps_();
  1811. } else throw a = "goog.require could not find: " + a, goog.logToConsole_(a), Error(a);
  1812. }, goog.DebugLoader_.prototype.loadDeps_ = function () {
  1813. for (var a = this, b = this.paused_; this.depsToLoad_.length && !b;) {
  1814. (function () {
  1815. var c = !1,
  1816. d = a.depsToLoad_.shift(),
  1817. e = !1;
  1818. a.loading_(d);
  1819. var f = {
  1820. pause: function pause() {
  1821. if (c) throw Error("Cannot call pause after the call to load.");
  1822. b = !0;
  1823. },
  1824. resume: function resume() {
  1825. c ? a.resume_() : b = !1;
  1826. },
  1827. loaded: function loaded() {
  1828. if (e) throw Error("Double call to loaded.");
  1829. e = !0;
  1830. a.loaded_(d);
  1831. },
  1832. pending: function pending() {
  1833. for (var b = [], c = 0; c < a.loadingDeps_.length; c++) {
  1834. b.push(a.loadingDeps_[c]);
  1835. }
  1836. return b;
  1837. },
  1838. setModuleState: function setModuleState(a) {
  1839. goog.moduleLoaderState_ = {
  1840. type: a,
  1841. moduleName: "",
  1842. declareLegacyNamespace: !1
  1843. };
  1844. },
  1845. registerEs6ModuleExports: function registerEs6ModuleExports(a, b, c) {
  1846. c && (goog.loadedModules_[c] = {
  1847. exports: b,
  1848. type: goog.ModuleType.ES6,
  1849. moduleId: c || ""
  1850. });
  1851. },
  1852. registerGoogModuleExports: function registerGoogModuleExports(a, b) {
  1853. goog.loadedModules_[a] = {
  1854. exports: b,
  1855. type: goog.ModuleType.GOOG,
  1856. moduleId: a
  1857. };
  1858. },
  1859. clearModuleState: function clearModuleState() {
  1860. goog.moduleLoaderState_ = null;
  1861. },
  1862. defer: function defer(b) {
  1863. if (c) throw Error("Cannot register with defer after the call to load.");
  1864. a.defer_(d, b);
  1865. },
  1866. areDepsLoaded: function areDepsLoaded() {
  1867. return a.areDepsLoaded_(d.requires);
  1868. }
  1869. };
  1870. try {
  1871. d.load(f);
  1872. } finally {
  1873. c = !0;
  1874. }
  1875. })();
  1876. }
  1877. b && this.pause_();
  1878. }, goog.DebugLoader_.prototype.pause_ = function () {
  1879. this.paused_ = !0;
  1880. }, goog.DebugLoader_.prototype.resume_ = function () {
  1881. this.paused_ && (this.paused_ = !1, this.loadDeps_());
  1882. }, goog.DebugLoader_.prototype.loading_ = function (a) {
  1883. this.loadingDeps_.push(a);
  1884. }, goog.DebugLoader_.prototype.loaded_ = function (a) {
  1885. for (var b = 0; b < this.loadingDeps_.length; b++) {
  1886. if (this.loadingDeps_[b] == a) {
  1887. this.loadingDeps_.splice(b, 1);
  1888. break;
  1889. }
  1890. }
  1891. for (b = 0; b < this.deferredQueue_.length; b++) {
  1892. if (this.deferredQueue_[b] == a.path) {
  1893. this.deferredQueue_.splice(b, 1);
  1894. break;
  1895. }
  1896. }
  1897. if (this.loadingDeps_.length == this.deferredQueue_.length && !this.depsToLoad_.length) for (; this.deferredQueue_.length;) {
  1898. this.requested(this.deferredQueue_.shift(), !0);
  1899. }
  1900. a.loaded();
  1901. }, goog.DebugLoader_.prototype.areDepsLoaded_ = function (a) {
  1902. for (var b = 0; b < a.length; b++) {
  1903. var c = this.getPathFromDeps_(a[b]);
  1904. if (!c || !(c in this.deferredCallbacks_ || goog.isProvided_(a[b]))) return !1;
  1905. }
  1906. return !0;
  1907. }, goog.DebugLoader_.prototype.getPathFromDeps_ = function (a) {
  1908. return a in this.idToPath_ ? this.idToPath_[a] : a in this.dependencies_ ? a : null;
  1909. }, goog.DebugLoader_.prototype.defer_ = function (a, b) {
  1910. this.deferredCallbacks_[a.path] = b;
  1911. this.deferredQueue_.push(a.path);
  1912. }, goog.LoadController = function () {}, goog.LoadController.prototype.pause = function () {}, goog.LoadController.prototype.resume = function () {}, goog.LoadController.prototype.loaded = function () {}, goog.LoadController.prototype.pending = function () {}, goog.LoadController.prototype.registerEs6ModuleExports = function (a, b, c) {}, goog.LoadController.prototype.setModuleState = function (a) {}, goog.LoadController.prototype.clearModuleState = function () {}, goog.LoadController.prototype.defer = function (a) {}, goog.LoadController.prototype.areDepsLoaded = function () {}, goog.Dependency = function (a, b, c, d, e) {
  1913. this.path = a;
  1914. this.relativePath = b;
  1915. this.provides = c;
  1916. this.requires = d;
  1917. this.loadFlags = e;
  1918. this.loaded_ = !1;
  1919. this.loadCallbacks_ = [];
  1920. }, goog.Dependency.prototype.getPathName = function () {
  1921. var a = this.path,
  1922. b = a.indexOf("://");
  1923. 0 <= b && (a = a.substring(b + 3), b = a.indexOf("/"), 0 <= b && (a = a.substring(b + 1)));
  1924. return a;
  1925. }, goog.Dependency.prototype.onLoad = function (a) {
  1926. this.loaded_ ? a() : this.loadCallbacks_.push(a);
  1927. }, goog.Dependency.prototype.loaded = function () {
  1928. this.loaded_ = !0;
  1929. var a = this.loadCallbacks_;
  1930. this.loadCallbacks_ = [];
  1931. for (var b = 0; b < a.length; b++) {
  1932. a[b]();
  1933. }
  1934. }, goog.Dependency.defer_ = !1, goog.Dependency.callbackMap_ = {}, goog.Dependency.registerCallback_ = function (a) {
  1935. var b = Math.random().toString(32);
  1936. goog.Dependency.callbackMap_[b] = a;
  1937. return b;
  1938. }, goog.Dependency.unregisterCallback_ = function (a) {
  1939. delete goog.Dependency.callbackMap_[a];
  1940. }, goog.Dependency.callback_ = function (a, b) {
  1941. if (a in goog.Dependency.callbackMap_) {
  1942. for (var c = goog.Dependency.callbackMap_[a], d = [], e = 1; e < arguments.length; e++) {
  1943. d.push(arguments[e]);
  1944. }
  1945. c.apply(void 0, d);
  1946. } else throw Error("Callback key " + a + " does not exist (was base.js loaded more than once?).");
  1947. }, goog.Dependency.prototype.load = function (a) {
  1948. if (goog.global.CLOSURE_IMPORT_SCRIPT) goog.global.CLOSURE_IMPORT_SCRIPT(this.path) ? a.loaded() : a.pause();else if (goog.inHtmlDocument_()) {
  1949. var b = goog.global.document;
  1950. if ("complete" == b.readyState && !goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING) {
  1951. if (/\bdeps.js$/.test(this.path)) {
  1952. a.loaded();
  1953. return;
  1954. }
  1955. throw Error('Cannot write "' + this.path + '" after document load');
  1956. }
  1957. if (!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING && goog.isDocumentLoading_()) {
  1958. var c = goog.Dependency.registerCallback_(function (b) {
  1959. goog.DebugLoader_.IS_OLD_IE_ && "complete" != b.readyState || (goog.Dependency.unregisterCallback_(c), a.loaded());
  1960. }),
  1961. d = !goog.DebugLoader_.IS_OLD_IE_ && goog.getScriptNonce() ? ' nonce="' + goog.getScriptNonce() + '"' : "";
  1962. d = '<script src="' + this.path + '" ' + (goog.DebugLoader_.IS_OLD_IE_ ? "onreadystatechange" : "onload") + "=\"goog.Dependency.callback_('" + c + '\', this)" type="text/javascript" ' + (goog.Dependency.defer_ ? "defer" : "") + d + ">\x3c/script>";
  1963. b.write(goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createHTML(d) : d);
  1964. } else {
  1965. var e = b.createElement("script");
  1966. e.defer = goog.Dependency.defer_;
  1967. e.async = !1;
  1968. e.type = "text/javascript";
  1969. (d = goog.getScriptNonce()) && e.setAttribute("nonce", d);
  1970. goog.DebugLoader_.IS_OLD_IE_ ? (a.pause(), e.onreadystatechange = function () {
  1971. if ("loaded" == e.readyState || "complete" == e.readyState) a.loaded(), a.resume();
  1972. }) : e.onload = function () {
  1973. e.onload = null;
  1974. a.loaded();
  1975. };
  1976. e.src = goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createScriptURL(this.path) : this.path;
  1977. b.head.appendChild(e);
  1978. }
  1979. } else goog.logToConsole_("Cannot use default debug loader outside of HTML documents."), "deps.js" == this.relativePath ? (goog.logToConsole_("Consider setting CLOSURE_IMPORT_SCRIPT before loading base.js, or setting CLOSURE_NO_DEPS to true."), a.loaded()) : a.pause();
  1980. }, goog.Es6ModuleDependency = function (a, b, c, d, e) {
  1981. goog.Dependency.call(this, a, b, c, d, e);
  1982. }, goog.inherits(goog.Es6ModuleDependency, goog.Dependency), goog.Es6ModuleDependency.prototype.load = function (a) {
  1983. function b(a, b) {
  1984. a = b ? '<script type="module" crossorigin>' + b + "\x3c/script>" : '<script type="module" crossorigin src="' + a + '">\x3c/script>';
  1985. d.write(goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createHTML(a) : a);
  1986. }
  1987. function c(a, b) {
  1988. var c = d.createElement("script");
  1989. c.defer = !0;
  1990. c.async = !1;
  1991. c.type = "module";
  1992. c.setAttribute("crossorigin", !0);
  1993. var e = goog.getScriptNonce();
  1994. e && c.setAttribute("nonce", e);
  1995. b ? c.textContent = goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createScript(b) : b : c.src = goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createScriptURL(a) : a;
  1996. d.head.appendChild(c);
  1997. }
  1998. if (goog.global.CLOSURE_IMPORT_SCRIPT) goog.global.CLOSURE_IMPORT_SCRIPT(this.path) ? a.loaded() : a.pause();else if (goog.inHtmlDocument_()) {
  1999. var d = goog.global.document,
  2000. e = this;
  2001. if (goog.isDocumentLoading_()) {
  2002. var f = b;
  2003. goog.Dependency.defer_ = !0;
  2004. } else f = c;
  2005. var g = goog.Dependency.registerCallback_(function () {
  2006. goog.Dependency.unregisterCallback_(g);
  2007. a.setModuleState(goog.ModuleType.ES6);
  2008. });
  2009. f(void 0, 'goog.Dependency.callback_("' + g + '")');
  2010. f(this.path, void 0);
  2011. var h = goog.Dependency.registerCallback_(function (b) {
  2012. goog.Dependency.unregisterCallback_(h);
  2013. a.registerEs6ModuleExports(e.path, b, goog.moduleLoaderState_.moduleName);
  2014. });
  2015. f(void 0, 'import * as m from "' + this.path + '"; goog.Dependency.callback_("' + h + '", m)');
  2016. var k = goog.Dependency.registerCallback_(function () {
  2017. goog.Dependency.unregisterCallback_(k);
  2018. a.clearModuleState();
  2019. a.loaded();
  2020. });
  2021. f(void 0, 'goog.Dependency.callback_("' + k + '")');
  2022. } else goog.logToConsole_("Cannot use default debug loader outside of HTML documents."), a.pause();
  2023. }, goog.TransformedDependency = function (a, b, c, d, e) {
  2024. goog.Dependency.call(this, a, b, c, d, e);
  2025. this.contents_ = null;
  2026. this.lazyFetch_ = !goog.inHtmlDocument_() || !("noModule" in goog.global.document.createElement("script"));
  2027. }, goog.inherits(goog.TransformedDependency, goog.Dependency), goog.TransformedDependency.prototype.load = function (a) {
  2028. function b() {
  2029. e.contents_ = goog.loadFileSync_(e.path);
  2030. e.contents_ && (e.contents_ = e.transform(e.contents_), e.contents_ && (e.contents_ += "\n//# sourceURL=" + e.path));
  2031. }
  2032. function c() {
  2033. e.lazyFetch_ && b();
  2034. if (e.contents_) {
  2035. f && a.setModuleState(goog.ModuleType.ES6);
  2036. try {
  2037. var c = e.contents_;
  2038. e.contents_ = null;
  2039. goog.globalEval(c);
  2040. if (f) var d = goog.moduleLoaderState_.moduleName;
  2041. } finally {
  2042. f && a.clearModuleState();
  2043. }
  2044. f && goog.global.$jscomp.require.ensure([e.getPathName()], function () {
  2045. a.registerEs6ModuleExports(e.path, goog.global.$jscomp.require(e.getPathName()), d);
  2046. });
  2047. a.loaded();
  2048. }
  2049. }
  2050. function d() {
  2051. var a = goog.global.document,
  2052. b = goog.Dependency.registerCallback_(function () {
  2053. goog.Dependency.unregisterCallback_(b);
  2054. c();
  2055. }),
  2056. d = '<script type="text/javascript">' + goog.protectScriptTag_('goog.Dependency.callback_("' + b + '");') + "\x3c/script>";
  2057. a.write(goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createHTML(d) : d);
  2058. }
  2059. var e = this;
  2060. if (goog.global.CLOSURE_IMPORT_SCRIPT) b(), this.contents_ && goog.global.CLOSURE_IMPORT_SCRIPT("", this.contents_) ? (this.contents_ = null, a.loaded()) : a.pause();else {
  2061. var f = this.loadFlags.module == goog.ModuleType.ES6;
  2062. this.lazyFetch_ || b();
  2063. var g = 1 < a.pending().length,
  2064. h = g && goog.DebugLoader_.IS_OLD_IE_;
  2065. g = goog.Dependency.defer_ && (g || goog.isDocumentLoading_());
  2066. if (h || g) a.defer(function () {
  2067. c();
  2068. });else {
  2069. var k = goog.global.document;
  2070. h = goog.inHtmlDocument_() && "ActiveXObject" in goog.global;
  2071. if (f && goog.inHtmlDocument_() && goog.isDocumentLoading_() && !h) {
  2072. goog.Dependency.defer_ = !0;
  2073. a.pause();
  2074. var l = k.onreadystatechange;
  2075. k.onreadystatechange = function () {
  2076. "interactive" == k.readyState && (k.onreadystatechange = l, c(), a.resume());
  2077. goog.isFunction(l) && l.apply(void 0, arguments);
  2078. };
  2079. } else !goog.DebugLoader_.IS_OLD_IE_ && goog.inHtmlDocument_() && goog.isDocumentLoading_() ? d() : c();
  2080. }
  2081. }
  2082. }, goog.TransformedDependency.prototype.transform = function (a) {}, goog.TranspiledDependency = function (a, b, c, d, e, f) {
  2083. goog.TransformedDependency.call(this, a, b, c, d, e);
  2084. this.transpiler = f;
  2085. }, goog.inherits(goog.TranspiledDependency, goog.TransformedDependency), goog.TranspiledDependency.prototype.transform = function (a) {
  2086. return this.transpiler.transpile(a, this.getPathName());
  2087. }, goog.PreTranspiledEs6ModuleDependency = function (a, b, c, d, e) {
  2088. goog.TransformedDependency.call(this, a, b, c, d, e);
  2089. }, goog.inherits(goog.PreTranspiledEs6ModuleDependency, goog.TransformedDependency), goog.PreTranspiledEs6ModuleDependency.prototype.transform = function (a) {
  2090. return a;
  2091. }, goog.GoogModuleDependency = function (a, b, c, d, e, f, g) {
  2092. goog.TransformedDependency.call(this, a, b, c, d, e);
  2093. this.needsTranspile_ = f;
  2094. this.transpiler_ = g;
  2095. }, goog.inherits(goog.GoogModuleDependency, goog.TransformedDependency), goog.GoogModuleDependency.prototype.transform = function (a) {
  2096. this.needsTranspile_ && (a = this.transpiler_.transpile(a, this.getPathName()));
  2097. return goog.LOAD_MODULE_USING_EVAL && void 0 !== goog.global.JSON ? "goog.loadModule(" + goog.global.JSON.stringify(a + "\n//# sourceURL=" + this.path + "\n") + ");" : 'goog.loadModule(function(exports) {"use strict";' + a + "\n;return exports});\n//# sourceURL=" + this.path + "\n";
  2098. }, goog.DebugLoader_.IS_OLD_IE_ = !(goog.global.atob || !goog.global.document || !goog.global.document.all), goog.DebugLoader_.prototype.addDependency = function (a, b, c, d) {
  2099. b = b || [];
  2100. a = a.replace(/\\/g, "/");
  2101. var e = goog.normalizePath_(goog.basePath + a);
  2102. d && "boolean" !== typeof d || (d = d ? {
  2103. module: goog.ModuleType.GOOG
  2104. } : {});
  2105. c = this.factory_.createDependency(e, a, b, c, d, goog.transpiler_.needsTranspile(d.lang || "es3", d.module));
  2106. this.dependencies_[e] = c;
  2107. for (c = 0; c < b.length; c++) {
  2108. this.idToPath_[b[c]] = e;
  2109. }
  2110. this.idToPath_[a] = e;
  2111. }, goog.DependencyFactory = function (a) {
  2112. this.transpiler = a;
  2113. }, goog.DependencyFactory.prototype.createDependency = function (a, b, c, d, e, f) {
  2114. return e.module == goog.ModuleType.GOOG ? new goog.GoogModuleDependency(a, b, c, d, e, f, this.transpiler) : f ? new goog.TranspiledDependency(a, b, c, d, e, this.transpiler) : e.module == goog.ModuleType.ES6 ? "never" == goog.TRANSPILE && goog.ASSUME_ES_MODULES_TRANSPILED ? new goog.PreTranspiledEs6ModuleDependency(a, b, c, d, e) : new goog.Es6ModuleDependency(a, b, c, d, e) : new goog.Dependency(a, b, c, d, e);
  2115. }, goog.debugLoader_ = new goog.DebugLoader_(), goog.loadClosureDeps = function () {
  2116. goog.debugLoader_.loadClosureDeps();
  2117. }, goog.setDependencyFactory = function (a) {
  2118. goog.debugLoader_.setDependencyFactory(a);
  2119. }, goog.global.CLOSURE_NO_DEPS || goog.debugLoader_.loadClosureDeps(), goog.bootstrap = function (a, b) {
  2120. goog.debugLoader_.bootstrap(a, b);
  2121. });
  2122. goog.TRUSTED_TYPES_POLICY_NAME = "";
  2123. goog.identity_ = function (a) {
  2124. return a;
  2125. };
  2126. goog.createTrustedTypesPolicy = function (a) {
  2127. var b = null,
  2128. c = goog.global.trustedTypes || goog.global.TrustedTypes;
  2129. if (!c || !c.createPolicy) return b;
  2130. try {
  2131. b = c.createPolicy(a, {
  2132. createHTML: goog.identity_,
  2133. createScript: goog.identity_,
  2134. createScriptURL: goog.identity_,
  2135. createURL: goog.identity_
  2136. });
  2137. } catch (d) {
  2138. goog.logToConsole_(d.message);
  2139. }
  2140. return b;
  2141. };
  2142. goog.TRUSTED_TYPES_POLICY_ = goog.TRUSTED_TYPES_POLICY_NAME ? goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME + "#base") : null;
  2143. goog.object = {};
  2144. goog.object.is = function (a, b) {
  2145. return a === b ? 0 !== a || 1 / a === 1 / b : a !== a && b !== b;
  2146. };
  2147. goog.object.forEach = function (a, b, c) {
  2148. for (var d in a) {
  2149. b.call(c, a[d], d, a);
  2150. }
  2151. };
  2152. goog.object.filter = function (a, b, c) {
  2153. var d = {},
  2154. e;
  2155. for (e in a) {
  2156. b.call(c, a[e], e, a) && (d[e] = a[e]);
  2157. }
  2158. return d;
  2159. };
  2160. goog.object.map = function (a, b, c) {
  2161. var d = {},
  2162. e;
  2163. for (e in a) {
  2164. d[e] = b.call(c, a[e], e, a);
  2165. }
  2166. return d;
  2167. };
  2168. goog.object.some = function (a, b, c) {
  2169. for (var d in a) {
  2170. if (b.call(c, a[d], d, a)) return !0;
  2171. }
  2172. return !1;
  2173. };
  2174. goog.object.every = function (a, b, c) {
  2175. for (var d in a) {
  2176. if (!b.call(c, a[d], d, a)) return !1;
  2177. }
  2178. return !0;
  2179. };
  2180. goog.object.getCount = function (a) {
  2181. var b = 0,
  2182. c;
  2183. for (c in a) {
  2184. b++;
  2185. }
  2186. return b;
  2187. };
  2188. goog.object.getAnyKey = function (a) {
  2189. for (var b in a) {
  2190. return b;
  2191. }
  2192. };
  2193. goog.object.getAnyValue = function (a) {
  2194. for (var b in a) {
  2195. return a[b];
  2196. }
  2197. };
  2198. goog.object.contains = function (a, b) {
  2199. return goog.object.containsValue(a, b);
  2200. };
  2201. goog.object.getValues = function (a) {
  2202. var b = [],
  2203. c = 0,
  2204. d;
  2205. for (d in a) {
  2206. b[c++] = a[d];
  2207. }
  2208. return b;
  2209. };
  2210. goog.object.getKeys = function (a) {
  2211. var b = [],
  2212. c = 0,
  2213. d;
  2214. for (d in a) {
  2215. b[c++] = d;
  2216. }
  2217. return b;
  2218. };
  2219. goog.object.getValueByKeys = function (a, b) {
  2220. var c = goog.isArrayLike(b),
  2221. d = c ? b : arguments;
  2222. for (c = c ? 0 : 1; c < d.length; c++) {
  2223. if (null == a) return;
  2224. a = a[d[c]];
  2225. }
  2226. return a;
  2227. };
  2228. goog.object.containsKey = function (a, b) {
  2229. return null !== a && b in a;
  2230. };
  2231. goog.object.containsValue = function (a, b) {
  2232. for (var c in a) {
  2233. if (a[c] == b) return !0;
  2234. }
  2235. return !1;
  2236. };
  2237. goog.object.findKey = function (a, b, c) {
  2238. for (var d in a) {
  2239. if (b.call(c, a[d], d, a)) return d;
  2240. }
  2241. };
  2242. goog.object.findValue = function (a, b, c) {
  2243. return (b = goog.object.findKey(a, b, c)) && a[b];
  2244. };
  2245. goog.object.isEmpty = function (a) {
  2246. for (var b in a) {
  2247. return !1;
  2248. }
  2249. return !0;
  2250. };
  2251. goog.object.clear = function (a) {
  2252. for (var b in a) {
  2253. delete a[b];
  2254. }
  2255. };
  2256. goog.object.remove = function (a, b) {
  2257. var c;
  2258. (c = b in a) && delete a[b];
  2259. return c;
  2260. };
  2261. goog.object.add = function (a, b, c) {
  2262. if (null !== a && b in a) throw Error('The object already contains the key "' + b + '"');
  2263. goog.object.set(a, b, c);
  2264. };
  2265. goog.object.get = function (a, b, c) {
  2266. return null !== a && b in a ? a[b] : c;
  2267. };
  2268. goog.object.set = function (a, b, c) {
  2269. a[b] = c;
  2270. };
  2271. goog.object.setIfUndefined = function (a, b, c) {
  2272. return b in a ? a[b] : a[b] = c;
  2273. };
  2274. goog.object.setWithReturnValueIfNotSet = function (a, b, c) {
  2275. if (b in a) return a[b];
  2276. c = c();
  2277. return a[b] = c;
  2278. };
  2279. goog.object.equals = function (a, b) {
  2280. for (var c in a) {
  2281. if (!(c in b) || a[c] !== b[c]) return !1;
  2282. }
  2283. for (var d in b) {
  2284. if (!(d in a)) return !1;
  2285. }
  2286. return !0;
  2287. };
  2288. goog.object.clone = function (a) {
  2289. var b = {},
  2290. c;
  2291. for (c in a) {
  2292. b[c] = a[c];
  2293. }
  2294. return b;
  2295. };
  2296. goog.object.unsafeClone = function (a) {
  2297. var b = goog.typeOf(a);
  2298. if ("object" == b || "array" == b) {
  2299. if (goog.isFunction(a.clone)) return a.clone();
  2300. b = "array" == b ? [] : {};
  2301. for (var c in a) {
  2302. b[c] = goog.object.unsafeClone(a[c]);
  2303. }
  2304. return b;
  2305. }
  2306. return a;
  2307. };
  2308. goog.object.transpose = function (a) {
  2309. var b = {},
  2310. c;
  2311. for (c in a) {
  2312. b[a[c]] = c;
  2313. }
  2314. return b;
  2315. };
  2316. goog.object.PROTOTYPE_FIELDS_ = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
  2317. goog.object.extend = function (a, b) {
  2318. for (var c, d, e = 1; e < arguments.length; e++) {
  2319. d = arguments[e];
  2320. for (c in d) {
  2321. a[c] = d[c];
  2322. }
  2323. for (var f = 0; f < goog.object.PROTOTYPE_FIELDS_.length; f++) {
  2324. c = goog.object.PROTOTYPE_FIELDS_[f], Object.prototype.hasOwnProperty.call(d, c) && (a[c] = d[c]);
  2325. }
  2326. }
  2327. };
  2328. goog.object.create = function (a) {
  2329. var b = arguments.length;
  2330. if (1 == b && Array.isArray(arguments[0])) return goog.object.create.apply(null, arguments[0]);
  2331. if (b % 2) throw Error("Uneven number of arguments");
  2332. for (var c = {}, d = 0; d < b; d += 2) {
  2333. c[arguments[d]] = arguments[d + 1];
  2334. }
  2335. return c;
  2336. };
  2337. goog.object.createSet = function (a) {
  2338. var b = arguments.length;
  2339. if (1 == b && Array.isArray(arguments[0])) return goog.object.createSet.apply(null, arguments[0]);
  2340. for (var c = {}, d = 0; d < b; d++) {
  2341. c[arguments[d]] = !0;
  2342. }
  2343. return c;
  2344. };
  2345. goog.object.createImmutableView = function (a) {
  2346. var b = a;
  2347. Object.isFrozen && !Object.isFrozen(a) && (b = Object.create(a), Object.freeze(b));
  2348. return b;
  2349. };
  2350. goog.object.isImmutableView = function (a) {
  2351. return !!Object.isFrozen && Object.isFrozen(a);
  2352. };
  2353. goog.object.getAllPropertyNames = function (a, b, c) {
  2354. if (!a) return [];
  2355. if (!Object.getOwnPropertyNames || !Object.getPrototypeOf) return goog.object.getKeys(a);
  2356. for (var d = {}; a && (a !== Object.prototype || b) && (a !== Function.prototype || c);) {
  2357. for (var e = Object.getOwnPropertyNames(a), f = 0; f < e.length; f++) {
  2358. d[e[f]] = !0;
  2359. }
  2360. a = Object.getPrototypeOf(a);
  2361. }
  2362. return goog.object.getKeys(d);
  2363. };
  2364. goog.object.getSuperClass = function (a) {
  2365. return (a = Object.getPrototypeOf(a.prototype)) && a.constructor;
  2366. };
  2367. var jspb = {
  2368. asserts: {}
  2369. };
  2370. jspb.asserts.doAssertFailure = function (a, b, c, d) {
  2371. var e = "Assertion failed";
  2372. if (c) {
  2373. e += ": " + c;
  2374. var f = d;
  2375. } else a && (e += ": " + a, f = b);
  2376. throw Error("" + e, f || []);
  2377. };
  2378. jspb.asserts.assert = function (a, b, c) {
  2379. for (var d = [], e = 2; e < arguments.length; ++e) {
  2380. d[e - 2] = arguments[e];
  2381. }
  2382. a || jspb.asserts.doAssertFailure("", null, b, d);
  2383. return a;
  2384. };
  2385. jspb.asserts.assertString = function (a, b, c) {
  2386. for (var d = [], e = 2; e < arguments.length; ++e) {
  2387. d[e - 2] = arguments[e];
  2388. }
  2389. "string" !== typeof a && jspb.asserts.doAssertFailure("Expected string but got %s: %s.", [goog.typeOf(a), a], b, d);
  2390. return a;
  2391. };
  2392. jspb.asserts.assertArray = function (a, b, c) {
  2393. for (var d = [], e = 2; e < arguments.length; ++e) {
  2394. d[e - 2] = arguments[e];
  2395. }
  2396. Array.isArray(a) || jspb.asserts.doAssertFailure("Expected array but got %s: %s.", [goog.typeOf(a), a], b, d);
  2397. return a;
  2398. };
  2399. jspb.asserts.fail = function (a, b) {
  2400. for (var c = [], d = 1; d < arguments.length; ++d) {
  2401. c[d - 1] = arguments[d];
  2402. }
  2403. throw Error("Failure" + (a ? ": " + a : ""), c);
  2404. };
  2405. jspb.asserts.assertInstanceof = function (a, b, c, d) {
  2406. for (var e = [], f = 3; f < arguments.length; ++f) {
  2407. e[f - 3] = arguments[f];
  2408. }
  2409. a instanceof b || jspb.asserts.doAssertFailure("Expected instanceof %s but got %s.", [jspb.asserts.getType(b), jspb.asserts.getType(a)], c, e);
  2410. return a;
  2411. };
  2412. jspb.asserts.getType = function (a) {
  2413. return a instanceof Function ? a.displayName || a.name || "unknown type name" : a instanceof Object ? a.constructor.displayName || a.constructor.name || Object.prototype.toString.call(a) : null === a ? "null" : _typeof(a);
  2414. };
  2415. jspb.BinaryConstants = {};
  2416. jspb.ConstBinaryMessage = function () {};
  2417. jspb.BinaryMessage = function () {};
  2418. jspb.BinaryConstants.FieldType = {
  2419. INVALID: -1,
  2420. DOUBLE: 1,
  2421. FLOAT: 2,
  2422. INT64: 3,
  2423. UINT64: 4,
  2424. INT32: 5,
  2425. FIXED64: 6,
  2426. FIXED32: 7,
  2427. BOOL: 8,
  2428. STRING: 9,
  2429. GROUP: 10,
  2430. MESSAGE: 11,
  2431. BYTES: 12,
  2432. UINT32: 13,
  2433. ENUM: 14,
  2434. SFIXED32: 15,
  2435. SFIXED64: 16,
  2436. SINT32: 17,
  2437. SINT64: 18,
  2438. FHASH64: 30,
  2439. VHASH64: 31
  2440. };
  2441. jspb.BinaryConstants.WireType = {
  2442. INVALID: -1,
  2443. VARINT: 0,
  2444. FIXED64: 1,
  2445. DELIMITED: 2,
  2446. START_GROUP: 3,
  2447. END_GROUP: 4,
  2448. FIXED32: 5
  2449. };
  2450. jspb.BinaryConstants.FieldTypeToWireType = function (a) {
  2451. var b = jspb.BinaryConstants.FieldType,
  2452. c = jspb.BinaryConstants.WireType;
  2453. switch (a) {
  2454. case b.INT32:
  2455. case b.INT64:
  2456. case b.UINT32:
  2457. case b.UINT64:
  2458. case b.SINT32:
  2459. case b.SINT64:
  2460. case b.BOOL:
  2461. case b.ENUM:
  2462. case b.VHASH64:
  2463. return c.VARINT;
  2464. case b.DOUBLE:
  2465. case b.FIXED64:
  2466. case b.SFIXED64:
  2467. case b.FHASH64:
  2468. return c.FIXED64;
  2469. case b.STRING:
  2470. case b.MESSAGE:
  2471. case b.BYTES:
  2472. return c.DELIMITED;
  2473. case b.FLOAT:
  2474. case b.FIXED32:
  2475. case b.SFIXED32:
  2476. return c.FIXED32;
  2477. default:
  2478. return c.INVALID;
  2479. }
  2480. };
  2481. jspb.BinaryConstants.INVALID_FIELD_NUMBER = -1;
  2482. jspb.BinaryConstants.FLOAT32_EPS = 1.401298464324817E-45;
  2483. jspb.BinaryConstants.FLOAT32_MIN = 1.1754943508222875E-38;
  2484. jspb.BinaryConstants.FLOAT32_MAX = 3.4028234663852886E38;
  2485. jspb.BinaryConstants.FLOAT64_EPS = 4.9E-324;
  2486. jspb.BinaryConstants.FLOAT64_MIN = 2.2250738585072014E-308;
  2487. jspb.BinaryConstants.FLOAT64_MAX = 1.7976931348623157E308;
  2488. jspb.BinaryConstants.TWO_TO_20 = 1048576;
  2489. jspb.BinaryConstants.TWO_TO_23 = 8388608;
  2490. jspb.BinaryConstants.TWO_TO_31 = 2147483648;
  2491. jspb.BinaryConstants.TWO_TO_32 = 4294967296;
  2492. jspb.BinaryConstants.TWO_TO_52 = 4503599627370496;
  2493. jspb.BinaryConstants.TWO_TO_63 = 0x7fffffffffffffff;
  2494. jspb.BinaryConstants.TWO_TO_64 = 1.8446744073709552E19;
  2495. jspb.BinaryConstants.ZERO_HASH = "\x00\x00\x00\x00\x00\x00\x00\x00";
  2496. goog.debug = {};
  2497. goog.debug.Error = function (a) {
  2498. if (Error.captureStackTrace) Error.captureStackTrace(this, goog.debug.Error);else {
  2499. var b = Error().stack;
  2500. b && (this.stack = b);
  2501. }
  2502. a && (this.message = String(a));
  2503. this.reportErrorToServer = !0;
  2504. };
  2505. goog.inherits(goog.debug.Error, Error);
  2506. goog.debug.Error.prototype.name = "CustomError";
  2507. goog.dom = {};
  2508. goog.dom.NodeType = {
  2509. ELEMENT: 1,
  2510. ATTRIBUTE: 2,
  2511. TEXT: 3,
  2512. CDATA_SECTION: 4,
  2513. ENTITY_REFERENCE: 5,
  2514. ENTITY: 6,
  2515. PROCESSING_INSTRUCTION: 7,
  2516. COMMENT: 8,
  2517. DOCUMENT: 9,
  2518. DOCUMENT_TYPE: 10,
  2519. DOCUMENT_FRAGMENT: 11,
  2520. NOTATION: 12
  2521. };
  2522. goog.asserts = {};
  2523. goog.asserts.ENABLE_ASSERTS = goog.DEBUG;
  2524. goog.asserts.AssertionError = function (a, b) {
  2525. goog.debug.Error.call(this, goog.asserts.subs_(a, b));
  2526. this.messagePattern = a;
  2527. };
  2528. goog.inherits(goog.asserts.AssertionError, goog.debug.Error);
  2529. goog.asserts.AssertionError.prototype.name = "AssertionError";
  2530. goog.asserts.DEFAULT_ERROR_HANDLER = function (a) {
  2531. throw a;
  2532. };
  2533. goog.asserts.errorHandler_ = goog.asserts.DEFAULT_ERROR_HANDLER;
  2534. goog.asserts.subs_ = function (a, b) {
  2535. a = a.split("%s");
  2536. for (var c = "", d = a.length - 1, e = 0; e < d; e++) {
  2537. c += a[e] + (e < b.length ? b[e] : "%s");
  2538. }
  2539. return c + a[d];
  2540. };
  2541. goog.asserts.doAssertFailure_ = function (a, b, c, d) {
  2542. var e = "Assertion failed";
  2543. if (c) {
  2544. e += ": " + c;
  2545. var f = d;
  2546. } else a && (e += ": " + a, f = b);
  2547. a = new goog.asserts.AssertionError("" + e, f || []);
  2548. goog.asserts.errorHandler_(a);
  2549. };
  2550. goog.asserts.setErrorHandler = function (a) {
  2551. goog.asserts.ENABLE_ASSERTS && (goog.asserts.errorHandler_ = a);
  2552. };
  2553. goog.asserts.assert = function (a, b, c) {
  2554. goog.asserts.ENABLE_ASSERTS && !a && goog.asserts.doAssertFailure_("", null, b, Array.prototype.slice.call(arguments, 2));
  2555. return a;
  2556. };
  2557. goog.asserts.assertExists = function (a, b, c) {
  2558. goog.asserts.ENABLE_ASSERTS && null == a && goog.asserts.doAssertFailure_("Expected to exist: %s.", [a], b, Array.prototype.slice.call(arguments, 2));
  2559. return a;
  2560. };
  2561. goog.asserts.fail = function (a, b) {
  2562. goog.asserts.ENABLE_ASSERTS && goog.asserts.errorHandler_(new goog.asserts.AssertionError("Failure" + (a ? ": " + a : ""), Array.prototype.slice.call(arguments, 1)));
  2563. };
  2564. goog.asserts.assertNumber = function (a, b, c) {
  2565. goog.asserts.ENABLE_ASSERTS && "number" !== typeof a && goog.asserts.doAssertFailure_("Expected number but got %s: %s.", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));
  2566. return a;
  2567. };
  2568. goog.asserts.assertString = function (a, b, c) {
  2569. goog.asserts.ENABLE_ASSERTS && "string" !== typeof a && goog.asserts.doAssertFailure_("Expected string but got %s: %s.", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));
  2570. return a;
  2571. };
  2572. goog.asserts.assertFunction = function (a, b, c) {
  2573. goog.asserts.ENABLE_ASSERTS && !goog.isFunction(a) && goog.asserts.doAssertFailure_("Expected function but got %s: %s.", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));
  2574. return a;
  2575. };
  2576. goog.asserts.assertObject = function (a, b, c) {
  2577. goog.asserts.ENABLE_ASSERTS && !goog.isObject(a) && goog.asserts.doAssertFailure_("Expected object but got %s: %s.", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));
  2578. return a;
  2579. };
  2580. goog.asserts.assertArray = function (a, b, c) {
  2581. goog.asserts.ENABLE_ASSERTS && !Array.isArray(a) && goog.asserts.doAssertFailure_("Expected array but got %s: %s.", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));
  2582. return a;
  2583. };
  2584. goog.asserts.assertBoolean = function (a, b, c) {
  2585. goog.asserts.ENABLE_ASSERTS && "boolean" !== typeof a && goog.asserts.doAssertFailure_("Expected boolean but got %s: %s.", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));
  2586. return a;
  2587. };
  2588. goog.asserts.assertElement = function (a, b, c) {
  2589. !goog.asserts.ENABLE_ASSERTS || goog.isObject(a) && a.nodeType == goog.dom.NodeType.ELEMENT || goog.asserts.doAssertFailure_("Expected Element but got %s: %s.", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));
  2590. return a;
  2591. };
  2592. goog.asserts.assertInstanceof = function (a, b, c, d) {
  2593. !goog.asserts.ENABLE_ASSERTS || a instanceof b || goog.asserts.doAssertFailure_("Expected instanceof %s but got %s.", [goog.asserts.getType_(b), goog.asserts.getType_(a)], c, Array.prototype.slice.call(arguments, 3));
  2594. return a;
  2595. };
  2596. goog.asserts.assertFinite = function (a, b, c) {
  2597. !goog.asserts.ENABLE_ASSERTS || "number" == typeof a && isFinite(a) || goog.asserts.doAssertFailure_("Expected %s to be a finite number but it is not.", [a], b, Array.prototype.slice.call(arguments, 2));
  2598. return a;
  2599. };
  2600. goog.asserts.assertObjectPrototypeIsIntact = function () {
  2601. for (var a in Object.prototype) {
  2602. goog.asserts.fail(a + " should not be enumerable in Object.prototype.");
  2603. }
  2604. };
  2605. goog.asserts.getType_ = function (a) {
  2606. return a instanceof Function ? a.displayName || a.name || "unknown type name" : a instanceof Object ? a.constructor.displayName || a.constructor.name || Object.prototype.toString.call(a) : null === a ? "null" : _typeof(a);
  2607. };
  2608. goog.array = {};
  2609. goog.NATIVE_ARRAY_PROTOTYPES = goog.TRUSTED_SITE;
  2610. goog.array.ASSUME_NATIVE_FUNCTIONS = 2012 < goog.FEATURESET_YEAR;
  2611. goog.array.peek = function (a) {
  2612. return a[a.length - 1];
  2613. };
  2614. goog.array.last = goog.array.peek;
  2615. goog.array.indexOf = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.indexOf) ? function (a, b, c) {
  2616. goog.asserts.assert(null != a.length);
  2617. return Array.prototype.indexOf.call(a, b, c);
  2618. } : function (a, b, c) {
  2619. c = null == c ? 0 : 0 > c ? Math.max(0, a.length + c) : c;
  2620. if ("string" === typeof a) return "string" !== typeof b || 1 != b.length ? -1 : a.indexOf(b, c);
  2621. for (; c < a.length; c++) {
  2622. if (c in a && a[c] === b) return c;
  2623. }
  2624. return -1;
  2625. };
  2626. goog.array.lastIndexOf = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.lastIndexOf) ? function (a, b, c) {
  2627. goog.asserts.assert(null != a.length);
  2628. return Array.prototype.lastIndexOf.call(a, b, null == c ? a.length - 1 : c);
  2629. } : function (a, b, c) {
  2630. c = null == c ? a.length - 1 : c;
  2631. 0 > c && (c = Math.max(0, a.length + c));
  2632. if ("string" === typeof a) return "string" !== typeof b || 1 != b.length ? -1 : a.lastIndexOf(b, c);
  2633. for (; 0 <= c; c--) {
  2634. if (c in a && a[c] === b) return c;
  2635. }
  2636. return -1;
  2637. };
  2638. goog.array.forEach = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.forEach) ? function (a, b, c) {
  2639. goog.asserts.assert(null != a.length);
  2640. Array.prototype.forEach.call(a, b, c);
  2641. } : function (a, b, c) {
  2642. for (var d = a.length, e = "string" === typeof a ? a.split("") : a, f = 0; f < d; f++) {
  2643. f in e && b.call(c, e[f], f, a);
  2644. }
  2645. };
  2646. goog.array.forEachRight = function (a, b, c) {
  2647. var d = a.length,
  2648. e = "string" === typeof a ? a.split("") : a;
  2649. for (--d; 0 <= d; --d) {
  2650. d in e && b.call(c, e[d], d, a);
  2651. }
  2652. };
  2653. goog.array.filter = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.filter) ? function (a, b, c) {
  2654. goog.asserts.assert(null != a.length);
  2655. return Array.prototype.filter.call(a, b, c);
  2656. } : function (a, b, c) {
  2657. for (var d = a.length, e = [], f = 0, g = "string" === typeof a ? a.split("") : a, h = 0; h < d; h++) {
  2658. if (h in g) {
  2659. var k = g[h];
  2660. b.call(c, k, h, a) && (e[f++] = k);
  2661. }
  2662. }
  2663. return e;
  2664. };
  2665. goog.array.map = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.map) ? function (a, b, c) {
  2666. goog.asserts.assert(null != a.length);
  2667. return Array.prototype.map.call(a, b, c);
  2668. } : function (a, b, c) {
  2669. for (var d = a.length, e = Array(d), f = "string" === typeof a ? a.split("") : a, g = 0; g < d; g++) {
  2670. g in f && (e[g] = b.call(c, f[g], g, a));
  2671. }
  2672. return e;
  2673. };
  2674. goog.array.reduce = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.reduce) ? function (a, b, c, d) {
  2675. goog.asserts.assert(null != a.length);
  2676. d && (b = goog.bind(b, d));
  2677. return Array.prototype.reduce.call(a, b, c);
  2678. } : function (a, b, c, d) {
  2679. var e = c;
  2680. goog.array.forEach(a, function (c, g) {
  2681. e = b.call(d, e, c, g, a);
  2682. });
  2683. return e;
  2684. };
  2685. goog.array.reduceRight = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.reduceRight) ? function (a, b, c, d) {
  2686. goog.asserts.assert(null != a.length);
  2687. goog.asserts.assert(null != b);
  2688. d && (b = goog.bind(b, d));
  2689. return Array.prototype.reduceRight.call(a, b, c);
  2690. } : function (a, b, c, d) {
  2691. var e = c;
  2692. goog.array.forEachRight(a, function (c, g) {
  2693. e = b.call(d, e, c, g, a);
  2694. });
  2695. return e;
  2696. };
  2697. goog.array.some = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.some) ? function (a, b, c) {
  2698. goog.asserts.assert(null != a.length);
  2699. return Array.prototype.some.call(a, b, c);
  2700. } : function (a, b, c) {
  2701. for (var d = a.length, e = "string" === typeof a ? a.split("") : a, f = 0; f < d; f++) {
  2702. if (f in e && b.call(c, e[f], f, a)) return !0;
  2703. }
  2704. return !1;
  2705. };
  2706. goog.array.every = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.every) ? function (a, b, c) {
  2707. goog.asserts.assert(null != a.length);
  2708. return Array.prototype.every.call(a, b, c);
  2709. } : function (a, b, c) {
  2710. for (var d = a.length, e = "string" === typeof a ? a.split("") : a, f = 0; f < d; f++) {
  2711. if (f in e && !b.call(c, e[f], f, a)) return !1;
  2712. }
  2713. return !0;
  2714. };
  2715. goog.array.count = function (a, b, c) {
  2716. var d = 0;
  2717. goog.array.forEach(a, function (a, f, g) {
  2718. b.call(c, a, f, g) && ++d;
  2719. }, c);
  2720. return d;
  2721. };
  2722. goog.array.find = function (a, b, c) {
  2723. b = goog.array.findIndex(a, b, c);
  2724. return 0 > b ? null : "string" === typeof a ? a.charAt(b) : a[b];
  2725. };
  2726. goog.array.findIndex = function (a, b, c) {
  2727. for (var d = a.length, e = "string" === typeof a ? a.split("") : a, f = 0; f < d; f++) {
  2728. if (f in e && b.call(c, e[f], f, a)) return f;
  2729. }
  2730. return -1;
  2731. };
  2732. goog.array.findRight = function (a, b, c) {
  2733. b = goog.array.findIndexRight(a, b, c);
  2734. return 0 > b ? null : "string" === typeof a ? a.charAt(b) : a[b];
  2735. };
  2736. goog.array.findIndexRight = function (a, b, c) {
  2737. var d = a.length,
  2738. e = "string" === typeof a ? a.split("") : a;
  2739. for (--d; 0 <= d; d--) {
  2740. if (d in e && b.call(c, e[d], d, a)) return d;
  2741. }
  2742. return -1;
  2743. };
  2744. goog.array.contains = function (a, b) {
  2745. return 0 <= goog.array.indexOf(a, b);
  2746. };
  2747. goog.array.isEmpty = function (a) {
  2748. return 0 == a.length;
  2749. };
  2750. goog.array.clear = function (a) {
  2751. if (!Array.isArray(a)) for (var b = a.length - 1; 0 <= b; b--) {
  2752. delete a[b];
  2753. }
  2754. a.length = 0;
  2755. };
  2756. goog.array.insert = function (a, b) {
  2757. goog.array.contains(a, b) || a.push(b);
  2758. };
  2759. goog.array.insertAt = function (a, b, c) {
  2760. goog.array.splice(a, c, 0, b);
  2761. };
  2762. goog.array.insertArrayAt = function (a, b, c) {
  2763. goog.partial(goog.array.splice, a, c, 0).apply(null, b);
  2764. };
  2765. goog.array.insertBefore = function (a, b, c) {
  2766. var d;
  2767. 2 == arguments.length || 0 > (d = goog.array.indexOf(a, c)) ? a.push(b) : goog.array.insertAt(a, b, d);
  2768. };
  2769. goog.array.remove = function (a, b) {
  2770. b = goog.array.indexOf(a, b);
  2771. var c;
  2772. (c = 0 <= b) && goog.array.removeAt(a, b);
  2773. return c;
  2774. };
  2775. goog.array.removeLast = function (a, b) {
  2776. b = goog.array.lastIndexOf(a, b);
  2777. return 0 <= b ? (goog.array.removeAt(a, b), !0) : !1;
  2778. };
  2779. goog.array.removeAt = function (a, b) {
  2780. goog.asserts.assert(null != a.length);
  2781. return 1 == Array.prototype.splice.call(a, b, 1).length;
  2782. };
  2783. goog.array.removeIf = function (a, b, c) {
  2784. b = goog.array.findIndex(a, b, c);
  2785. return 0 <= b ? (goog.array.removeAt(a, b), !0) : !1;
  2786. };
  2787. goog.array.removeAllIf = function (a, b, c) {
  2788. var d = 0;
  2789. goog.array.forEachRight(a, function (e, f) {
  2790. b.call(c, e, f, a) && goog.array.removeAt(a, f) && d++;
  2791. });
  2792. return d;
  2793. };
  2794. goog.array.concat = function (a) {
  2795. return Array.prototype.concat.apply([], arguments);
  2796. };
  2797. goog.array.join = function (a) {
  2798. return Array.prototype.concat.apply([], arguments);
  2799. };
  2800. goog.array.toArray = function (a) {
  2801. var b = a.length;
  2802. if (0 < b) {
  2803. for (var c = Array(b), d = 0; d < b; d++) {
  2804. c[d] = a[d];
  2805. }
  2806. return c;
  2807. }
  2808. return [];
  2809. };
  2810. goog.array.clone = goog.array.toArray;
  2811. goog.array.extend = function (a, b) {
  2812. for (var c = 1; c < arguments.length; c++) {
  2813. var d = arguments[c];
  2814. if (goog.isArrayLike(d)) {
  2815. var e = a.length || 0,
  2816. f = d.length || 0;
  2817. a.length = e + f;
  2818. for (var g = 0; g < f; g++) {
  2819. a[e + g] = d[g];
  2820. }
  2821. } else a.push(d);
  2822. }
  2823. };
  2824. goog.array.splice = function (a, b, c, d) {
  2825. goog.asserts.assert(null != a.length);
  2826. return Array.prototype.splice.apply(a, goog.array.slice(arguments, 1));
  2827. };
  2828. goog.array.slice = function (a, b, c) {
  2829. goog.asserts.assert(null != a.length);
  2830. return 2 >= arguments.length ? Array.prototype.slice.call(a, b) : Array.prototype.slice.call(a, b, c);
  2831. };
  2832. goog.array.removeDuplicates = function (a, b, c) {
  2833. b = b || a;
  2834. var d = function d(a) {
  2835. return goog.isObject(a) ? "o" + goog.getUid(a) : _typeof(a).charAt(0) + a;
  2836. };
  2837. c = c || d;
  2838. d = {};
  2839. for (var e = 0, f = 0; f < a.length;) {
  2840. var g = a[f++],
  2841. h = c(g);
  2842. Object.prototype.hasOwnProperty.call(d, h) || (d[h] = !0, b[e++] = g);
  2843. }
  2844. b.length = e;
  2845. };
  2846. goog.array.binarySearch = function (a, b, c) {
  2847. return goog.array.binarySearch_(a, c || goog.array.defaultCompare, !1, b);
  2848. };
  2849. goog.array.binarySelect = function (a, b, c) {
  2850. return goog.array.binarySearch_(a, b, !0, void 0, c);
  2851. };
  2852. goog.array.binarySearch_ = function (a, b, c, d, e) {
  2853. for (var f = 0, g = a.length, h; f < g;) {
  2854. var k = f + (g - f >>> 1);
  2855. var l = c ? b.call(e, a[k], k, a) : b(d, a[k]);
  2856. 0 < l ? f = k + 1 : (g = k, h = !l);
  2857. }
  2858. return h ? f : -f - 1;
  2859. };
  2860. goog.array.sort = function (a, b) {
  2861. a.sort(b || goog.array.defaultCompare);
  2862. };
  2863. goog.array.stableSort = function (a, b) {
  2864. for (var c = Array(a.length), d = 0; d < a.length; d++) {
  2865. c[d] = {
  2866. index: d,
  2867. value: a[d]
  2868. };
  2869. }
  2870. var e = b || goog.array.defaultCompare;
  2871. goog.array.sort(c, function (a, b) {
  2872. return e(a.value, b.value) || a.index - b.index;
  2873. });
  2874. for (d = 0; d < a.length; d++) {
  2875. a[d] = c[d].value;
  2876. }
  2877. };
  2878. goog.array.sortByKey = function (a, b, c) {
  2879. var d = c || goog.array.defaultCompare;
  2880. goog.array.sort(a, function (a, c) {
  2881. return d(b(a), b(c));
  2882. });
  2883. };
  2884. goog.array.sortObjectsByKey = function (a, b, c) {
  2885. goog.array.sortByKey(a, function (a) {
  2886. return a[b];
  2887. }, c);
  2888. };
  2889. goog.array.isSorted = function (a, b, c) {
  2890. b = b || goog.array.defaultCompare;
  2891. for (var d = 1; d < a.length; d++) {
  2892. var e = b(a[d - 1], a[d]);
  2893. if (0 < e || 0 == e && c) return !1;
  2894. }
  2895. return !0;
  2896. };
  2897. goog.array.equals = function (a, b, c) {
  2898. if (!goog.isArrayLike(a) || !goog.isArrayLike(b) || a.length != b.length) return !1;
  2899. var d = a.length;
  2900. c = c || goog.array.defaultCompareEquality;
  2901. for (var e = 0; e < d; e++) {
  2902. if (!c(a[e], b[e])) return !1;
  2903. }
  2904. return !0;
  2905. };
  2906. goog.array.compare3 = function (a, b, c) {
  2907. c = c || goog.array.defaultCompare;
  2908. for (var d = Math.min(a.length, b.length), e = 0; e < d; e++) {
  2909. var f = c(a[e], b[e]);
  2910. if (0 != f) return f;
  2911. }
  2912. return goog.array.defaultCompare(a.length, b.length);
  2913. };
  2914. goog.array.defaultCompare = function (a, b) {
  2915. return a > b ? 1 : a < b ? -1 : 0;
  2916. };
  2917. goog.array.inverseDefaultCompare = function (a, b) {
  2918. return -goog.array.defaultCompare(a, b);
  2919. };
  2920. goog.array.defaultCompareEquality = function (a, b) {
  2921. return a === b;
  2922. };
  2923. goog.array.binaryInsert = function (a, b, c) {
  2924. c = goog.array.binarySearch(a, b, c);
  2925. return 0 > c ? (goog.array.insertAt(a, b, -(c + 1)), !0) : !1;
  2926. };
  2927. goog.array.binaryRemove = function (a, b, c) {
  2928. b = goog.array.binarySearch(a, b, c);
  2929. return 0 <= b ? goog.array.removeAt(a, b) : !1;
  2930. };
  2931. goog.array.bucket = function (a, b, c) {
  2932. for (var d = {}, e = 0; e < a.length; e++) {
  2933. var f = a[e],
  2934. g = b.call(c, f, e, a);
  2935. void 0 !== g && (d[g] || (d[g] = [])).push(f);
  2936. }
  2937. return d;
  2938. };
  2939. goog.array.toObject = function (a, b, c) {
  2940. var d = {};
  2941. goog.array.forEach(a, function (e, f) {
  2942. d[b.call(c, e, f, a)] = e;
  2943. });
  2944. return d;
  2945. };
  2946. goog.array.range = function (a, b, c) {
  2947. var d = [],
  2948. e = 0,
  2949. f = a;
  2950. c = c || 1;
  2951. void 0 !== b && (e = a, f = b);
  2952. if (0 > c * (f - e)) return [];
  2953. if (0 < c) for (a = e; a < f; a += c) {
  2954. d.push(a);
  2955. } else for (a = e; a > f; a += c) {
  2956. d.push(a);
  2957. }
  2958. return d;
  2959. };
  2960. goog.array.repeat = function (a, b) {
  2961. for (var c = [], d = 0; d < b; d++) {
  2962. c[d] = a;
  2963. }
  2964. return c;
  2965. };
  2966. goog.array.flatten = function (a) {
  2967. for (var b = [], c = 0; c < arguments.length; c++) {
  2968. var d = arguments[c];
  2969. if (Array.isArray(d)) for (var e = 0; e < d.length; e += 8192) {
  2970. var f = goog.array.slice(d, e, e + 8192);
  2971. f = goog.array.flatten.apply(null, f);
  2972. for (var g = 0; g < f.length; g++) {
  2973. b.push(f[g]);
  2974. }
  2975. } else b.push(d);
  2976. }
  2977. return b;
  2978. };
  2979. goog.array.rotate = function (a, b) {
  2980. goog.asserts.assert(null != a.length);
  2981. a.length && (b %= a.length, 0 < b ? Array.prototype.unshift.apply(a, a.splice(-b, b)) : 0 > b && Array.prototype.push.apply(a, a.splice(0, -b)));
  2982. return a;
  2983. };
  2984. goog.array.moveItem = function (a, b, c) {
  2985. goog.asserts.assert(0 <= b && b < a.length);
  2986. goog.asserts.assert(0 <= c && c < a.length);
  2987. b = Array.prototype.splice.call(a, b, 1);
  2988. Array.prototype.splice.call(a, c, 0, b[0]);
  2989. };
  2990. goog.array.zip = function (a) {
  2991. if (!arguments.length) return [];
  2992. for (var b = [], c = arguments[0].length, d = 1; d < arguments.length; d++) {
  2993. arguments[d].length < c && (c = arguments[d].length);
  2994. }
  2995. for (d = 0; d < c; d++) {
  2996. for (var e = [], f = 0; f < arguments.length; f++) {
  2997. e.push(arguments[f][d]);
  2998. }
  2999. b.push(e);
  3000. }
  3001. return b;
  3002. };
  3003. goog.array.shuffle = function (a, b) {
  3004. b = b || Math.random;
  3005. for (var c = a.length - 1; 0 < c; c--) {
  3006. var d = Math.floor(b() * (c + 1)),
  3007. e = a[c];
  3008. a[c] = a[d];
  3009. a[d] = e;
  3010. }
  3011. };
  3012. goog.array.copyByIndex = function (a, b) {
  3013. var c = [];
  3014. goog.array.forEach(b, function (b) {
  3015. c.push(a[b]);
  3016. });
  3017. return c;
  3018. };
  3019. goog.array.concatMap = function (a, b, c) {
  3020. return goog.array.concat.apply([], goog.array.map(a, b, c));
  3021. };
  3022. goog.crypt = {};
  3023. goog.crypt.stringToByteArray = function (a) {
  3024. for (var b = [], c = 0, d = 0; d < a.length; d++) {
  3025. var e = a.charCodeAt(d);
  3026. 255 < e && (b[c++] = e & 255, e >>= 8);
  3027. b[c++] = e;
  3028. }
  3029. return b;
  3030. };
  3031. goog.crypt.byteArrayToString = function (a) {
  3032. if (8192 >= a.length) return String.fromCharCode.apply(null, a);
  3033. for (var b = "", c = 0; c < a.length; c += 8192) {
  3034. var d = goog.array.slice(a, c, c + 8192);
  3035. b += String.fromCharCode.apply(null, d);
  3036. }
  3037. return b;
  3038. };
  3039. goog.crypt.byteArrayToHex = function (a, b) {
  3040. return goog.array.map(a, function (a) {
  3041. a = a.toString(16);
  3042. return 1 < a.length ? a : "0" + a;
  3043. }).join(b || "");
  3044. };
  3045. goog.crypt.hexToByteArray = function (a) {
  3046. goog.asserts.assert(0 == a.length % 2, "Key string length must be multiple of 2");
  3047. for (var b = [], c = 0; c < a.length; c += 2) {
  3048. b.push(parseInt(a.substring(c, c + 2), 16));
  3049. }
  3050. return b;
  3051. };
  3052. goog.crypt.stringToUtf8ByteArray = function (a) {
  3053. for (var b = [], c = 0, d = 0; d < a.length; d++) {
  3054. var e = a.charCodeAt(d);
  3055. 128 > e ? b[c++] = e : (2048 > e ? b[c++] = e >> 6 | 192 : (55296 == (e & 64512) && d + 1 < a.length && 56320 == (a.charCodeAt(d + 1) & 64512) ? (e = 65536 + ((e & 1023) << 10) + (a.charCodeAt(++d) & 1023), b[c++] = e >> 18 | 240, b[c++] = e >> 12 & 63 | 128) : b[c++] = e >> 12 | 224, b[c++] = e >> 6 & 63 | 128), b[c++] = e & 63 | 128);
  3056. }
  3057. return b;
  3058. };
  3059. goog.crypt.utf8ByteArrayToString = function (a) {
  3060. for (var b = [], c = 0, d = 0; c < a.length;) {
  3061. var e = a[c++];
  3062. if (128 > e) b[d++] = String.fromCharCode(e);else if (191 < e && 224 > e) {
  3063. var f = a[c++];
  3064. b[d++] = String.fromCharCode((e & 31) << 6 | f & 63);
  3065. } else if (239 < e && 365 > e) {
  3066. f = a[c++];
  3067. var g = a[c++],
  3068. h = a[c++];
  3069. e = ((e & 7) << 18 | (f & 63) << 12 | (g & 63) << 6 | h & 63) - 65536;
  3070. b[d++] = String.fromCharCode(55296 + (e >> 10));
  3071. b[d++] = String.fromCharCode(56320 + (e & 1023));
  3072. } else f = a[c++], g = a[c++], b[d++] = String.fromCharCode((e & 15) << 12 | (f & 63) << 6 | g & 63);
  3073. }
  3074. return b.join("");
  3075. };
  3076. goog.crypt.xorByteArray = function (a, b) {
  3077. goog.asserts.assert(a.length == b.length, "XOR array lengths must match");
  3078. for (var c = [], d = 0; d < a.length; d++) {
  3079. c.push(a[d] ^ b[d]);
  3080. }
  3081. return c;
  3082. };
  3083. goog.dom.asserts = {};
  3084. goog.dom.asserts.assertIsLocation = function (a) {
  3085. if (goog.asserts.ENABLE_ASSERTS) {
  3086. var b = goog.dom.asserts.getWindow_(a);
  3087. b && (!a || !(a instanceof b.Location) && a instanceof b.Element) && goog.asserts.fail("Argument is not a Location (or a non-Element mock); got: %s", goog.dom.asserts.debugStringForType_(a));
  3088. }
  3089. return a;
  3090. };
  3091. goog.dom.asserts.assertIsElementType_ = function (a, b) {
  3092. if (goog.asserts.ENABLE_ASSERTS) {
  3093. var c = goog.dom.asserts.getWindow_(a);
  3094. c && "undefined" != typeof c[b] && (a && (a instanceof c[b] || !(a instanceof c.Location || a instanceof c.Element)) || goog.asserts.fail("Argument is not a %s (or a non-Element, non-Location mock); got: %s", b, goog.dom.asserts.debugStringForType_(a)));
  3095. }
  3096. return a;
  3097. };
  3098. goog.dom.asserts.assertIsHTMLAnchorElement = function (a) {
  3099. return goog.dom.asserts.assertIsElementType_(a, "HTMLAnchorElement");
  3100. };
  3101. goog.dom.asserts.assertIsHTMLButtonElement = function (a) {
  3102. return goog.dom.asserts.assertIsElementType_(a, "HTMLButtonElement");
  3103. };
  3104. goog.dom.asserts.assertIsHTMLLinkElement = function (a) {
  3105. return goog.dom.asserts.assertIsElementType_(a, "HTMLLinkElement");
  3106. };
  3107. goog.dom.asserts.assertIsHTMLImageElement = function (a) {
  3108. return goog.dom.asserts.assertIsElementType_(a, "HTMLImageElement");
  3109. };
  3110. goog.dom.asserts.assertIsHTMLAudioElement = function (a) {
  3111. return goog.dom.asserts.assertIsElementType_(a, "HTMLAudioElement");
  3112. };
  3113. goog.dom.asserts.assertIsHTMLVideoElement = function (a) {
  3114. return goog.dom.asserts.assertIsElementType_(a, "HTMLVideoElement");
  3115. };
  3116. goog.dom.asserts.assertIsHTMLInputElement = function (a) {
  3117. return goog.dom.asserts.assertIsElementType_(a, "HTMLInputElement");
  3118. };
  3119. goog.dom.asserts.assertIsHTMLTextAreaElement = function (a) {
  3120. return goog.dom.asserts.assertIsElementType_(a, "HTMLTextAreaElement");
  3121. };
  3122. goog.dom.asserts.assertIsHTMLCanvasElement = function (a) {
  3123. return goog.dom.asserts.assertIsElementType_(a, "HTMLCanvasElement");
  3124. };
  3125. goog.dom.asserts.assertIsHTMLEmbedElement = function (a) {
  3126. return goog.dom.asserts.assertIsElementType_(a, "HTMLEmbedElement");
  3127. };
  3128. goog.dom.asserts.assertIsHTMLFormElement = function (a) {
  3129. return goog.dom.asserts.assertIsElementType_(a, "HTMLFormElement");
  3130. };
  3131. goog.dom.asserts.assertIsHTMLFrameElement = function (a) {
  3132. return goog.dom.asserts.assertIsElementType_(a, "HTMLFrameElement");
  3133. };
  3134. goog.dom.asserts.assertIsHTMLIFrameElement = function (a) {
  3135. return goog.dom.asserts.assertIsElementType_(a, "HTMLIFrameElement");
  3136. };
  3137. goog.dom.asserts.assertIsHTMLObjectElement = function (a) {
  3138. return goog.dom.asserts.assertIsElementType_(a, "HTMLObjectElement");
  3139. };
  3140. goog.dom.asserts.assertIsHTMLScriptElement = function (a) {
  3141. return goog.dom.asserts.assertIsElementType_(a, "HTMLScriptElement");
  3142. };
  3143. goog.dom.asserts.debugStringForType_ = function (a) {
  3144. if (goog.isObject(a)) try {
  3145. return a.constructor.displayName || a.constructor.name || Object.prototype.toString.call(a);
  3146. } catch (b) {
  3147. return "<object could not be stringified>";
  3148. } else return void 0 === a ? "undefined" : null === a ? "null" : _typeof(a);
  3149. };
  3150. goog.dom.asserts.getWindow_ = function (a) {
  3151. try {
  3152. var b = a && a.ownerDocument,
  3153. c = b && (b.defaultView || b.parentWindow);
  3154. c = c || goog.global;
  3155. if (c.Element && c.Location) return c;
  3156. } catch (d) {}
  3157. return null;
  3158. };
  3159. goog.functions = {};
  3160. goog.functions.constant = function (a) {
  3161. return function () {
  3162. return a;
  3163. };
  3164. };
  3165. goog.functions.FALSE = function () {
  3166. return !1;
  3167. };
  3168. goog.functions.TRUE = function () {
  3169. return !0;
  3170. };
  3171. goog.functions.NULL = function () {
  3172. return null;
  3173. };
  3174. goog.functions.identity = function (a, b) {
  3175. return a;
  3176. };
  3177. goog.functions.error = function (a) {
  3178. return function () {
  3179. throw Error(a);
  3180. };
  3181. };
  3182. goog.functions.fail = function (a) {
  3183. return function () {
  3184. throw a;
  3185. };
  3186. };
  3187. goog.functions.lock = function (a, b) {
  3188. b = b || 0;
  3189. return function () {
  3190. return a.apply(this, Array.prototype.slice.call(arguments, 0, b));
  3191. };
  3192. };
  3193. goog.functions.nth = function (a) {
  3194. return function () {
  3195. return arguments[a];
  3196. };
  3197. };
  3198. goog.functions.partialRight = function (a, b) {
  3199. var c = Array.prototype.slice.call(arguments, 1);
  3200. return function () {
  3201. var b = Array.prototype.slice.call(arguments);
  3202. b.push.apply(b, c);
  3203. return a.apply(this, b);
  3204. };
  3205. };
  3206. goog.functions.withReturnValue = function (a, b) {
  3207. return goog.functions.sequence(a, goog.functions.constant(b));
  3208. };
  3209. goog.functions.equalTo = function (a, b) {
  3210. return function (c) {
  3211. return b ? a == c : a === c;
  3212. };
  3213. };
  3214. goog.functions.compose = function (a, b) {
  3215. var c = arguments,
  3216. d = c.length;
  3217. return function () {
  3218. var a;
  3219. d && (a = c[d - 1].apply(this, arguments));
  3220. for (var b = d - 2; 0 <= b; b--) {
  3221. a = c[b].call(this, a);
  3222. }
  3223. return a;
  3224. };
  3225. };
  3226. goog.functions.sequence = function (a) {
  3227. var b = arguments,
  3228. c = b.length;
  3229. return function () {
  3230. for (var a, e = 0; e < c; e++) {
  3231. a = b[e].apply(this, arguments);
  3232. }
  3233. return a;
  3234. };
  3235. };
  3236. goog.functions.and = function (a) {
  3237. var b = arguments,
  3238. c = b.length;
  3239. return function () {
  3240. for (var a = 0; a < c; a++) {
  3241. if (!b[a].apply(this, arguments)) return !1;
  3242. }
  3243. return !0;
  3244. };
  3245. };
  3246. goog.functions.or = function (a) {
  3247. var b = arguments,
  3248. c = b.length;
  3249. return function () {
  3250. for (var a = 0; a < c; a++) {
  3251. if (b[a].apply(this, arguments)) return !0;
  3252. }
  3253. return !1;
  3254. };
  3255. };
  3256. goog.functions.not = function (a) {
  3257. return function () {
  3258. return !a.apply(this, arguments);
  3259. };
  3260. };
  3261. goog.functions.create = function (a, b) {
  3262. var c = function c() {};
  3263. c.prototype = a.prototype;
  3264. c = new c();
  3265. a.apply(c, Array.prototype.slice.call(arguments, 1));
  3266. return c;
  3267. };
  3268. goog.functions.CACHE_RETURN_VALUE = !0;
  3269. goog.functions.cacheReturnValue = function (a) {
  3270. var b = !1,
  3271. c;
  3272. return function () {
  3273. if (!goog.functions.CACHE_RETURN_VALUE) return a();
  3274. b || (c = a(), b = !0);
  3275. return c;
  3276. };
  3277. };
  3278. goog.functions.once = function (a) {
  3279. var b = a;
  3280. return function () {
  3281. if (b) {
  3282. var a = b;
  3283. b = null;
  3284. a();
  3285. }
  3286. };
  3287. };
  3288. goog.functions.debounce = function (a, b, c) {
  3289. var d = 0;
  3290. return function (e) {
  3291. goog.global.clearTimeout(d);
  3292. var f = arguments;
  3293. d = goog.global.setTimeout(function () {
  3294. a.apply(c, f);
  3295. }, b);
  3296. };
  3297. };
  3298. goog.functions.throttle = function (a, b, c) {
  3299. var d = 0,
  3300. e = !1,
  3301. f = [],
  3302. g = function g() {
  3303. d = 0;
  3304. e && (e = !1, h());
  3305. },
  3306. h = function h() {
  3307. d = goog.global.setTimeout(g, b);
  3308. a.apply(c, f);
  3309. };
  3310. return function (a) {
  3311. f = arguments;
  3312. d ? e = !0 : h();
  3313. };
  3314. };
  3315. goog.functions.rateLimit = function (a, b, c) {
  3316. var d = 0,
  3317. e = function e() {
  3318. d = 0;
  3319. };
  3320. return function (f) {
  3321. d || (d = goog.global.setTimeout(e, b), a.apply(c, arguments));
  3322. };
  3323. };
  3324. goog.dom.HtmlElement = function () {};
  3325. goog.dom.TagName = function (a) {
  3326. this.tagName_ = a;
  3327. };
  3328. goog.dom.TagName.prototype.toString = function () {
  3329. return this.tagName_;
  3330. };
  3331. goog.dom.TagName.A = new goog.dom.TagName("A");
  3332. goog.dom.TagName.ABBR = new goog.dom.TagName("ABBR");
  3333. goog.dom.TagName.ACRONYM = new goog.dom.TagName("ACRONYM");
  3334. goog.dom.TagName.ADDRESS = new goog.dom.TagName("ADDRESS");
  3335. goog.dom.TagName.APPLET = new goog.dom.TagName("APPLET");
  3336. goog.dom.TagName.AREA = new goog.dom.TagName("AREA");
  3337. goog.dom.TagName.ARTICLE = new goog.dom.TagName("ARTICLE");
  3338. goog.dom.TagName.ASIDE = new goog.dom.TagName("ASIDE");
  3339. goog.dom.TagName.AUDIO = new goog.dom.TagName("AUDIO");
  3340. goog.dom.TagName.B = new goog.dom.TagName("B");
  3341. goog.dom.TagName.BASE = new goog.dom.TagName("BASE");
  3342. goog.dom.TagName.BASEFONT = new goog.dom.TagName("BASEFONT");
  3343. goog.dom.TagName.BDI = new goog.dom.TagName("BDI");
  3344. goog.dom.TagName.BDO = new goog.dom.TagName("BDO");
  3345. goog.dom.TagName.BIG = new goog.dom.TagName("BIG");
  3346. goog.dom.TagName.BLOCKQUOTE = new goog.dom.TagName("BLOCKQUOTE");
  3347. goog.dom.TagName.BODY = new goog.dom.TagName("BODY");
  3348. goog.dom.TagName.BR = new goog.dom.TagName("BR");
  3349. goog.dom.TagName.BUTTON = new goog.dom.TagName("BUTTON");
  3350. goog.dom.TagName.CANVAS = new goog.dom.TagName("CANVAS");
  3351. goog.dom.TagName.CAPTION = new goog.dom.TagName("CAPTION");
  3352. goog.dom.TagName.CENTER = new goog.dom.TagName("CENTER");
  3353. goog.dom.TagName.CITE = new goog.dom.TagName("CITE");
  3354. goog.dom.TagName.CODE = new goog.dom.TagName("CODE");
  3355. goog.dom.TagName.COL = new goog.dom.TagName("COL");
  3356. goog.dom.TagName.COLGROUP = new goog.dom.TagName("COLGROUP");
  3357. goog.dom.TagName.COMMAND = new goog.dom.TagName("COMMAND");
  3358. goog.dom.TagName.DATA = new goog.dom.TagName("DATA");
  3359. goog.dom.TagName.DATALIST = new goog.dom.TagName("DATALIST");
  3360. goog.dom.TagName.DD = new goog.dom.TagName("DD");
  3361. goog.dom.TagName.DEL = new goog.dom.TagName("DEL");
  3362. goog.dom.TagName.DETAILS = new goog.dom.TagName("DETAILS");
  3363. goog.dom.TagName.DFN = new goog.dom.TagName("DFN");
  3364. goog.dom.TagName.DIALOG = new goog.dom.TagName("DIALOG");
  3365. goog.dom.TagName.DIR = new goog.dom.TagName("DIR");
  3366. goog.dom.TagName.DIV = new goog.dom.TagName("DIV");
  3367. goog.dom.TagName.DL = new goog.dom.TagName("DL");
  3368. goog.dom.TagName.DT = new goog.dom.TagName("DT");
  3369. goog.dom.TagName.EM = new goog.dom.TagName("EM");
  3370. goog.dom.TagName.EMBED = new goog.dom.TagName("EMBED");
  3371. goog.dom.TagName.FIELDSET = new goog.dom.TagName("FIELDSET");
  3372. goog.dom.TagName.FIGCAPTION = new goog.dom.TagName("FIGCAPTION");
  3373. goog.dom.TagName.FIGURE = new goog.dom.TagName("FIGURE");
  3374. goog.dom.TagName.FONT = new goog.dom.TagName("FONT");
  3375. goog.dom.TagName.FOOTER = new goog.dom.TagName("FOOTER");
  3376. goog.dom.TagName.FORM = new goog.dom.TagName("FORM");
  3377. goog.dom.TagName.FRAME = new goog.dom.TagName("FRAME");
  3378. goog.dom.TagName.FRAMESET = new goog.dom.TagName("FRAMESET");
  3379. goog.dom.TagName.H1 = new goog.dom.TagName("H1");
  3380. goog.dom.TagName.H2 = new goog.dom.TagName("H2");
  3381. goog.dom.TagName.H3 = new goog.dom.TagName("H3");
  3382. goog.dom.TagName.H4 = new goog.dom.TagName("H4");
  3383. goog.dom.TagName.H5 = new goog.dom.TagName("H5");
  3384. goog.dom.TagName.H6 = new goog.dom.TagName("H6");
  3385. goog.dom.TagName.HEAD = new goog.dom.TagName("HEAD");
  3386. goog.dom.TagName.HEADER = new goog.dom.TagName("HEADER");
  3387. goog.dom.TagName.HGROUP = new goog.dom.TagName("HGROUP");
  3388. goog.dom.TagName.HR = new goog.dom.TagName("HR");
  3389. goog.dom.TagName.HTML = new goog.dom.TagName("HTML");
  3390. goog.dom.TagName.I = new goog.dom.TagName("I");
  3391. goog.dom.TagName.IFRAME = new goog.dom.TagName("IFRAME");
  3392. goog.dom.TagName.IMG = new goog.dom.TagName("IMG");
  3393. goog.dom.TagName.INPUT = new goog.dom.TagName("INPUT");
  3394. goog.dom.TagName.INS = new goog.dom.TagName("INS");
  3395. goog.dom.TagName.ISINDEX = new goog.dom.TagName("ISINDEX");
  3396. goog.dom.TagName.KBD = new goog.dom.TagName("KBD");
  3397. goog.dom.TagName.KEYGEN = new goog.dom.TagName("KEYGEN");
  3398. goog.dom.TagName.LABEL = new goog.dom.TagName("LABEL");
  3399. goog.dom.TagName.LEGEND = new goog.dom.TagName("LEGEND");
  3400. goog.dom.TagName.LI = new goog.dom.TagName("LI");
  3401. goog.dom.TagName.LINK = new goog.dom.TagName("LINK");
  3402. goog.dom.TagName.MAIN = new goog.dom.TagName("MAIN");
  3403. goog.dom.TagName.MAP = new goog.dom.TagName("MAP");
  3404. goog.dom.TagName.MARK = new goog.dom.TagName("MARK");
  3405. goog.dom.TagName.MATH = new goog.dom.TagName("MATH");
  3406. goog.dom.TagName.MENU = new goog.dom.TagName("MENU");
  3407. goog.dom.TagName.MENUITEM = new goog.dom.TagName("MENUITEM");
  3408. goog.dom.TagName.META = new goog.dom.TagName("META");
  3409. goog.dom.TagName.METER = new goog.dom.TagName("METER");
  3410. goog.dom.TagName.NAV = new goog.dom.TagName("NAV");
  3411. goog.dom.TagName.NOFRAMES = new goog.dom.TagName("NOFRAMES");
  3412. goog.dom.TagName.NOSCRIPT = new goog.dom.TagName("NOSCRIPT");
  3413. goog.dom.TagName.OBJECT = new goog.dom.TagName("OBJECT");
  3414. goog.dom.TagName.OL = new goog.dom.TagName("OL");
  3415. goog.dom.TagName.OPTGROUP = new goog.dom.TagName("OPTGROUP");
  3416. goog.dom.TagName.OPTION = new goog.dom.TagName("OPTION");
  3417. goog.dom.TagName.OUTPUT = new goog.dom.TagName("OUTPUT");
  3418. goog.dom.TagName.P = new goog.dom.TagName("P");
  3419. goog.dom.TagName.PARAM = new goog.dom.TagName("PARAM");
  3420. goog.dom.TagName.PICTURE = new goog.dom.TagName("PICTURE");
  3421. goog.dom.TagName.PRE = new goog.dom.TagName("PRE");
  3422. goog.dom.TagName.PROGRESS = new goog.dom.TagName("PROGRESS");
  3423. goog.dom.TagName.Q = new goog.dom.TagName("Q");
  3424. goog.dom.TagName.RP = new goog.dom.TagName("RP");
  3425. goog.dom.TagName.RT = new goog.dom.TagName("RT");
  3426. goog.dom.TagName.RTC = new goog.dom.TagName("RTC");
  3427. goog.dom.TagName.RUBY = new goog.dom.TagName("RUBY");
  3428. goog.dom.TagName.S = new goog.dom.TagName("S");
  3429. goog.dom.TagName.SAMP = new goog.dom.TagName("SAMP");
  3430. goog.dom.TagName.SCRIPT = new goog.dom.TagName("SCRIPT");
  3431. goog.dom.TagName.SECTION = new goog.dom.TagName("SECTION");
  3432. goog.dom.TagName.SELECT = new goog.dom.TagName("SELECT");
  3433. goog.dom.TagName.SMALL = new goog.dom.TagName("SMALL");
  3434. goog.dom.TagName.SOURCE = new goog.dom.TagName("SOURCE");
  3435. goog.dom.TagName.SPAN = new goog.dom.TagName("SPAN");
  3436. goog.dom.TagName.STRIKE = new goog.dom.TagName("STRIKE");
  3437. goog.dom.TagName.STRONG = new goog.dom.TagName("STRONG");
  3438. goog.dom.TagName.STYLE = new goog.dom.TagName("STYLE");
  3439. goog.dom.TagName.SUB = new goog.dom.TagName("SUB");
  3440. goog.dom.TagName.SUMMARY = new goog.dom.TagName("SUMMARY");
  3441. goog.dom.TagName.SUP = new goog.dom.TagName("SUP");
  3442. goog.dom.TagName.SVG = new goog.dom.TagName("SVG");
  3443. goog.dom.TagName.TABLE = new goog.dom.TagName("TABLE");
  3444. goog.dom.TagName.TBODY = new goog.dom.TagName("TBODY");
  3445. goog.dom.TagName.TD = new goog.dom.TagName("TD");
  3446. goog.dom.TagName.TEMPLATE = new goog.dom.TagName("TEMPLATE");
  3447. goog.dom.TagName.TEXTAREA = new goog.dom.TagName("TEXTAREA");
  3448. goog.dom.TagName.TFOOT = new goog.dom.TagName("TFOOT");
  3449. goog.dom.TagName.TH = new goog.dom.TagName("TH");
  3450. goog.dom.TagName.THEAD = new goog.dom.TagName("THEAD");
  3451. goog.dom.TagName.TIME = new goog.dom.TagName("TIME");
  3452. goog.dom.TagName.TITLE = new goog.dom.TagName("TITLE");
  3453. goog.dom.TagName.TR = new goog.dom.TagName("TR");
  3454. goog.dom.TagName.TRACK = new goog.dom.TagName("TRACK");
  3455. goog.dom.TagName.TT = new goog.dom.TagName("TT");
  3456. goog.dom.TagName.U = new goog.dom.TagName("U");
  3457. goog.dom.TagName.UL = new goog.dom.TagName("UL");
  3458. goog.dom.TagName.VAR = new goog.dom.TagName("VAR");
  3459. goog.dom.TagName.VIDEO = new goog.dom.TagName("VIDEO");
  3460. goog.dom.TagName.WBR = new goog.dom.TagName("WBR");
  3461. goog.dom.tags = {};
  3462. goog.dom.tags.VOID_TAGS_ = {
  3463. area: !0,
  3464. base: !0,
  3465. br: !0,
  3466. col: !0,
  3467. command: !0,
  3468. embed: !0,
  3469. hr: !0,
  3470. img: !0,
  3471. input: !0,
  3472. keygen: !0,
  3473. link: !0,
  3474. meta: !0,
  3475. param: !0,
  3476. source: !0,
  3477. track: !0,
  3478. wbr: !0
  3479. };
  3480. goog.dom.tags.isVoidTag = function (a) {
  3481. return !0 === goog.dom.tags.VOID_TAGS_[a];
  3482. };
  3483. goog.html = {};
  3484. goog.html.trustedtypes = {};
  3485. goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY = goog.TRUSTED_TYPES_POLICY_NAME ? goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME + "#html") : null;
  3486. goog.string = {};
  3487. goog.string.TypedString = function () {};
  3488. goog.string.Const = function (a, b) {
  3489. this.stringConstValueWithSecurityContract__googStringSecurityPrivate_ = a === goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_ && b || "";
  3490. this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_ = goog.string.Const.TYPE_MARKER_;
  3491. };
  3492. goog.string.Const.prototype.implementsGoogStringTypedString = !0;
  3493. goog.string.Const.prototype.getTypedStringValue = function () {
  3494. return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_;
  3495. };
  3496. goog.DEBUG && (goog.string.Const.prototype.toString = function () {
  3497. return "Const{" + this.stringConstValueWithSecurityContract__googStringSecurityPrivate_ + "}";
  3498. });
  3499. goog.string.Const.unwrap = function (a) {
  3500. if (a instanceof goog.string.Const && a.constructor === goog.string.Const && a.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_ === goog.string.Const.TYPE_MARKER_) return a.stringConstValueWithSecurityContract__googStringSecurityPrivate_;
  3501. goog.asserts.fail("expected object of type Const, got '" + a + "'");
  3502. return "type_error:Const";
  3503. };
  3504. goog.string.Const.from = function (a) {
  3505. return new goog.string.Const(goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_, a);
  3506. };
  3507. goog.string.Const.TYPE_MARKER_ = {};
  3508. goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_ = {};
  3509. goog.string.Const.EMPTY = goog.string.Const.from("");
  3510. goog.html.SafeScript = function () {
  3511. this.privateDoNotAccessOrElseSafeScriptWrappedValue_ = "";
  3512. this.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;
  3513. };
  3514. goog.html.SafeScript.prototype.implementsGoogStringTypedString = !0;
  3515. goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {};
  3516. goog.html.SafeScript.fromConstant = function (a) {
  3517. a = goog.string.Const.unwrap(a);
  3518. return 0 === a.length ? goog.html.SafeScript.EMPTY : goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(a);
  3519. };
  3520. goog.html.SafeScript.fromConstantAndArgs = function (a, b) {
  3521. for (var c = [], d = 1; d < arguments.length; d++) {
  3522. c.push(goog.html.SafeScript.stringify_(arguments[d]));
  3523. }
  3524. return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse("(" + goog.string.Const.unwrap(a) + ")(" + c.join(", ") + ");");
  3525. };
  3526. goog.html.SafeScript.fromJson = function (a) {
  3527. return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(goog.html.SafeScript.stringify_(a));
  3528. };
  3529. goog.html.SafeScript.prototype.getTypedStringValue = function () {
  3530. return this.privateDoNotAccessOrElseSafeScriptWrappedValue_.toString();
  3531. };
  3532. goog.DEBUG && (goog.html.SafeScript.prototype.toString = function () {
  3533. return "SafeScript{" + this.privateDoNotAccessOrElseSafeScriptWrappedValue_ + "}";
  3534. });
  3535. goog.html.SafeScript.unwrap = function (a) {
  3536. return goog.html.SafeScript.unwrapTrustedScript(a).toString();
  3537. };
  3538. goog.html.SafeScript.unwrapTrustedScript = function (a) {
  3539. if (a instanceof goog.html.SafeScript && a.constructor === goog.html.SafeScript && a.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ === goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_) return a.privateDoNotAccessOrElseSafeScriptWrappedValue_;
  3540. goog.asserts.fail("expected object of type SafeScript, got '" + a + "' of type " + goog.typeOf(a));
  3541. return "type_error:SafeScript";
  3542. };
  3543. goog.html.SafeScript.stringify_ = function (a) {
  3544. return JSON.stringify(a).replace(/</g, "\\x3c");
  3545. };
  3546. goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse = function (a) {
  3547. return new goog.html.SafeScript().initSecurityPrivateDoNotAccessOrElse_(a);
  3548. };
  3549. goog.html.SafeScript.prototype.initSecurityPrivateDoNotAccessOrElse_ = function (a) {
  3550. this.privateDoNotAccessOrElseSafeScriptWrappedValue_ = goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY ? goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createScript(a) : a;
  3551. return this;
  3552. };
  3553. goog.html.SafeScript.EMPTY = goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse("");
  3554. goog.fs = {};
  3555. goog.fs.url = {};
  3556. goog.fs.url.createObjectUrl = function (a) {
  3557. return goog.fs.url.getUrlObject_().createObjectURL(a);
  3558. };
  3559. goog.fs.url.revokeObjectUrl = function (a) {
  3560. goog.fs.url.getUrlObject_().revokeObjectURL(a);
  3561. };
  3562. goog.fs.url.UrlObject_ = function () {};
  3563. goog.fs.url.UrlObject_.prototype.createObjectURL = function (a) {};
  3564. goog.fs.url.UrlObject_.prototype.revokeObjectURL = function (a) {};
  3565. goog.fs.url.getUrlObject_ = function () {
  3566. var a = goog.fs.url.findUrlObject_();
  3567. if (null != a) return a;
  3568. throw Error("This browser doesn't seem to support blob URLs");
  3569. };
  3570. goog.fs.url.findUrlObject_ = function () {
  3571. return void 0 !== goog.global.URL && void 0 !== goog.global.URL.createObjectURL ? goog.global.URL : void 0 !== goog.global.webkitURL && void 0 !== goog.global.webkitURL.createObjectURL ? goog.global.webkitURL : void 0 !== goog.global.createObjectURL ? goog.global : null;
  3572. };
  3573. goog.fs.url.browserSupportsObjectUrls = function () {
  3574. return null != goog.fs.url.findUrlObject_();
  3575. };
  3576. goog.fs.blob = {};
  3577. goog.fs.blob.getBlob = function (a) {
  3578. var b = goog.global.BlobBuilder || goog.global.WebKitBlobBuilder;
  3579. if (void 0 !== b) {
  3580. b = new b();
  3581. for (var c = 0; c < arguments.length; c++) {
  3582. b.append(arguments[c]);
  3583. }
  3584. return b.getBlob();
  3585. }
  3586. return goog.fs.blob.getBlobWithProperties(goog.array.toArray(arguments));
  3587. };
  3588. goog.fs.blob.getBlobWithProperties = function (a, b, c) {
  3589. var d = goog.global.BlobBuilder || goog.global.WebKitBlobBuilder;
  3590. if (void 0 !== d) {
  3591. d = new d();
  3592. for (var e = 0; e < a.length; e++) {
  3593. d.append(a[e], c);
  3594. }
  3595. return d.getBlob(b);
  3596. }
  3597. if (void 0 !== goog.global.Blob) return d = {}, b && (d.type = b), c && (d.endings = c), new Blob(a, d);
  3598. throw Error("This browser doesn't seem to support creating Blobs");
  3599. };
  3600. goog.i18n = {};
  3601. goog.i18n.bidi = {};
  3602. goog.i18n.bidi.FORCE_RTL = !1;
  3603. goog.i18n.bidi.IS_RTL = goog.i18n.bidi.FORCE_RTL || ("ar" == goog.LOCALE.substring(0, 2).toLowerCase() || "fa" == goog.LOCALE.substring(0, 2).toLowerCase() || "he" == goog.LOCALE.substring(0, 2).toLowerCase() || "iw" == goog.LOCALE.substring(0, 2).toLowerCase() || "ps" == goog.LOCALE.substring(0, 2).toLowerCase() || "sd" == goog.LOCALE.substring(0, 2).toLowerCase() || "ug" == goog.LOCALE.substring(0, 2).toLowerCase() || "ur" == goog.LOCALE.substring(0, 2).toLowerCase() || "yi" == goog.LOCALE.substring(0, 2).toLowerCase()) && (2 == goog.LOCALE.length || "-" == goog.LOCALE.substring(2, 3) || "_" == goog.LOCALE.substring(2, 3)) || 3 <= goog.LOCALE.length && "ckb" == goog.LOCALE.substring(0, 3).toLowerCase() && (3 == goog.LOCALE.length || "-" == goog.LOCALE.substring(3, 4) || "_" == goog.LOCALE.substring(3, 4)) || 7 <= goog.LOCALE.length && ("-" == goog.LOCALE.substring(2, 3) || "_" == goog.LOCALE.substring(2, 3)) && ("adlm" == goog.LOCALE.substring(3, 7).toLowerCase() || "arab" == goog.LOCALE.substring(3, 7).toLowerCase() || "hebr" == goog.LOCALE.substring(3, 7).toLowerCase() || "nkoo" == goog.LOCALE.substring(3, 7).toLowerCase() || "rohg" == goog.LOCALE.substring(3, 7).toLowerCase() || "thaa" == goog.LOCALE.substring(3, 7).toLowerCase()) || 8 <= goog.LOCALE.length && ("-" == goog.LOCALE.substring(3, 4) || "_" == goog.LOCALE.substring(3, 4)) && ("adlm" == goog.LOCALE.substring(4, 8).toLowerCase() || "arab" == goog.LOCALE.substring(4, 8).toLowerCase() || "hebr" == goog.LOCALE.substring(4, 8).toLowerCase() || "nkoo" == goog.LOCALE.substring(4, 8).toLowerCase() || "rohg" == goog.LOCALE.substring(4, 8).toLowerCase() || "thaa" == goog.LOCALE.substring(4, 8).toLowerCase());
  3604. goog.i18n.bidi.Format = {
  3605. LRE: "\u202A",
  3606. RLE: "\u202B",
  3607. PDF: "\u202C",
  3608. LRM: "\u200E",
  3609. RLM: "\u200F"
  3610. };
  3611. goog.i18n.bidi.Dir = {
  3612. LTR: 1,
  3613. RTL: -1,
  3614. NEUTRAL: 0
  3615. };
  3616. goog.i18n.bidi.RIGHT = "right";
  3617. goog.i18n.bidi.LEFT = "left";
  3618. goog.i18n.bidi.I18N_RIGHT = goog.i18n.bidi.IS_RTL ? goog.i18n.bidi.LEFT : goog.i18n.bidi.RIGHT;
  3619. goog.i18n.bidi.I18N_LEFT = goog.i18n.bidi.IS_RTL ? goog.i18n.bidi.RIGHT : goog.i18n.bidi.LEFT;
  3620. goog.i18n.bidi.toDir = function (a, b) {
  3621. return "number" == typeof a ? 0 < a ? goog.i18n.bidi.Dir.LTR : 0 > a ? goog.i18n.bidi.Dir.RTL : b ? null : goog.i18n.bidi.Dir.NEUTRAL : null == a ? null : a ? goog.i18n.bidi.Dir.RTL : goog.i18n.bidi.Dir.LTR;
  3622. };
  3623. goog.i18n.bidi.ltrChars_ = "A-Za-z\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u0300-\u0590\u0900-\u1FFF\u200E\u2C00-\uD801\uD804-\uD839\uD83C-\uDBFF\uF900-\uFB1C\uFE00-\uFE6F\uFEFD-\uFFFF";
  3624. goog.i18n.bidi.rtlChars_ = "\u0591-\u06EF\u06FA-\u08FF\u200F\uD802-\uD803\uD83A-\uD83B\uFB1D-\uFDFF\uFE70-\uFEFC";
  3625. goog.i18n.bidi.htmlSkipReg_ = /<[^>]*>|&[^;]+;/g;
  3626. goog.i18n.bidi.stripHtmlIfNeeded_ = function (a, b) {
  3627. return b ? a.replace(goog.i18n.bidi.htmlSkipReg_, "") : a;
  3628. };
  3629. goog.i18n.bidi.rtlCharReg_ = new RegExp("[" + goog.i18n.bidi.rtlChars_ + "]");
  3630. goog.i18n.bidi.ltrCharReg_ = new RegExp("[" + goog.i18n.bidi.ltrChars_ + "]");
  3631. goog.i18n.bidi.hasAnyRtl = function (a, b) {
  3632. return goog.i18n.bidi.rtlCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a, b));
  3633. };
  3634. goog.i18n.bidi.hasRtlChar = goog.i18n.bidi.hasAnyRtl;
  3635. goog.i18n.bidi.hasAnyLtr = function (a, b) {
  3636. return goog.i18n.bidi.ltrCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a, b));
  3637. };
  3638. goog.i18n.bidi.ltrRe_ = new RegExp("^[" + goog.i18n.bidi.ltrChars_ + "]");
  3639. goog.i18n.bidi.rtlRe_ = new RegExp("^[" + goog.i18n.bidi.rtlChars_ + "]");
  3640. goog.i18n.bidi.isRtlChar = function (a) {
  3641. return goog.i18n.bidi.rtlRe_.test(a);
  3642. };
  3643. goog.i18n.bidi.isLtrChar = function (a) {
  3644. return goog.i18n.bidi.ltrRe_.test(a);
  3645. };
  3646. goog.i18n.bidi.isNeutralChar = function (a) {
  3647. return !goog.i18n.bidi.isLtrChar(a) && !goog.i18n.bidi.isRtlChar(a);
  3648. };
  3649. goog.i18n.bidi.ltrDirCheckRe_ = new RegExp("^[^" + goog.i18n.bidi.rtlChars_ + "]*[" + goog.i18n.bidi.ltrChars_ + "]");
  3650. goog.i18n.bidi.rtlDirCheckRe_ = new RegExp("^[^" + goog.i18n.bidi.ltrChars_ + "]*[" + goog.i18n.bidi.rtlChars_ + "]");
  3651. goog.i18n.bidi.startsWithRtl = function (a, b) {
  3652. return goog.i18n.bidi.rtlDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a, b));
  3653. };
  3654. goog.i18n.bidi.isRtlText = goog.i18n.bidi.startsWithRtl;
  3655. goog.i18n.bidi.startsWithLtr = function (a, b) {
  3656. return goog.i18n.bidi.ltrDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a, b));
  3657. };
  3658. goog.i18n.bidi.isLtrText = goog.i18n.bidi.startsWithLtr;
  3659. goog.i18n.bidi.isRequiredLtrRe_ = /^http:\/\/.*/;
  3660. goog.i18n.bidi.isNeutralText = function (a, b) {
  3661. a = goog.i18n.bidi.stripHtmlIfNeeded_(a, b);
  3662. return goog.i18n.bidi.isRequiredLtrRe_.test(a) || !goog.i18n.bidi.hasAnyLtr(a) && !goog.i18n.bidi.hasAnyRtl(a);
  3663. };
  3664. goog.i18n.bidi.ltrExitDirCheckRe_ = new RegExp("[" + goog.i18n.bidi.ltrChars_ + "][^" + goog.i18n.bidi.rtlChars_ + "]*$");
  3665. goog.i18n.bidi.rtlExitDirCheckRe_ = new RegExp("[" + goog.i18n.bidi.rtlChars_ + "][^" + goog.i18n.bidi.ltrChars_ + "]*$");
  3666. goog.i18n.bidi.endsWithLtr = function (a, b) {
  3667. return goog.i18n.bidi.ltrExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a, b));
  3668. };
  3669. goog.i18n.bidi.isLtrExitText = goog.i18n.bidi.endsWithLtr;
  3670. goog.i18n.bidi.endsWithRtl = function (a, b) {
  3671. return goog.i18n.bidi.rtlExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a, b));
  3672. };
  3673. goog.i18n.bidi.isRtlExitText = goog.i18n.bidi.endsWithRtl;
  3674. goog.i18n.bidi.rtlLocalesRe_ = /^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;
  3675. goog.i18n.bidi.isRtlLanguage = function (a) {
  3676. return goog.i18n.bidi.rtlLocalesRe_.test(a);
  3677. };
  3678. goog.i18n.bidi.bracketGuardTextRe_ = /(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(<.*?>+)/g;
  3679. goog.i18n.bidi.guardBracketInText = function (a, b) {
  3680. b = (void 0 === b ? goog.i18n.bidi.hasAnyRtl(a) : b) ? goog.i18n.bidi.Format.RLM : goog.i18n.bidi.Format.LRM;
  3681. return a.replace(goog.i18n.bidi.bracketGuardTextRe_, b + "$&" + b);
  3682. };
  3683. goog.i18n.bidi.enforceRtlInHtml = function (a) {
  3684. return "<" == a.charAt(0) ? a.replace(/<\w+/, "$& dir=rtl") : "\n<span dir=rtl>" + a + "</span>";
  3685. };
  3686. goog.i18n.bidi.enforceRtlInText = function (a) {
  3687. return goog.i18n.bidi.Format.RLE + a + goog.i18n.bidi.Format.PDF;
  3688. };
  3689. goog.i18n.bidi.enforceLtrInHtml = function (a) {
  3690. return "<" == a.charAt(0) ? a.replace(/<\w+/, "$& dir=ltr") : "\n<span dir=ltr>" + a + "</span>";
  3691. };
  3692. goog.i18n.bidi.enforceLtrInText = function (a) {
  3693. return goog.i18n.bidi.Format.LRE + a + goog.i18n.bidi.Format.PDF;
  3694. };
  3695. goog.i18n.bidi.dimensionsRe_ = /:\s*([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)/g;
  3696. goog.i18n.bidi.leftRe_ = /left/gi;
  3697. goog.i18n.bidi.rightRe_ = /right/gi;
  3698. goog.i18n.bidi.tempRe_ = /%%%%/g;
  3699. goog.i18n.bidi.mirrorCSS = function (a) {
  3700. return a.replace(goog.i18n.bidi.dimensionsRe_, ":$1 $4 $3 $2").replace(goog.i18n.bidi.leftRe_, "%%%%").replace(goog.i18n.bidi.rightRe_, goog.i18n.bidi.LEFT).replace(goog.i18n.bidi.tempRe_, goog.i18n.bidi.RIGHT);
  3701. };
  3702. goog.i18n.bidi.doubleQuoteSubstituteRe_ = /([\u0591-\u05f2])"/g;
  3703. goog.i18n.bidi.singleQuoteSubstituteRe_ = /([\u0591-\u05f2])'/g;
  3704. goog.i18n.bidi.normalizeHebrewQuote = function (a) {
  3705. return a.replace(goog.i18n.bidi.doubleQuoteSubstituteRe_, "$1\u05F4").replace(goog.i18n.bidi.singleQuoteSubstituteRe_, "$1\u05F3");
  3706. };
  3707. goog.i18n.bidi.wordSeparatorRe_ = /\s+/;
  3708. goog.i18n.bidi.hasNumeralsRe_ = /[\d\u06f0-\u06f9]/;
  3709. goog.i18n.bidi.rtlDetectionThreshold_ = .4;
  3710. goog.i18n.bidi.estimateDirection = function (a, b) {
  3711. var c = 0,
  3712. d = 0,
  3713. e = !1;
  3714. a = goog.i18n.bidi.stripHtmlIfNeeded_(a, b).split(goog.i18n.bidi.wordSeparatorRe_);
  3715. for (b = 0; b < a.length; b++) {
  3716. var f = a[b];
  3717. goog.i18n.bidi.startsWithRtl(f) ? (c++, d++) : goog.i18n.bidi.isRequiredLtrRe_.test(f) ? e = !0 : goog.i18n.bidi.hasAnyLtr(f) ? d++ : goog.i18n.bidi.hasNumeralsRe_.test(f) && (e = !0);
  3718. }
  3719. return 0 == d ? e ? goog.i18n.bidi.Dir.LTR : goog.i18n.bidi.Dir.NEUTRAL : c / d > goog.i18n.bidi.rtlDetectionThreshold_ ? goog.i18n.bidi.Dir.RTL : goog.i18n.bidi.Dir.LTR;
  3720. };
  3721. goog.i18n.bidi.detectRtlDirectionality = function (a, b) {
  3722. return goog.i18n.bidi.estimateDirection(a, b) == goog.i18n.bidi.Dir.RTL;
  3723. };
  3724. goog.i18n.bidi.setElementDirAndAlign = function (a, b) {
  3725. a && (b = goog.i18n.bidi.toDir(b)) && (a.style.textAlign = b == goog.i18n.bidi.Dir.RTL ? goog.i18n.bidi.RIGHT : goog.i18n.bidi.LEFT, a.dir = b == goog.i18n.bidi.Dir.RTL ? "rtl" : "ltr");
  3726. };
  3727. goog.i18n.bidi.setElementDirByTextDirectionality = function (a, b) {
  3728. switch (goog.i18n.bidi.estimateDirection(b)) {
  3729. case goog.i18n.bidi.Dir.LTR:
  3730. a.dir = "ltr";
  3731. break;
  3732. case goog.i18n.bidi.Dir.RTL:
  3733. a.dir = "rtl";
  3734. break;
  3735. default:
  3736. a.removeAttribute("dir");
  3737. }
  3738. };
  3739. goog.i18n.bidi.DirectionalString = function () {};
  3740. goog.html.TrustedResourceUrl = function (a, b) {
  3741. this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_ = a === goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_ && b || "";
  3742. this.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;
  3743. };
  3744. goog.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString = !0;
  3745. goog.html.TrustedResourceUrl.prototype.getTypedStringValue = function () {
  3746. return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_.toString();
  3747. };
  3748. goog.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString = !0;
  3749. goog.html.TrustedResourceUrl.prototype.getDirection = function () {
  3750. return goog.i18n.bidi.Dir.LTR;
  3751. };
  3752. goog.html.TrustedResourceUrl.prototype.cloneWithParams = function (a, b) {
  3753. var c = goog.html.TrustedResourceUrl.unwrap(this);
  3754. c = goog.html.TrustedResourceUrl.URL_PARAM_PARSER_.exec(c);
  3755. var d = c[3] || "";
  3756. return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(c[1] + goog.html.TrustedResourceUrl.stringifyParams_("?", c[2] || "", a) + goog.html.TrustedResourceUrl.stringifyParams_("#", d, b));
  3757. };
  3758. goog.DEBUG && (goog.html.TrustedResourceUrl.prototype.toString = function () {
  3759. return "TrustedResourceUrl{" + this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_ + "}";
  3760. });
  3761. goog.html.TrustedResourceUrl.unwrap = function (a) {
  3762. return goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(a).toString();
  3763. };
  3764. goog.html.TrustedResourceUrl.unwrapTrustedScriptURL = function (a) {
  3765. if (a instanceof goog.html.TrustedResourceUrl && a.constructor === goog.html.TrustedResourceUrl && a.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ === goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_) return a.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_;
  3766. goog.asserts.fail("expected object of type TrustedResourceUrl, got '" + a + "' of type " + goog.typeOf(a));
  3767. return "type_error:TrustedResourceUrl";
  3768. };
  3769. goog.html.TrustedResourceUrl.format = function (a, b) {
  3770. var c = goog.string.Const.unwrap(a);
  3771. if (!goog.html.TrustedResourceUrl.BASE_URL_.test(c)) throw Error("Invalid TrustedResourceUrl format: " + c);
  3772. a = c.replace(goog.html.TrustedResourceUrl.FORMAT_MARKER_, function (a, e) {
  3773. if (!Object.prototype.hasOwnProperty.call(b, e)) throw Error('Found marker, "' + e + '", in format string, "' + c + '", but no valid label mapping found in args: ' + JSON.stringify(b));
  3774. a = b[e];
  3775. return a instanceof goog.string.Const ? goog.string.Const.unwrap(a) : encodeURIComponent(String(a));
  3776. });
  3777. return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(a);
  3778. };
  3779. goog.html.TrustedResourceUrl.FORMAT_MARKER_ = /%{(\w+)}/g;
  3780. goog.html.TrustedResourceUrl.BASE_URL_ = /^((https:)?\/\/[0-9a-z.:[\]-]+\/|\/[^/\\]|[^:/\\%]+\/|[^:/\\%]*[?#]|about:blank#)/i;
  3781. goog.html.TrustedResourceUrl.URL_PARAM_PARSER_ = /^([^?#]*)(\?[^#]*)?(#[\s\S]*)?/;
  3782. goog.html.TrustedResourceUrl.formatWithParams = function (a, b, c, d) {
  3783. return goog.html.TrustedResourceUrl.format(a, b).cloneWithParams(c, d);
  3784. };
  3785. goog.html.TrustedResourceUrl.fromConstant = function (a) {
  3786. return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(a));
  3787. };
  3788. goog.html.TrustedResourceUrl.fromConstants = function (a) {
  3789. for (var b = "", c = 0; c < a.length; c++) {
  3790. b += goog.string.Const.unwrap(a[c]);
  3791. }
  3792. return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(b);
  3793. };
  3794. goog.html.TrustedResourceUrl.fromSafeScript = function (a) {
  3795. a = goog.fs.blob.getBlobWithProperties([goog.html.SafeScript.unwrap(a)], "text/javascript");
  3796. a = goog.fs.url.createObjectUrl(a);
  3797. return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(a);
  3798. };
  3799. goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {};
  3800. goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse = function (a) {
  3801. a = goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY ? goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createScriptURL(a) : a;
  3802. return new goog.html.TrustedResourceUrl(goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_, a);
  3803. };
  3804. goog.html.TrustedResourceUrl.stringifyParams_ = function (a, b, c) {
  3805. if (null == c) return b;
  3806. if ("string" === typeof c) return c ? a + encodeURIComponent(c) : "";
  3807. for (var d in c) {
  3808. var e = c[d];
  3809. e = Array.isArray(e) ? e : [e];
  3810. for (var f = 0; f < e.length; f++) {
  3811. var g = e[f];
  3812. null != g && (b || (b = a), b += (b.length > a.length ? "&" : "") + encodeURIComponent(d) + "=" + encodeURIComponent(String(g)));
  3813. }
  3814. }
  3815. return b;
  3816. };
  3817. goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_ = {};
  3818. goog.string.internal = {};
  3819. goog.string.internal.startsWith = function (a, b) {
  3820. return 0 == a.lastIndexOf(b, 0);
  3821. };
  3822. goog.string.internal.endsWith = function (a, b) {
  3823. var c = a.length - b.length;
  3824. return 0 <= c && a.indexOf(b, c) == c;
  3825. };
  3826. goog.string.internal.caseInsensitiveStartsWith = function (a, b) {
  3827. return 0 == goog.string.internal.caseInsensitiveCompare(b, a.substr(0, b.length));
  3828. };
  3829. goog.string.internal.caseInsensitiveEndsWith = function (a, b) {
  3830. return 0 == goog.string.internal.caseInsensitiveCompare(b, a.substr(a.length - b.length, b.length));
  3831. };
  3832. goog.string.internal.caseInsensitiveEquals = function (a, b) {
  3833. return a.toLowerCase() == b.toLowerCase();
  3834. };
  3835. goog.string.internal.isEmptyOrWhitespace = function (a) {
  3836. return /^[\s\xa0]*$/.test(a);
  3837. };
  3838. goog.string.internal.trim = goog.TRUSTED_SITE && String.prototype.trim ? function (a) {
  3839. return a.trim();
  3840. } : function (a) {
  3841. return /^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1];
  3842. };
  3843. goog.string.internal.caseInsensitiveCompare = function (a, b) {
  3844. a = String(a).toLowerCase();
  3845. b = String(b).toLowerCase();
  3846. return a < b ? -1 : a == b ? 0 : 1;
  3847. };
  3848. goog.string.internal.newLineToBr = function (a, b) {
  3849. return a.replace(/(\r\n|\r|\n)/g, b ? "<br />" : "<br>");
  3850. };
  3851. goog.string.internal.htmlEscape = function (a, b) {
  3852. if (b) a = a.replace(goog.string.internal.AMP_RE_, "&amp;").replace(goog.string.internal.LT_RE_, "&lt;").replace(goog.string.internal.GT_RE_, "&gt;").replace(goog.string.internal.QUOT_RE_, "&quot;").replace(goog.string.internal.SINGLE_QUOTE_RE_, "&#39;").replace(goog.string.internal.NULL_RE_, "&#0;");else {
  3853. if (!goog.string.internal.ALL_RE_.test(a)) return a;
  3854. -1 != a.indexOf("&") && (a = a.replace(goog.string.internal.AMP_RE_, "&amp;"));
  3855. -1 != a.indexOf("<") && (a = a.replace(goog.string.internal.LT_RE_, "&lt;"));
  3856. -1 != a.indexOf(">") && (a = a.replace(goog.string.internal.GT_RE_, "&gt;"));
  3857. -1 != a.indexOf('"') && (a = a.replace(goog.string.internal.QUOT_RE_, "&quot;"));
  3858. -1 != a.indexOf("'") && (a = a.replace(goog.string.internal.SINGLE_QUOTE_RE_, "&#39;"));
  3859. -1 != a.indexOf("\x00") && (a = a.replace(goog.string.internal.NULL_RE_, "&#0;"));
  3860. }
  3861. return a;
  3862. };
  3863. goog.string.internal.AMP_RE_ = /&/g;
  3864. goog.string.internal.LT_RE_ = /</g;
  3865. goog.string.internal.GT_RE_ = />/g;
  3866. goog.string.internal.QUOT_RE_ = /"/g;
  3867. goog.string.internal.SINGLE_QUOTE_RE_ = /'/g;
  3868. goog.string.internal.NULL_RE_ = /\x00/g;
  3869. goog.string.internal.ALL_RE_ = /[\x00&<>"']/;
  3870. goog.string.internal.whitespaceEscape = function (a, b) {
  3871. return goog.string.internal.newLineToBr(a.replace(/ /g, " &#160;"), b);
  3872. };
  3873. goog.string.internal.contains = function (a, b) {
  3874. return -1 != a.indexOf(b);
  3875. };
  3876. goog.string.internal.caseInsensitiveContains = function (a, b) {
  3877. return goog.string.internal.contains(a.toLowerCase(), b.toLowerCase());
  3878. };
  3879. goog.string.internal.compareVersions = function (a, b) {
  3880. var c = 0;
  3881. a = goog.string.internal.trim(String(a)).split(".");
  3882. b = goog.string.internal.trim(String(b)).split(".");
  3883. for (var d = Math.max(a.length, b.length), e = 0; 0 == c && e < d; e++) {
  3884. var f = a[e] || "",
  3885. g = b[e] || "";
  3886. do {
  3887. f = /(\d*)(\D*)(.*)/.exec(f) || ["", "", "", ""];
  3888. g = /(\d*)(\D*)(.*)/.exec(g) || ["", "", "", ""];
  3889. if (0 == f[0].length && 0 == g[0].length) break;
  3890. c = 0 == f[1].length ? 0 : parseInt(f[1], 10);
  3891. var h = 0 == g[1].length ? 0 : parseInt(g[1], 10);
  3892. c = goog.string.internal.compareElements_(c, h) || goog.string.internal.compareElements_(0 == f[2].length, 0 == g[2].length) || goog.string.internal.compareElements_(f[2], g[2]);
  3893. f = f[3];
  3894. g = g[3];
  3895. } while (0 == c);
  3896. }
  3897. return c;
  3898. };
  3899. goog.string.internal.compareElements_ = function (a, b) {
  3900. return a < b ? -1 : a > b ? 1 : 0;
  3901. };
  3902. goog.html.SafeUrl = function (a, b) {
  3903. this.privateDoNotAccessOrElseSafeUrlWrappedValue_ = a === goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_ && b || "";
  3904. this.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;
  3905. };
  3906. goog.html.SafeUrl.INNOCUOUS_STRING = "about:invalid#zClosurez";
  3907. goog.html.SafeUrl.prototype.implementsGoogStringTypedString = !0;
  3908. goog.html.SafeUrl.prototype.getTypedStringValue = function () {
  3909. return this.privateDoNotAccessOrElseSafeUrlWrappedValue_.toString();
  3910. };
  3911. goog.html.SafeUrl.prototype.implementsGoogI18nBidiDirectionalString = !0;
  3912. goog.html.SafeUrl.prototype.getDirection = function () {
  3913. return goog.i18n.bidi.Dir.LTR;
  3914. };
  3915. goog.DEBUG && (goog.html.SafeUrl.prototype.toString = function () {
  3916. return "SafeUrl{" + this.privateDoNotAccessOrElseSafeUrlWrappedValue_ + "}";
  3917. });
  3918. goog.html.SafeUrl.unwrap = function (a) {
  3919. if (a instanceof goog.html.SafeUrl && a.constructor === goog.html.SafeUrl && a.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ === goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_) return a.privateDoNotAccessOrElseSafeUrlWrappedValue_;
  3920. goog.asserts.fail("expected object of type SafeUrl, got '" + a + "' of type " + goog.typeOf(a));
  3921. return "type_error:SafeUrl";
  3922. };
  3923. goog.html.SafeUrl.fromConstant = function (a) {
  3924. return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(a));
  3925. };
  3926. goog.html.SAFE_MIME_TYPE_PATTERN_ = /^(?:audio\/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-matroska|x-wav|wav|webm)|image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon)|text\/csv|video\/(?:mpeg|mp4|ogg|webm|quicktime|x-matroska))(?:;\w+=(?:\w+|"[\w;,= ]+"))*$/i;
  3927. goog.html.SafeUrl.isSafeMimeType = function (a) {
  3928. return goog.html.SAFE_MIME_TYPE_PATTERN_.test(a);
  3929. };
  3930. goog.html.SafeUrl.fromBlob = function (a) {
  3931. a = goog.html.SafeUrl.isSafeMimeType(a.type) ? goog.fs.url.createObjectUrl(a) : goog.html.SafeUrl.INNOCUOUS_STRING;
  3932. return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
  3933. };
  3934. goog.html.SafeUrl.fromMediaSource = function (a) {
  3935. goog.asserts.assert("MediaSource" in goog.global, "No support for MediaSource");
  3936. a = a instanceof MediaSource ? goog.fs.url.createObjectUrl(a) : goog.html.SafeUrl.INNOCUOUS_STRING;
  3937. return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
  3938. };
  3939. goog.html.DATA_URL_PATTERN_ = /^data:(.*);base64,[a-z0-9+\/]+=*$/i;
  3940. goog.html.SafeUrl.fromDataUrl = function (a) {
  3941. a = a.replace(/(%0A|%0D)/g, "");
  3942. var b = a.match(goog.html.DATA_URL_PATTERN_);
  3943. b = b && goog.html.SafeUrl.isSafeMimeType(b[1]);
  3944. return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b ? a : goog.html.SafeUrl.INNOCUOUS_STRING);
  3945. };
  3946. goog.html.SafeUrl.fromTelUrl = function (a) {
  3947. goog.string.internal.caseInsensitiveStartsWith(a, "tel:") || (a = goog.html.SafeUrl.INNOCUOUS_STRING);
  3948. return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
  3949. };
  3950. goog.html.SIP_URL_PATTERN_ = /^sip[s]?:[+a-z0-9_.!$%&'*\/=^`{|}~-]+@([a-z0-9-]+\.)+[a-z0-9]{2,63}$/i;
  3951. goog.html.SafeUrl.fromSipUrl = function (a) {
  3952. goog.html.SIP_URL_PATTERN_.test(decodeURIComponent(a)) || (a = goog.html.SafeUrl.INNOCUOUS_STRING);
  3953. return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
  3954. };
  3955. goog.html.SafeUrl.fromFacebookMessengerUrl = function (a) {
  3956. goog.string.internal.caseInsensitiveStartsWith(a, "fb-messenger://share") || (a = goog.html.SafeUrl.INNOCUOUS_STRING);
  3957. return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
  3958. };
  3959. goog.html.SafeUrl.fromWhatsAppUrl = function (a) {
  3960. goog.string.internal.caseInsensitiveStartsWith(a, "whatsapp://send") || (a = goog.html.SafeUrl.INNOCUOUS_STRING);
  3961. return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
  3962. };
  3963. goog.html.SafeUrl.fromSmsUrl = function (a) {
  3964. goog.string.internal.caseInsensitiveStartsWith(a, "sms:") && goog.html.SafeUrl.isSmsUrlBodyValid_(a) || (a = goog.html.SafeUrl.INNOCUOUS_STRING);
  3965. return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
  3966. };
  3967. goog.html.SafeUrl.isSmsUrlBodyValid_ = function (a) {
  3968. var b = a.indexOf("#");
  3969. 0 < b && (a = a.substring(0, b));
  3970. b = a.match(/[?&]body=/gi);
  3971. if (!b) return !0;
  3972. if (1 < b.length) return !1;
  3973. a = a.match(/[?&]body=([^&]*)/)[1];
  3974. if (!a) return !0;
  3975. try {
  3976. decodeURIComponent(a);
  3977. } catch (c) {
  3978. return !1;
  3979. }
  3980. return /^(?:[a-z0-9\-_.~]|%[0-9a-f]{2})+$/i.test(a);
  3981. };
  3982. goog.html.SafeUrl.fromSshUrl = function (a) {
  3983. goog.string.internal.caseInsensitiveStartsWith(a, "ssh://") || (a = goog.html.SafeUrl.INNOCUOUS_STRING);
  3984. return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
  3985. };
  3986. goog.html.SafeUrl.sanitizeChromeExtensionUrl = function (a, b) {
  3987. return goog.html.SafeUrl.sanitizeExtensionUrl_(/^chrome-extension:\/\/([^\/]+)\//, a, b);
  3988. };
  3989. goog.html.SafeUrl.sanitizeFirefoxExtensionUrl = function (a, b) {
  3990. return goog.html.SafeUrl.sanitizeExtensionUrl_(/^moz-extension:\/\/([^\/]+)\//, a, b);
  3991. };
  3992. goog.html.SafeUrl.sanitizeEdgeExtensionUrl = function (a, b) {
  3993. return goog.html.SafeUrl.sanitizeExtensionUrl_(/^ms-browser-extension:\/\/([^\/]+)\//, a, b);
  3994. };
  3995. goog.html.SafeUrl.sanitizeExtensionUrl_ = function (a, b, c) {
  3996. (a = a.exec(b)) ? (a = a[1], -1 == (c instanceof goog.string.Const ? [goog.string.Const.unwrap(c)] : c.map(function (a) {
  3997. return goog.string.Const.unwrap(a);
  3998. })).indexOf(a) && (b = goog.html.SafeUrl.INNOCUOUS_STRING)) : b = goog.html.SafeUrl.INNOCUOUS_STRING;
  3999. return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b);
  4000. };
  4001. goog.html.SafeUrl.fromTrustedResourceUrl = function (a) {
  4002. return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.html.TrustedResourceUrl.unwrap(a));
  4003. };
  4004. goog.html.SAFE_URL_PATTERN_ = /^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i;
  4005. goog.html.SafeUrl.SAFE_URL_PATTERN = goog.html.SAFE_URL_PATTERN_;
  4006. goog.html.SafeUrl.sanitize = function (a) {
  4007. if (a instanceof goog.html.SafeUrl) return a;
  4008. a = "object" == _typeof(a) && a.implementsGoogStringTypedString ? a.getTypedStringValue() : String(a);
  4009. goog.html.SAFE_URL_PATTERN_.test(a) || (a = goog.html.SafeUrl.INNOCUOUS_STRING);
  4010. return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
  4011. };
  4012. goog.html.SafeUrl.sanitizeAssertUnchanged = function (a, b) {
  4013. if (a instanceof goog.html.SafeUrl) return a;
  4014. a = "object" == _typeof(a) && a.implementsGoogStringTypedString ? a.getTypedStringValue() : String(a);
  4015. if (b && /^data:/i.test(a) && (b = goog.html.SafeUrl.fromDataUrl(a), b.getTypedStringValue() == a)) return b;
  4016. goog.asserts.assert(goog.html.SAFE_URL_PATTERN_.test(a), "%s does not match the safe URL pattern", a) || (a = goog.html.SafeUrl.INNOCUOUS_STRING);
  4017. return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
  4018. };
  4019. goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {};
  4020. goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse = function (a) {
  4021. return new goog.html.SafeUrl(goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_, a);
  4022. };
  4023. goog.html.SafeUrl.ABOUT_BLANK = goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse("about:blank");
  4024. goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_ = {};
  4025. goog.html.SafeStyle = function () {
  4026. this.privateDoNotAccessOrElseSafeStyleWrappedValue_ = "";
  4027. this.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;
  4028. };
  4029. goog.html.SafeStyle.prototype.implementsGoogStringTypedString = !0;
  4030. goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {};
  4031. goog.html.SafeStyle.fromConstant = function (a) {
  4032. a = goog.string.Const.unwrap(a);
  4033. if (0 === a.length) return goog.html.SafeStyle.EMPTY;
  4034. goog.asserts.assert(goog.string.internal.endsWith(a, ";"), "Last character of style string is not ';': " + a);
  4035. goog.asserts.assert(goog.string.internal.contains(a, ":"), "Style string must contain at least one ':', to specify a \"name: value\" pair: " + a);
  4036. return goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(a);
  4037. };
  4038. goog.html.SafeStyle.prototype.getTypedStringValue = function () {
  4039. return this.privateDoNotAccessOrElseSafeStyleWrappedValue_;
  4040. };
  4041. goog.DEBUG && (goog.html.SafeStyle.prototype.toString = function () {
  4042. return "SafeStyle{" + this.privateDoNotAccessOrElseSafeStyleWrappedValue_ + "}";
  4043. });
  4044. goog.html.SafeStyle.unwrap = function (a) {
  4045. if (a instanceof goog.html.SafeStyle && a.constructor === goog.html.SafeStyle && a.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ === goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_) return a.privateDoNotAccessOrElseSafeStyleWrappedValue_;
  4046. goog.asserts.fail("expected object of type SafeStyle, got '" + a + "' of type " + goog.typeOf(a));
  4047. return "type_error:SafeStyle";
  4048. };
  4049. goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse = function (a) {
  4050. return new goog.html.SafeStyle().initSecurityPrivateDoNotAccessOrElse_(a);
  4051. };
  4052. goog.html.SafeStyle.prototype.initSecurityPrivateDoNotAccessOrElse_ = function (a) {
  4053. this.privateDoNotAccessOrElseSafeStyleWrappedValue_ = a;
  4054. return this;
  4055. };
  4056. goog.html.SafeStyle.EMPTY = goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse("");
  4057. goog.html.SafeStyle.INNOCUOUS_STRING = "zClosurez";
  4058. goog.html.SafeStyle.create = function (a) {
  4059. var b = "",
  4060. c;
  4061. for (c in a) {
  4062. if (!/^[-_a-zA-Z0-9]+$/.test(c)) throw Error("Name allows only [-_a-zA-Z0-9], got: " + c);
  4063. var d = a[c];
  4064. null != d && (d = Array.isArray(d) ? goog.array.map(d, goog.html.SafeStyle.sanitizePropertyValue_).join(" ") : goog.html.SafeStyle.sanitizePropertyValue_(d), b += c + ":" + d + ";");
  4065. }
  4066. return b ? goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b) : goog.html.SafeStyle.EMPTY;
  4067. };
  4068. goog.html.SafeStyle.sanitizePropertyValue_ = function (a) {
  4069. if (a instanceof goog.html.SafeUrl) return 'url("' + goog.html.SafeUrl.unwrap(a).replace(/</g, "%3c").replace(/[\\"]/g, "\\$&") + '")';
  4070. a = a instanceof goog.string.Const ? goog.string.Const.unwrap(a) : goog.html.SafeStyle.sanitizePropertyValueString_(String(a));
  4071. if (/[{;}]/.test(a)) throw new goog.asserts.AssertionError("Value does not allow [{;}], got: %s.", [a]);
  4072. return a;
  4073. };
  4074. goog.html.SafeStyle.sanitizePropertyValueString_ = function (a) {
  4075. var b = a.replace(goog.html.SafeStyle.FUNCTIONS_RE_, "$1").replace(goog.html.SafeStyle.FUNCTIONS_RE_, "$1").replace(goog.html.SafeStyle.URL_RE_, "url");
  4076. if (goog.html.SafeStyle.VALUE_RE_.test(b)) {
  4077. if (goog.html.SafeStyle.COMMENT_RE_.test(a)) return goog.asserts.fail("String value disallows comments, got: " + a), goog.html.SafeStyle.INNOCUOUS_STRING;
  4078. if (!goog.html.SafeStyle.hasBalancedQuotes_(a)) return goog.asserts.fail("String value requires balanced quotes, got: " + a), goog.html.SafeStyle.INNOCUOUS_STRING;
  4079. if (!goog.html.SafeStyle.hasBalancedSquareBrackets_(a)) return goog.asserts.fail("String value requires balanced square brackets and one identifier per pair of brackets, got: " + a), goog.html.SafeStyle.INNOCUOUS_STRING;
  4080. } else return goog.asserts.fail("String value allows only " + goog.html.SafeStyle.VALUE_ALLOWED_CHARS_ + " and simple functions, got: " + a), goog.html.SafeStyle.INNOCUOUS_STRING;
  4081. return goog.html.SafeStyle.sanitizeUrl_(a);
  4082. };
  4083. goog.html.SafeStyle.hasBalancedQuotes_ = function (a) {
  4084. for (var b = !0, c = !0, d = 0; d < a.length; d++) {
  4085. var e = a.charAt(d);
  4086. "'" == e && c ? b = !b : '"' == e && b && (c = !c);
  4087. }
  4088. return b && c;
  4089. };
  4090. goog.html.SafeStyle.hasBalancedSquareBrackets_ = function (a) {
  4091. for (var b = !0, c = /^[-_a-zA-Z0-9]$/, d = 0; d < a.length; d++) {
  4092. var e = a.charAt(d);
  4093. if ("]" == e) {
  4094. if (b) return !1;
  4095. b = !0;
  4096. } else if ("[" == e) {
  4097. if (!b) return !1;
  4098. b = !1;
  4099. } else if (!b && !c.test(e)) return !1;
  4100. }
  4101. return b;
  4102. };
  4103. goog.html.SafeStyle.VALUE_ALLOWED_CHARS_ = "[-,.\"'%_!# a-zA-Z0-9\\[\\]]";
  4104. goog.html.SafeStyle.VALUE_RE_ = new RegExp("^" + goog.html.SafeStyle.VALUE_ALLOWED_CHARS_ + "+$");
  4105. goog.html.SafeStyle.URL_RE_ = /\b(url\([ \t\n]*)('[ -&(-\[\]-~]*'|"[ !#-\[\]-~]*"|[!#-&*-\[\]-~]*)([ \t\n]*\))/g;
  4106. goog.html.SafeStyle.ALLOWED_FUNCTIONS_ = "calc cubic-bezier fit-content hsl hsla linear-gradient matrix minmax repeat rgb rgba (rotate|scale|translate)(X|Y|Z|3d)?".split(" ");
  4107. goog.html.SafeStyle.FUNCTIONS_RE_ = new RegExp("\\b(" + goog.html.SafeStyle.ALLOWED_FUNCTIONS_.join("|") + ")\\([-+*/0-9a-z.%\\[\\], ]+\\)", "g");
  4108. goog.html.SafeStyle.COMMENT_RE_ = /\/\*/;
  4109. goog.html.SafeStyle.sanitizeUrl_ = function (a) {
  4110. return a.replace(goog.html.SafeStyle.URL_RE_, function (a, c, d, e) {
  4111. var b = "";
  4112. d = d.replace(/^(['"])(.*)\1$/, function (a, c, d) {
  4113. b = c;
  4114. return d;
  4115. });
  4116. a = goog.html.SafeUrl.sanitize(d).getTypedStringValue();
  4117. return c + b + a + b + e;
  4118. });
  4119. };
  4120. goog.html.SafeStyle.concat = function (a) {
  4121. var b = "",
  4122. c = function c(a) {
  4123. Array.isArray(a) ? goog.array.forEach(a, c) : b += goog.html.SafeStyle.unwrap(a);
  4124. };
  4125. goog.array.forEach(arguments, c);
  4126. return b ? goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b) : goog.html.SafeStyle.EMPTY;
  4127. };
  4128. goog.html.SafeStyleSheet = function () {
  4129. this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_ = "";
  4130. this.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;
  4131. };
  4132. goog.html.SafeStyleSheet.prototype.implementsGoogStringTypedString = !0;
  4133. goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {};
  4134. goog.html.SafeStyleSheet.createRule = function (a, b) {
  4135. if (goog.string.internal.contains(a, "<")) throw Error("Selector does not allow '<', got: " + a);
  4136. var c = a.replace(/('|")((?!\1)[^\r\n\f\\]|\\[\s\S])*\1/g, "");
  4137. if (!/^[-_a-zA-Z0-9#.:* ,>+~[\]()=^$|]+$/.test(c)) throw Error("Selector allows only [-_a-zA-Z0-9#.:* ,>+~[\\]()=^$|] and strings, got: " + a);
  4138. if (!goog.html.SafeStyleSheet.hasBalancedBrackets_(c)) throw Error("() and [] in selector must be balanced, got: " + a);
  4139. b instanceof goog.html.SafeStyle || (b = goog.html.SafeStyle.create(b));
  4140. a = a + "{" + goog.html.SafeStyle.unwrap(b).replace(/</g, "\\3C ") + "}";
  4141. return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(a);
  4142. };
  4143. goog.html.SafeStyleSheet.hasBalancedBrackets_ = function (a) {
  4144. for (var b = {
  4145. "(": ")",
  4146. "[": "]"
  4147. }, c = [], d = 0; d < a.length; d++) {
  4148. var e = a[d];
  4149. if (b[e]) c.push(b[e]);else if (goog.object.contains(b, e) && c.pop() != e) return !1;
  4150. }
  4151. return 0 == c.length;
  4152. };
  4153. goog.html.SafeStyleSheet.concat = function (a) {
  4154. var b = "",
  4155. c = function c(a) {
  4156. Array.isArray(a) ? goog.array.forEach(a, c) : b += goog.html.SafeStyleSheet.unwrap(a);
  4157. };
  4158. goog.array.forEach(arguments, c);
  4159. return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(b);
  4160. };
  4161. goog.html.SafeStyleSheet.fromConstant = function (a) {
  4162. a = goog.string.Const.unwrap(a);
  4163. if (0 === a.length) return goog.html.SafeStyleSheet.EMPTY;
  4164. goog.asserts.assert(!goog.string.internal.contains(a, "<"), "Forbidden '<' character in style sheet string: " + a);
  4165. return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(a);
  4166. };
  4167. goog.html.SafeStyleSheet.prototype.getTypedStringValue = function () {
  4168. return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_;
  4169. };
  4170. goog.DEBUG && (goog.html.SafeStyleSheet.prototype.toString = function () {
  4171. return "SafeStyleSheet{" + this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_ + "}";
  4172. });
  4173. goog.html.SafeStyleSheet.unwrap = function (a) {
  4174. if (a instanceof goog.html.SafeStyleSheet && a.constructor === goog.html.SafeStyleSheet && a.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ === goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_) return a.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_;
  4175. goog.asserts.fail("expected object of type SafeStyleSheet, got '" + a + "' of type " + goog.typeOf(a));
  4176. return "type_error:SafeStyleSheet";
  4177. };
  4178. goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse = function (a) {
  4179. return new goog.html.SafeStyleSheet().initSecurityPrivateDoNotAccessOrElse_(a);
  4180. };
  4181. goog.html.SafeStyleSheet.prototype.initSecurityPrivateDoNotAccessOrElse_ = function (a) {
  4182. this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_ = a;
  4183. return this;
  4184. };
  4185. goog.html.SafeStyleSheet.EMPTY = goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse("");
  4186. goog.labs = {};
  4187. goog.labs.userAgent = {};
  4188. goog.labs.userAgent.util = {};
  4189. goog.labs.userAgent.util.getNativeUserAgentString_ = function () {
  4190. var a = goog.labs.userAgent.util.getNavigator_();
  4191. return a && (a = a.userAgent) ? a : "";
  4192. };
  4193. goog.labs.userAgent.util.getNavigator_ = function () {
  4194. return goog.global.navigator;
  4195. };
  4196. goog.labs.userAgent.util.userAgent_ = goog.labs.userAgent.util.getNativeUserAgentString_();
  4197. goog.labs.userAgent.util.setUserAgent = function (a) {
  4198. goog.labs.userAgent.util.userAgent_ = a || goog.labs.userAgent.util.getNativeUserAgentString_();
  4199. };
  4200. goog.labs.userAgent.util.getUserAgent = function () {
  4201. return goog.labs.userAgent.util.userAgent_;
  4202. };
  4203. goog.labs.userAgent.util.matchUserAgent = function (a) {
  4204. var b = goog.labs.userAgent.util.getUserAgent();
  4205. return goog.string.internal.contains(b, a);
  4206. };
  4207. goog.labs.userAgent.util.matchUserAgentIgnoreCase = function (a) {
  4208. var b = goog.labs.userAgent.util.getUserAgent();
  4209. return goog.string.internal.caseInsensitiveContains(b, a);
  4210. };
  4211. goog.labs.userAgent.util.extractVersionTuples = function (a) {
  4212. for (var b = /(\w[\w ]+)\/([^\s]+)\s*(?:\((.*?)\))?/g, c = [], d; d = b.exec(a);) {
  4213. c.push([d[1], d[2], d[3] || void 0]);
  4214. }
  4215. return c;
  4216. };
  4217. goog.labs.userAgent.browser = {};
  4218. goog.labs.userAgent.browser.matchOpera_ = function () {
  4219. return goog.labs.userAgent.util.matchUserAgent("Opera");
  4220. };
  4221. goog.labs.userAgent.browser.matchIE_ = function () {
  4222. return goog.labs.userAgent.util.matchUserAgent("Trident") || goog.labs.userAgent.util.matchUserAgent("MSIE");
  4223. };
  4224. goog.labs.userAgent.browser.matchEdgeHtml_ = function () {
  4225. return goog.labs.userAgent.util.matchUserAgent("Edge");
  4226. };
  4227. goog.labs.userAgent.browser.matchEdgeChromium_ = function () {
  4228. return goog.labs.userAgent.util.matchUserAgent("Edg/");
  4229. };
  4230. goog.labs.userAgent.browser.matchOperaChromium_ = function () {
  4231. return goog.labs.userAgent.util.matchUserAgent("OPR");
  4232. };
  4233. goog.labs.userAgent.browser.matchFirefox_ = function () {
  4234. return goog.labs.userAgent.util.matchUserAgent("Firefox") || goog.labs.userAgent.util.matchUserAgent("FxiOS");
  4235. };
  4236. goog.labs.userAgent.browser.matchSafari_ = function () {
  4237. return goog.labs.userAgent.util.matchUserAgent("Safari") && !(goog.labs.userAgent.browser.matchChrome_() || goog.labs.userAgent.browser.matchCoast_() || goog.labs.userAgent.browser.matchOpera_() || goog.labs.userAgent.browser.matchEdgeHtml_() || goog.labs.userAgent.browser.matchEdgeChromium_() || goog.labs.userAgent.browser.matchOperaChromium_() || goog.labs.userAgent.browser.matchFirefox_() || goog.labs.userAgent.browser.isSilk() || goog.labs.userAgent.util.matchUserAgent("Android"));
  4238. };
  4239. goog.labs.userAgent.browser.matchCoast_ = function () {
  4240. return goog.labs.userAgent.util.matchUserAgent("Coast");
  4241. };
  4242. goog.labs.userAgent.browser.matchIosWebview_ = function () {
  4243. return (goog.labs.userAgent.util.matchUserAgent("iPad") || goog.labs.userAgent.util.matchUserAgent("iPhone")) && !goog.labs.userAgent.browser.matchSafari_() && !goog.labs.userAgent.browser.matchChrome_() && !goog.labs.userAgent.browser.matchCoast_() && !goog.labs.userAgent.browser.matchFirefox_() && goog.labs.userAgent.util.matchUserAgent("AppleWebKit");
  4244. };
  4245. goog.labs.userAgent.browser.matchChrome_ = function () {
  4246. return (goog.labs.userAgent.util.matchUserAgent("Chrome") || goog.labs.userAgent.util.matchUserAgent("CriOS")) && !goog.labs.userAgent.browser.matchEdgeHtml_();
  4247. };
  4248. goog.labs.userAgent.browser.matchAndroidBrowser_ = function () {
  4249. return goog.labs.userAgent.util.matchUserAgent("Android") && !(goog.labs.userAgent.browser.isChrome() || goog.labs.userAgent.browser.isFirefox() || goog.labs.userAgent.browser.isOpera() || goog.labs.userAgent.browser.isSilk());
  4250. };
  4251. goog.labs.userAgent.browser.isOpera = goog.labs.userAgent.browser.matchOpera_;
  4252. goog.labs.userAgent.browser.isIE = goog.labs.userAgent.browser.matchIE_;
  4253. goog.labs.userAgent.browser.isEdge = goog.labs.userAgent.browser.matchEdgeHtml_;
  4254. goog.labs.userAgent.browser.isEdgeChromium = goog.labs.userAgent.browser.matchEdgeChromium_;
  4255. goog.labs.userAgent.browser.isOperaChromium = goog.labs.userAgent.browser.matchOperaChromium_;
  4256. goog.labs.userAgent.browser.isFirefox = goog.labs.userAgent.browser.matchFirefox_;
  4257. goog.labs.userAgent.browser.isSafari = goog.labs.userAgent.browser.matchSafari_;
  4258. goog.labs.userAgent.browser.isCoast = goog.labs.userAgent.browser.matchCoast_;
  4259. goog.labs.userAgent.browser.isIosWebview = goog.labs.userAgent.browser.matchIosWebview_;
  4260. goog.labs.userAgent.browser.isChrome = goog.labs.userAgent.browser.matchChrome_;
  4261. goog.labs.userAgent.browser.isAndroidBrowser = goog.labs.userAgent.browser.matchAndroidBrowser_;
  4262. goog.labs.userAgent.browser.isSilk = function () {
  4263. return goog.labs.userAgent.util.matchUserAgent("Silk");
  4264. };
  4265. goog.labs.userAgent.browser.getVersion = function () {
  4266. function a(a) {
  4267. a = goog.array.find(a, d);
  4268. return c[a] || "";
  4269. }
  4270. var b = goog.labs.userAgent.util.getUserAgent();
  4271. if (goog.labs.userAgent.browser.isIE()) return goog.labs.userAgent.browser.getIEVersion_(b);
  4272. b = goog.labs.userAgent.util.extractVersionTuples(b);
  4273. var c = {};
  4274. goog.array.forEach(b, function (a) {
  4275. c[a[0]] = a[1];
  4276. });
  4277. var d = goog.partial(goog.object.containsKey, c);
  4278. return goog.labs.userAgent.browser.isOpera() ? a(["Version", "Opera"]) : goog.labs.userAgent.browser.isEdge() ? a(["Edge"]) : goog.labs.userAgent.browser.isEdgeChromium() ? a(["Edg"]) : goog.labs.userAgent.browser.isChrome() ? a(["Chrome", "CriOS", "HeadlessChrome"]) : (b = b[2]) && b[1] || "";
  4279. };
  4280. goog.labs.userAgent.browser.isVersionOrHigher = function (a) {
  4281. return 0 <= goog.string.internal.compareVersions(goog.labs.userAgent.browser.getVersion(), a);
  4282. };
  4283. goog.labs.userAgent.browser.getIEVersion_ = function (a) {
  4284. var b = /rv: *([\d\.]*)/.exec(a);
  4285. if (b && b[1]) return b[1];
  4286. b = "";
  4287. var c = /MSIE +([\d\.]+)/.exec(a);
  4288. if (c && c[1]) if (a = /Trident\/(\d.\d)/.exec(a), "7.0" == c[1]) {
  4289. if (a && a[1]) switch (a[1]) {
  4290. case "4.0":
  4291. b = "8.0";
  4292. break;
  4293. case "5.0":
  4294. b = "9.0";
  4295. break;
  4296. case "6.0":
  4297. b = "10.0";
  4298. break;
  4299. case "7.0":
  4300. b = "11.0";
  4301. } else b = "7.0";
  4302. } else b = c[1];
  4303. return b;
  4304. };
  4305. goog.html.SafeHtml = function () {
  4306. this.privateDoNotAccessOrElseSafeHtmlWrappedValue_ = "";
  4307. this.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;
  4308. this.dir_ = null;
  4309. };
  4310. goog.html.SafeHtml.ENABLE_ERROR_MESSAGES = goog.DEBUG;
  4311. goog.html.SafeHtml.SUPPORT_STYLE_ATTRIBUTE = !0;
  4312. goog.html.SafeHtml.prototype.implementsGoogI18nBidiDirectionalString = !0;
  4313. goog.html.SafeHtml.prototype.getDirection = function () {
  4314. return this.dir_;
  4315. };
  4316. goog.html.SafeHtml.prototype.implementsGoogStringTypedString = !0;
  4317. goog.html.SafeHtml.prototype.getTypedStringValue = function () {
  4318. return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_.toString();
  4319. };
  4320. goog.DEBUG && (goog.html.SafeHtml.prototype.toString = function () {
  4321. return "SafeHtml{" + this.privateDoNotAccessOrElseSafeHtmlWrappedValue_ + "}";
  4322. });
  4323. goog.html.SafeHtml.unwrap = function (a) {
  4324. return goog.html.SafeHtml.unwrapTrustedHTML(a).toString();
  4325. };
  4326. goog.html.SafeHtml.unwrapTrustedHTML = function (a) {
  4327. if (a instanceof goog.html.SafeHtml && a.constructor === goog.html.SafeHtml && a.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ === goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_) return a.privateDoNotAccessOrElseSafeHtmlWrappedValue_;
  4328. goog.asserts.fail("expected object of type SafeHtml, got '" + a + "' of type " + goog.typeOf(a));
  4329. return "type_error:SafeHtml";
  4330. };
  4331. goog.html.SafeHtml.htmlEscape = function (a) {
  4332. if (a instanceof goog.html.SafeHtml) return a;
  4333. var b = "object" == _typeof(a),
  4334. c = null;
  4335. b && a.implementsGoogI18nBidiDirectionalString && (c = a.getDirection());
  4336. a = b && a.implementsGoogStringTypedString ? a.getTypedStringValue() : String(a);
  4337. return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.htmlEscape(a), c);
  4338. };
  4339. goog.html.SafeHtml.htmlEscapePreservingNewlines = function (a) {
  4340. if (a instanceof goog.html.SafeHtml) return a;
  4341. a = goog.html.SafeHtml.htmlEscape(a);
  4342. return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.newLineToBr(goog.html.SafeHtml.unwrap(a)), a.getDirection());
  4343. };
  4344. goog.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces = function (a) {
  4345. if (a instanceof goog.html.SafeHtml) return a;
  4346. a = goog.html.SafeHtml.htmlEscape(a);
  4347. return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.whitespaceEscape(goog.html.SafeHtml.unwrap(a)), a.getDirection());
  4348. };
  4349. goog.html.SafeHtml.from = goog.html.SafeHtml.htmlEscape;
  4350. goog.html.SafeHtml.comment = function (a) {
  4351. return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("\x3c!--" + goog.string.internal.htmlEscape(a) + "--\x3e", null);
  4352. };
  4353. goog.html.SafeHtml.VALID_NAMES_IN_TAG_ = /^[a-zA-Z0-9-]+$/;
  4354. goog.html.SafeHtml.URL_ATTRIBUTES_ = {
  4355. action: !0,
  4356. cite: !0,
  4357. data: !0,
  4358. formaction: !0,
  4359. href: !0,
  4360. manifest: !0,
  4361. poster: !0,
  4362. src: !0
  4363. };
  4364. goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_ = {
  4365. APPLET: !0,
  4366. BASE: !0,
  4367. EMBED: !0,
  4368. IFRAME: !0,
  4369. LINK: !0,
  4370. MATH: !0,
  4371. META: !0,
  4372. OBJECT: !0,
  4373. SCRIPT: !0,
  4374. STYLE: !0,
  4375. SVG: !0,
  4376. TEMPLATE: !0
  4377. };
  4378. goog.html.SafeHtml.create = function (a, b, c) {
  4379. goog.html.SafeHtml.verifyTagName(String(a));
  4380. return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(String(a), b, c);
  4381. };
  4382. goog.html.SafeHtml.verifyTagName = function (a) {
  4383. if (!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(a)) throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? "Invalid tag name <" + a + ">." : "");
  4384. if (a.toUpperCase() in goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_) throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? "Tag name <" + a + "> is not allowed for SafeHtml." : "");
  4385. };
  4386. goog.html.SafeHtml.createIframe = function (a, b, c, d) {
  4387. a && goog.html.TrustedResourceUrl.unwrap(a);
  4388. var e = {};
  4389. e.src = a || null;
  4390. e.srcdoc = b && goog.html.SafeHtml.unwrap(b);
  4391. a = goog.html.SafeHtml.combineAttributes(e, {
  4392. sandbox: ""
  4393. }, c);
  4394. return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe", a, d);
  4395. };
  4396. goog.html.SafeHtml.createSandboxIframe = function (a, b, c, d) {
  4397. if (!goog.html.SafeHtml.canUseSandboxIframe()) throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? "The browser does not support sandboxed iframes." : "");
  4398. var e = {};
  4399. e.src = a ? goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(a)) : null;
  4400. e.srcdoc = b || null;
  4401. e.sandbox = "";
  4402. a = goog.html.SafeHtml.combineAttributes(e, {}, c);
  4403. return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe", a, d);
  4404. };
  4405. goog.html.SafeHtml.canUseSandboxIframe = function () {
  4406. return goog.global.HTMLIFrameElement && "sandbox" in goog.global.HTMLIFrameElement.prototype;
  4407. };
  4408. goog.html.SafeHtml.createScriptSrc = function (a, b) {
  4409. goog.html.TrustedResourceUrl.unwrap(a);
  4410. a = goog.html.SafeHtml.combineAttributes({
  4411. src: a
  4412. }, {}, b);
  4413. return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script", a);
  4414. };
  4415. goog.html.SafeHtml.createScript = function (a, b) {
  4416. for (var c in b) {
  4417. var d = c.toLowerCase();
  4418. if ("language" == d || "src" == d || "text" == d || "type" == d) throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'Cannot set "' + d + '" attribute' : "");
  4419. }
  4420. c = "";
  4421. a = goog.array.concat(a);
  4422. for (d = 0; d < a.length; d++) {
  4423. c += goog.html.SafeScript.unwrap(a[d]);
  4424. }
  4425. a = goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(c, goog.i18n.bidi.Dir.NEUTRAL);
  4426. return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script", b, a);
  4427. };
  4428. goog.html.SafeHtml.createStyle = function (a, b) {
  4429. b = goog.html.SafeHtml.combineAttributes({
  4430. type: "text/css"
  4431. }, {}, b);
  4432. var c = "";
  4433. a = goog.array.concat(a);
  4434. for (var d = 0; d < a.length; d++) {
  4435. c += goog.html.SafeStyleSheet.unwrap(a[d]);
  4436. }
  4437. a = goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(c, goog.i18n.bidi.Dir.NEUTRAL);
  4438. return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("style", b, a);
  4439. };
  4440. goog.html.SafeHtml.createMetaRefresh = function (a, b) {
  4441. a = goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(a));
  4442. (goog.labs.userAgent.browser.isIE() || goog.labs.userAgent.browser.isEdge()) && goog.string.internal.contains(a, ";") && (a = "'" + a.replace(/'/g, "%27") + "'");
  4443. return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("meta", {
  4444. "http-equiv": "refresh",
  4445. content: (b || 0) + "; url=" + a
  4446. });
  4447. };
  4448. goog.html.SafeHtml.getAttrNameAndValue_ = function (a, b, c) {
  4449. if (c instanceof goog.string.Const) c = goog.string.Const.unwrap(c);else if ("style" == b.toLowerCase()) {
  4450. if (goog.html.SafeHtml.SUPPORT_STYLE_ATTRIBUTE) c = goog.html.SafeHtml.getStyleValue_(c);else throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'Attribute "style" not supported.' : "");
  4451. } else {
  4452. if (/^on/i.test(b)) throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'Attribute "' + b + '" requires goog.string.Const value, "' + c + '" given.' : "");
  4453. if (b.toLowerCase() in goog.html.SafeHtml.URL_ATTRIBUTES_) if (c instanceof goog.html.TrustedResourceUrl) c = goog.html.TrustedResourceUrl.unwrap(c);else if (c instanceof goog.html.SafeUrl) c = goog.html.SafeUrl.unwrap(c);else if ("string" === typeof c) c = goog.html.SafeUrl.sanitize(c).getTypedStringValue();else throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'Attribute "' + b + '" on tag "' + a + '" requires goog.html.SafeUrl, goog.string.Const, or string, value "' + c + '" given.' : "");
  4454. }
  4455. c.implementsGoogStringTypedString && (c = c.getTypedStringValue());
  4456. goog.asserts.assert("string" === typeof c || "number" === typeof c, "String or number value expected, got " + _typeof(c) + " with value: " + c);
  4457. return b + '="' + goog.string.internal.htmlEscape(String(c)) + '"';
  4458. };
  4459. goog.html.SafeHtml.getStyleValue_ = function (a) {
  4460. if (!goog.isObject(a)) throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'The "style" attribute requires goog.html.SafeStyle or map of style properties, ' + _typeof(a) + " given: " + a : "");
  4461. a instanceof goog.html.SafeStyle || (a = goog.html.SafeStyle.create(a));
  4462. return goog.html.SafeStyle.unwrap(a);
  4463. };
  4464. goog.html.SafeHtml.createWithDir = function (a, b, c, d) {
  4465. b = goog.html.SafeHtml.create(b, c, d);
  4466. b.dir_ = a;
  4467. return b;
  4468. };
  4469. goog.html.SafeHtml.join = function (a, b) {
  4470. a = goog.html.SafeHtml.htmlEscape(a);
  4471. var c = a.getDirection(),
  4472. d = [],
  4473. e = function e(a) {
  4474. Array.isArray(a) ? goog.array.forEach(a, e) : (a = goog.html.SafeHtml.htmlEscape(a), d.push(goog.html.SafeHtml.unwrap(a)), a = a.getDirection(), c == goog.i18n.bidi.Dir.NEUTRAL ? c = a : a != goog.i18n.bidi.Dir.NEUTRAL && c != a && (c = null));
  4475. };
  4476. goog.array.forEach(b, e);
  4477. return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(d.join(goog.html.SafeHtml.unwrap(a)), c);
  4478. };
  4479. goog.html.SafeHtml.concat = function (a) {
  4480. return goog.html.SafeHtml.join(goog.html.SafeHtml.EMPTY, Array.prototype.slice.call(arguments));
  4481. };
  4482. goog.html.SafeHtml.concatWithDir = function (a, b) {
  4483. var c = goog.html.SafeHtml.concat(goog.array.slice(arguments, 1));
  4484. c.dir_ = a;
  4485. return c;
  4486. };
  4487. goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {};
  4488. goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse = function (a, b) {
  4489. return new goog.html.SafeHtml().initSecurityPrivateDoNotAccessOrElse_(a, b);
  4490. };
  4491. goog.html.SafeHtml.prototype.initSecurityPrivateDoNotAccessOrElse_ = function (a, b) {
  4492. this.privateDoNotAccessOrElseSafeHtmlWrappedValue_ = goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY ? goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createHTML(a) : a;
  4493. this.dir_ = b;
  4494. return this;
  4495. };
  4496. goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse = function (a, b, c) {
  4497. var d = null;
  4498. var e = "<" + a + goog.html.SafeHtml.stringifyAttributes(a, b);
  4499. null == c ? c = [] : Array.isArray(c) || (c = [c]);
  4500. goog.dom.tags.isVoidTag(a.toLowerCase()) ? (goog.asserts.assert(!c.length, "Void tag <" + a + "> does not allow content."), e += ">") : (d = goog.html.SafeHtml.concat(c), e += ">" + goog.html.SafeHtml.unwrap(d) + "</" + a + ">", d = d.getDirection());
  4501. (a = b && b.dir) && (d = /^(ltr|rtl|auto)$/i.test(a) ? goog.i18n.bidi.Dir.NEUTRAL : null);
  4502. return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(e, d);
  4503. };
  4504. goog.html.SafeHtml.stringifyAttributes = function (a, b) {
  4505. var c = "";
  4506. if (b) for (var d in b) {
  4507. if (!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(d)) throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'Invalid attribute name "' + d + '".' : "");
  4508. var e = b[d];
  4509. null != e && (c += " " + goog.html.SafeHtml.getAttrNameAndValue_(a, d, e));
  4510. }
  4511. return c;
  4512. };
  4513. goog.html.SafeHtml.combineAttributes = function (a, b, c) {
  4514. var d = {},
  4515. e;
  4516. for (e in a) {
  4517. goog.asserts.assert(e.toLowerCase() == e, "Must be lower case"), d[e] = a[e];
  4518. }
  4519. for (e in b) {
  4520. goog.asserts.assert(e.toLowerCase() == e, "Must be lower case"), d[e] = b[e];
  4521. }
  4522. if (c) for (e in c) {
  4523. var f = e.toLowerCase();
  4524. if (f in a) throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'Cannot override "' + f + '" attribute, got "' + e + '" with value "' + c[e] + '"' : "");
  4525. f in b && delete d[f];
  4526. d[e] = c[e];
  4527. }
  4528. return d;
  4529. };
  4530. goog.html.SafeHtml.DOCTYPE_HTML = goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<!DOCTYPE html>", goog.i18n.bidi.Dir.NEUTRAL);
  4531. goog.html.SafeHtml.EMPTY = goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("", goog.i18n.bidi.Dir.NEUTRAL);
  4532. goog.html.SafeHtml.BR = goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<br>", goog.i18n.bidi.Dir.NEUTRAL);
  4533. goog.html.uncheckedconversions = {};
  4534. goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract = function (a, b, c) {
  4535. goog.asserts.assertString(goog.string.Const.unwrap(a), "must provide justification");
  4536. goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)), "must provide non-empty justification");
  4537. return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(b, c || null);
  4538. };
  4539. goog.html.uncheckedconversions.safeScriptFromStringKnownToSatisfyTypeContract = function (a, b) {
  4540. goog.asserts.assertString(goog.string.Const.unwrap(a), "must provide justification");
  4541. goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)), "must provide non-empty justification");
  4542. return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(b);
  4543. };
  4544. goog.html.uncheckedconversions.safeStyleFromStringKnownToSatisfyTypeContract = function (a, b) {
  4545. goog.asserts.assertString(goog.string.Const.unwrap(a), "must provide justification");
  4546. goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)), "must provide non-empty justification");
  4547. return goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b);
  4548. };
  4549. goog.html.uncheckedconversions.safeStyleSheetFromStringKnownToSatisfyTypeContract = function (a, b) {
  4550. goog.asserts.assertString(goog.string.Const.unwrap(a), "must provide justification");
  4551. goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)), "must provide non-empty justification");
  4552. return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(b);
  4553. };
  4554. goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract = function (a, b) {
  4555. goog.asserts.assertString(goog.string.Const.unwrap(a), "must provide justification");
  4556. goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)), "must provide non-empty justification");
  4557. return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b);
  4558. };
  4559. goog.html.uncheckedconversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract = function (a, b) {
  4560. goog.asserts.assertString(goog.string.Const.unwrap(a), "must provide justification");
  4561. goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)), "must provide non-empty justification");
  4562. return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(b);
  4563. };
  4564. goog.dom.safe = {};
  4565. goog.dom.safe.InsertAdjacentHtmlPosition = {
  4566. AFTERBEGIN: "afterbegin",
  4567. AFTEREND: "afterend",
  4568. BEFOREBEGIN: "beforebegin",
  4569. BEFOREEND: "beforeend"
  4570. };
  4571. goog.dom.safe.insertAdjacentHtml = function (a, b, c) {
  4572. a.insertAdjacentHTML(b, goog.html.SafeHtml.unwrapTrustedHTML(c));
  4573. };
  4574. goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_ = {
  4575. MATH: !0,
  4576. SCRIPT: !0,
  4577. STYLE: !0,
  4578. SVG: !0,
  4579. TEMPLATE: !0
  4580. };
  4581. goog.dom.safe.isInnerHtmlCleanupRecursive_ = goog.functions.cacheReturnValue(function () {
  4582. if (goog.DEBUG && "undefined" === typeof document) return !1;
  4583. var a = document.createElement("div"),
  4584. b = document.createElement("div");
  4585. b.appendChild(document.createElement("div"));
  4586. a.appendChild(b);
  4587. if (goog.DEBUG && !a.firstChild) return !1;
  4588. b = a.firstChild.firstChild;
  4589. a.innerHTML = goog.html.SafeHtml.unwrapTrustedHTML(goog.html.SafeHtml.EMPTY);
  4590. return !b.parentElement;
  4591. });
  4592. goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse = function (a, b) {
  4593. if (goog.dom.safe.isInnerHtmlCleanupRecursive_()) for (; a.lastChild;) {
  4594. a.removeChild(a.lastChild);
  4595. }
  4596. a.innerHTML = goog.html.SafeHtml.unwrapTrustedHTML(b);
  4597. };
  4598. goog.dom.safe.setInnerHtml = function (a, b) {
  4599. if (goog.asserts.ENABLE_ASSERTS) {
  4600. var c = a.tagName.toUpperCase();
  4601. if (goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[c]) throw Error("goog.dom.safe.setInnerHtml cannot be used to set content of " + a.tagName + ".");
  4602. }
  4603. goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse(a, b);
  4604. };
  4605. goog.dom.safe.setOuterHtml = function (a, b) {
  4606. a.outerHTML = goog.html.SafeHtml.unwrapTrustedHTML(b);
  4607. };
  4608. goog.dom.safe.setFormElementAction = function (a, b) {
  4609. b = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);
  4610. goog.dom.asserts.assertIsHTMLFormElement(a).action = goog.html.SafeUrl.unwrap(b);
  4611. };
  4612. goog.dom.safe.setButtonFormAction = function (a, b) {
  4613. b = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);
  4614. goog.dom.asserts.assertIsHTMLButtonElement(a).formAction = goog.html.SafeUrl.unwrap(b);
  4615. };
  4616. goog.dom.safe.setInputFormAction = function (a, b) {
  4617. b = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);
  4618. goog.dom.asserts.assertIsHTMLInputElement(a).formAction = goog.html.SafeUrl.unwrap(b);
  4619. };
  4620. goog.dom.safe.setStyle = function (a, b) {
  4621. a.style.cssText = goog.html.SafeStyle.unwrap(b);
  4622. };
  4623. goog.dom.safe.documentWrite = function (a, b) {
  4624. a.write(goog.html.SafeHtml.unwrapTrustedHTML(b));
  4625. };
  4626. goog.dom.safe.setAnchorHref = function (a, b) {
  4627. goog.dom.asserts.assertIsHTMLAnchorElement(a);
  4628. b = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);
  4629. a.href = goog.html.SafeUrl.unwrap(b);
  4630. };
  4631. goog.dom.safe.setImageSrc = function (a, b) {
  4632. goog.dom.asserts.assertIsHTMLImageElement(a);
  4633. if (!(b instanceof goog.html.SafeUrl)) {
  4634. var c = /^data:image\//i.test(b);
  4635. b = goog.html.SafeUrl.sanitizeAssertUnchanged(b, c);
  4636. }
  4637. a.src = goog.html.SafeUrl.unwrap(b);
  4638. };
  4639. goog.dom.safe.setAudioSrc = function (a, b) {
  4640. goog.dom.asserts.assertIsHTMLAudioElement(a);
  4641. if (!(b instanceof goog.html.SafeUrl)) {
  4642. var c = /^data:audio\//i.test(b);
  4643. b = goog.html.SafeUrl.sanitizeAssertUnchanged(b, c);
  4644. }
  4645. a.src = goog.html.SafeUrl.unwrap(b);
  4646. };
  4647. goog.dom.safe.setVideoSrc = function (a, b) {
  4648. goog.dom.asserts.assertIsHTMLVideoElement(a);
  4649. if (!(b instanceof goog.html.SafeUrl)) {
  4650. var c = /^data:video\//i.test(b);
  4651. b = goog.html.SafeUrl.sanitizeAssertUnchanged(b, c);
  4652. }
  4653. a.src = goog.html.SafeUrl.unwrap(b);
  4654. };
  4655. goog.dom.safe.setEmbedSrc = function (a, b) {
  4656. goog.dom.asserts.assertIsHTMLEmbedElement(a);
  4657. a.src = goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(b);
  4658. };
  4659. goog.dom.safe.setFrameSrc = function (a, b) {
  4660. goog.dom.asserts.assertIsHTMLFrameElement(a);
  4661. a.src = goog.html.TrustedResourceUrl.unwrap(b);
  4662. };
  4663. goog.dom.safe.setIframeSrc = function (a, b) {
  4664. goog.dom.asserts.assertIsHTMLIFrameElement(a);
  4665. a.src = goog.html.TrustedResourceUrl.unwrap(b);
  4666. };
  4667. goog.dom.safe.setIframeSrcdoc = function (a, b) {
  4668. goog.dom.asserts.assertIsHTMLIFrameElement(a);
  4669. a.srcdoc = goog.html.SafeHtml.unwrapTrustedHTML(b);
  4670. };
  4671. goog.dom.safe.setLinkHrefAndRel = function (a, b, c) {
  4672. goog.dom.asserts.assertIsHTMLLinkElement(a);
  4673. a.rel = c;
  4674. goog.string.internal.caseInsensitiveContains(c, "stylesheet") ? (goog.asserts.assert(b instanceof goog.html.TrustedResourceUrl, 'URL must be TrustedResourceUrl because "rel" contains "stylesheet"'), a.href = goog.html.TrustedResourceUrl.unwrap(b)) : a.href = b instanceof goog.html.TrustedResourceUrl ? goog.html.TrustedResourceUrl.unwrap(b) : b instanceof goog.html.SafeUrl ? goog.html.SafeUrl.unwrap(b) : goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitizeAssertUnchanged(b));
  4675. };
  4676. goog.dom.safe.setObjectData = function (a, b) {
  4677. goog.dom.asserts.assertIsHTMLObjectElement(a);
  4678. a.data = goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(b);
  4679. };
  4680. goog.dom.safe.setScriptSrc = function (a, b) {
  4681. goog.dom.asserts.assertIsHTMLScriptElement(a);
  4682. a.src = goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(b);
  4683. (b = goog.getScriptNonce()) && a.setAttribute("nonce", b);
  4684. };
  4685. goog.dom.safe.setScriptContent = function (a, b) {
  4686. goog.dom.asserts.assertIsHTMLScriptElement(a);
  4687. a.text = goog.html.SafeScript.unwrapTrustedScript(b);
  4688. (b = goog.getScriptNonce()) && a.setAttribute("nonce", b);
  4689. };
  4690. goog.dom.safe.setLocationHref = function (a, b) {
  4691. goog.dom.asserts.assertIsLocation(a);
  4692. b = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);
  4693. a.href = goog.html.SafeUrl.unwrap(b);
  4694. };
  4695. goog.dom.safe.assignLocation = function (a, b) {
  4696. goog.dom.asserts.assertIsLocation(a);
  4697. b = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);
  4698. a.assign(goog.html.SafeUrl.unwrap(b));
  4699. };
  4700. goog.dom.safe.replaceLocation = function (a, b) {
  4701. b = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);
  4702. a.replace(goog.html.SafeUrl.unwrap(b));
  4703. };
  4704. goog.dom.safe.openInWindow = function (a, b, c, d, e) {
  4705. a = a instanceof goog.html.SafeUrl ? a : goog.html.SafeUrl.sanitizeAssertUnchanged(a);
  4706. b = b || goog.global;
  4707. c = c instanceof goog.string.Const ? goog.string.Const.unwrap(c) : c || "";
  4708. return b.open(goog.html.SafeUrl.unwrap(a), c, d, e);
  4709. };
  4710. goog.dom.safe.parseFromStringHtml = function (a, b) {
  4711. return goog.dom.safe.parseFromString(a, b, "text/html");
  4712. };
  4713. goog.dom.safe.parseFromString = function (a, b, c) {
  4714. return a.parseFromString(goog.html.SafeHtml.unwrapTrustedHTML(b), c);
  4715. };
  4716. goog.dom.safe.createImageFromBlob = function (a) {
  4717. if (!/^image\/.*/g.test(a.type)) throw Error("goog.dom.safe.createImageFromBlob only accepts MIME type image/.*.");
  4718. var b = goog.global.URL.createObjectURL(a);
  4719. a = new goog.global.Image();
  4720. a.onload = function () {
  4721. goog.global.URL.revokeObjectURL(b);
  4722. };
  4723. goog.dom.safe.setImageSrc(a, goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Image blob URL."), b));
  4724. return a;
  4725. };
  4726. goog.string.DETECT_DOUBLE_ESCAPING = !1;
  4727. goog.string.FORCE_NON_DOM_HTML_UNESCAPING = !1;
  4728. goog.string.Unicode = {
  4729. NBSP: "\xA0"
  4730. };
  4731. goog.string.startsWith = goog.string.internal.startsWith;
  4732. goog.string.endsWith = goog.string.internal.endsWith;
  4733. goog.string.caseInsensitiveStartsWith = goog.string.internal.caseInsensitiveStartsWith;
  4734. goog.string.caseInsensitiveEndsWith = goog.string.internal.caseInsensitiveEndsWith;
  4735. goog.string.caseInsensitiveEquals = goog.string.internal.caseInsensitiveEquals;
  4736. goog.string.subs = function (a, b) {
  4737. for (var c = a.split("%s"), d = "", e = Array.prototype.slice.call(arguments, 1); e.length && 1 < c.length;) {
  4738. d += c.shift() + e.shift();
  4739. }
  4740. return d + c.join("%s");
  4741. };
  4742. goog.string.collapseWhitespace = function (a) {
  4743. return a.replace(/[\s\xa0]+/g, " ").replace(/^\s+|\s+$/g, "");
  4744. };
  4745. goog.string.isEmptyOrWhitespace = goog.string.internal.isEmptyOrWhitespace;
  4746. goog.string.isEmptyString = function (a) {
  4747. return 0 == a.length;
  4748. };
  4749. goog.string.isEmpty = goog.string.isEmptyOrWhitespace;
  4750. goog.string.isEmptyOrWhitespaceSafe = function (a) {
  4751. return goog.string.isEmptyOrWhitespace(goog.string.makeSafe(a));
  4752. };
  4753. goog.string.isEmptySafe = goog.string.isEmptyOrWhitespaceSafe;
  4754. goog.string.isBreakingWhitespace = function (a) {
  4755. return !/[^\t\n\r ]/.test(a);
  4756. };
  4757. goog.string.isAlpha = function (a) {
  4758. return !/[^a-zA-Z]/.test(a);
  4759. };
  4760. goog.string.isNumeric = function (a) {
  4761. return !/[^0-9]/.test(a);
  4762. };
  4763. goog.string.isAlphaNumeric = function (a) {
  4764. return !/[^a-zA-Z0-9]/.test(a);
  4765. };
  4766. goog.string.isSpace = function (a) {
  4767. return " " == a;
  4768. };
  4769. goog.string.isUnicodeChar = function (a) {
  4770. return 1 == a.length && " " <= a && "~" >= a || "\x80" <= a && "\uFFFD" >= a;
  4771. };
  4772. goog.string.stripNewlines = function (a) {
  4773. return a.replace(/(\r\n|\r|\n)+/g, " ");
  4774. };
  4775. goog.string.canonicalizeNewlines = function (a) {
  4776. return a.replace(/(\r\n|\r|\n)/g, "\n");
  4777. };
  4778. goog.string.normalizeWhitespace = function (a) {
  4779. return a.replace(/\xa0|\s/g, " ");
  4780. };
  4781. goog.string.normalizeSpaces = function (a) {
  4782. return a.replace(/\xa0|[ \t]+/g, " ");
  4783. };
  4784. goog.string.collapseBreakingSpaces = function (a) {
  4785. return a.replace(/[\t\r\n ]+/g, " ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g, "");
  4786. };
  4787. goog.string.trim = goog.string.internal.trim;
  4788. goog.string.trimLeft = function (a) {
  4789. return a.replace(/^[\s\xa0]+/, "");
  4790. };
  4791. goog.string.trimRight = function (a) {
  4792. return a.replace(/[\s\xa0]+$/, "");
  4793. };
  4794. goog.string.caseInsensitiveCompare = goog.string.internal.caseInsensitiveCompare;
  4795. goog.string.numberAwareCompare_ = function (a, b, c) {
  4796. if (a == b) return 0;
  4797. if (!a) return -1;
  4798. if (!b) return 1;
  4799. for (var d = a.toLowerCase().match(c), e = b.toLowerCase().match(c), f = Math.min(d.length, e.length), g = 0; g < f; g++) {
  4800. c = d[g];
  4801. var h = e[g];
  4802. if (c != h) return a = parseInt(c, 10), !isNaN(a) && (b = parseInt(h, 10), !isNaN(b) && a - b) ? a - b : c < h ? -1 : 1;
  4803. }
  4804. return d.length != e.length ? d.length - e.length : a < b ? -1 : 1;
  4805. };
  4806. goog.string.intAwareCompare = function (a, b) {
  4807. return goog.string.numberAwareCompare_(a, b, /\d+|\D+/g);
  4808. };
  4809. goog.string.floatAwareCompare = function (a, b) {
  4810. return goog.string.numberAwareCompare_(a, b, /\d+|\.\d+|\D+/g);
  4811. };
  4812. goog.string.numerateCompare = goog.string.floatAwareCompare;
  4813. goog.string.urlEncode = function (a) {
  4814. return encodeURIComponent(String(a));
  4815. };
  4816. goog.string.urlDecode = function (a) {
  4817. return decodeURIComponent(a.replace(/\+/g, " "));
  4818. };
  4819. goog.string.newLineToBr = goog.string.internal.newLineToBr;
  4820. goog.string.htmlEscape = function (a, b) {
  4821. a = goog.string.internal.htmlEscape(a, b);
  4822. goog.string.DETECT_DOUBLE_ESCAPING && (a = a.replace(goog.string.E_RE_, "&#101;"));
  4823. return a;
  4824. };
  4825. goog.string.E_RE_ = /e/g;
  4826. goog.string.unescapeEntities = function (a) {
  4827. return goog.string.contains(a, "&") ? !goog.string.FORCE_NON_DOM_HTML_UNESCAPING && "document" in goog.global ? goog.string.unescapeEntitiesUsingDom_(a) : goog.string.unescapePureXmlEntities_(a) : a;
  4828. };
  4829. goog.string.unescapeEntitiesWithDocument = function (a, b) {
  4830. return goog.string.contains(a, "&") ? goog.string.unescapeEntitiesUsingDom_(a, b) : a;
  4831. };
  4832. goog.string.unescapeEntitiesUsingDom_ = function (a, b) {
  4833. var c = {
  4834. "&amp;": "&",
  4835. "&lt;": "<",
  4836. "&gt;": ">",
  4837. "&quot;": '"'
  4838. };
  4839. var d = b ? b.createElement("div") : goog.global.document.createElement("div");
  4840. return a.replace(goog.string.HTML_ENTITY_PATTERN_, function (a, b) {
  4841. var e = c[a];
  4842. if (e) return e;
  4843. "#" == b.charAt(0) && (b = Number("0" + b.substr(1)), isNaN(b) || (e = String.fromCharCode(b)));
  4844. e || (goog.dom.safe.setInnerHtml(d, goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Single HTML entity."), a + " ")), e = d.firstChild.nodeValue.slice(0, -1));
  4845. return c[a] = e;
  4846. });
  4847. };
  4848. goog.string.unescapePureXmlEntities_ = function (a) {
  4849. return a.replace(/&([^;]+);/g, function (a, c) {
  4850. switch (c) {
  4851. case "amp":
  4852. return "&";
  4853. case "lt":
  4854. return "<";
  4855. case "gt":
  4856. return ">";
  4857. case "quot":
  4858. return '"';
  4859. default:
  4860. return "#" != c.charAt(0) || (c = Number("0" + c.substr(1)), isNaN(c)) ? a : String.fromCharCode(c);
  4861. }
  4862. });
  4863. };
  4864. goog.string.HTML_ENTITY_PATTERN_ = /&([^;\s<&]+);?/g;
  4865. goog.string.whitespaceEscape = function (a, b) {
  4866. return goog.string.newLineToBr(a.replace(/ /g, " &#160;"), b);
  4867. };
  4868. goog.string.preserveSpaces = function (a) {
  4869. return a.replace(/(^|[\n ]) /g, "$1" + goog.string.Unicode.NBSP);
  4870. };
  4871. goog.string.stripQuotes = function (a, b) {
  4872. for (var c = b.length, d = 0; d < c; d++) {
  4873. var e = 1 == c ? b : b.charAt(d);
  4874. if (a.charAt(0) == e && a.charAt(a.length - 1) == e) return a.substring(1, a.length - 1);
  4875. }
  4876. return a;
  4877. };
  4878. goog.string.truncate = function (a, b, c) {
  4879. c && (a = goog.string.unescapeEntities(a));
  4880. a.length > b && (a = a.substring(0, b - 3) + "...");
  4881. c && (a = goog.string.htmlEscape(a));
  4882. return a;
  4883. };
  4884. goog.string.truncateMiddle = function (a, b, c, d) {
  4885. c && (a = goog.string.unescapeEntities(a));
  4886. if (d && a.length > b) {
  4887. d > b && (d = b);
  4888. var e = a.length - d;
  4889. a = a.substring(0, b - d) + "..." + a.substring(e);
  4890. } else a.length > b && (d = Math.floor(b / 2), e = a.length - d, a = a.substring(0, d + b % 2) + "..." + a.substring(e));
  4891. c && (a = goog.string.htmlEscape(a));
  4892. return a;
  4893. };
  4894. goog.string.specialEscapeChars_ = {
  4895. "\x00": "\\0",
  4896. "\b": "\\b",
  4897. "\f": "\\f",
  4898. "\n": "\\n",
  4899. "\r": "\\r",
  4900. "\t": "\\t",
  4901. "\x0B": "\\x0B",
  4902. '"': '\\"',
  4903. "\\": "\\\\",
  4904. "<": "\\u003C"
  4905. };
  4906. goog.string.jsEscapeCache_ = {
  4907. "'": "\\'"
  4908. };
  4909. goog.string.quote = function (a) {
  4910. a = String(a);
  4911. for (var b = ['"'], c = 0; c < a.length; c++) {
  4912. var d = a.charAt(c),
  4913. e = d.charCodeAt(0);
  4914. b[c + 1] = goog.string.specialEscapeChars_[d] || (31 < e && 127 > e ? d : goog.string.escapeChar(d));
  4915. }
  4916. b.push('"');
  4917. return b.join("");
  4918. };
  4919. goog.string.escapeString = function (a) {
  4920. for (var b = [], c = 0; c < a.length; c++) {
  4921. b[c] = goog.string.escapeChar(a.charAt(c));
  4922. }
  4923. return b.join("");
  4924. };
  4925. goog.string.escapeChar = function (a) {
  4926. if (a in goog.string.jsEscapeCache_) return goog.string.jsEscapeCache_[a];
  4927. if (a in goog.string.specialEscapeChars_) return goog.string.jsEscapeCache_[a] = goog.string.specialEscapeChars_[a];
  4928. var b = a.charCodeAt(0);
  4929. if (31 < b && 127 > b) var c = a;else {
  4930. if (256 > b) {
  4931. if (c = "\\x", 16 > b || 256 < b) c += "0";
  4932. } else c = "\\u", 4096 > b && (c += "0");
  4933. c += b.toString(16).toUpperCase();
  4934. }
  4935. return goog.string.jsEscapeCache_[a] = c;
  4936. };
  4937. goog.string.contains = goog.string.internal.contains;
  4938. goog.string.caseInsensitiveContains = goog.string.internal.caseInsensitiveContains;
  4939. goog.string.countOf = function (a, b) {
  4940. return a && b ? a.split(b).length - 1 : 0;
  4941. };
  4942. goog.string.removeAt = function (a, b, c) {
  4943. var d = a;
  4944. 0 <= b && b < a.length && 0 < c && (d = a.substr(0, b) + a.substr(b + c, a.length - b - c));
  4945. return d;
  4946. };
  4947. goog.string.remove = function (a, b) {
  4948. return a.replace(b, "");
  4949. };
  4950. goog.string.removeAll = function (a, b) {
  4951. b = new RegExp(goog.string.regExpEscape(b), "g");
  4952. return a.replace(b, "");
  4953. };
  4954. goog.string.replaceAll = function (a, b, c) {
  4955. b = new RegExp(goog.string.regExpEscape(b), "g");
  4956. return a.replace(b, c.replace(/\$/g, "$$$$"));
  4957. };
  4958. goog.string.regExpEscape = function (a) {
  4959. return String(a).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g, "\\$1").replace(/\x08/g, "\\x08");
  4960. };
  4961. goog.string.repeat = String.prototype.repeat ? function (a, b) {
  4962. return a.repeat(b);
  4963. } : function (a, b) {
  4964. return Array(b + 1).join(a);
  4965. };
  4966. goog.string.padNumber = function (a, b, c) {
  4967. a = void 0 !== c ? a.toFixed(c) : String(a);
  4968. c = a.indexOf(".");
  4969. -1 == c && (c = a.length);
  4970. return goog.string.repeat("0", Math.max(0, b - c)) + a;
  4971. };
  4972. goog.string.makeSafe = function (a) {
  4973. return null == a ? "" : String(a);
  4974. };
  4975. goog.string.buildString = function (a) {
  4976. return Array.prototype.join.call(arguments, "");
  4977. };
  4978. goog.string.getRandomString = function () {
  4979. return Math.floor(2147483648 * Math.random()).toString(36) + Math.abs(Math.floor(2147483648 * Math.random()) ^ goog.now()).toString(36);
  4980. };
  4981. goog.string.compareVersions = goog.string.internal.compareVersions;
  4982. goog.string.hashCode = function (a) {
  4983. for (var b = 0, c = 0; c < a.length; ++c) {
  4984. b = 31 * b + a.charCodeAt(c) >>> 0;
  4985. }
  4986. return b;
  4987. };
  4988. goog.string.uniqueStringCounter_ = 2147483648 * Math.random() | 0;
  4989. goog.string.createUniqueString = function () {
  4990. return "goog_" + goog.string.uniqueStringCounter_++;
  4991. };
  4992. goog.string.toNumber = function (a) {
  4993. var b = Number(a);
  4994. return 0 == b && goog.string.isEmptyOrWhitespace(a) ? NaN : b;
  4995. };
  4996. goog.string.isLowerCamelCase = function (a) {
  4997. return /^[a-z]+([A-Z][a-z]*)*$/.test(a);
  4998. };
  4999. goog.string.isUpperCamelCase = function (a) {
  5000. return /^([A-Z][a-z]*)+$/.test(a);
  5001. };
  5002. goog.string.toCamelCase = function (a) {
  5003. return String(a).replace(/\-([a-z])/g, function (a, c) {
  5004. return c.toUpperCase();
  5005. });
  5006. };
  5007. goog.string.toSelectorCase = function (a) {
  5008. return String(a).replace(/([A-Z])/g, "-$1").toLowerCase();
  5009. };
  5010. goog.string.toTitleCase = function (a, b) {
  5011. b = "string" === typeof b ? goog.string.regExpEscape(b) : "\\s";
  5012. return a.replace(new RegExp("(^" + (b ? "|[" + b + "]+" : "") + ")([a-z])", "g"), function (a, b, e) {
  5013. return b + e.toUpperCase();
  5014. });
  5015. };
  5016. goog.string.capitalize = function (a) {
  5017. return String(a.charAt(0)).toUpperCase() + String(a.substr(1)).toLowerCase();
  5018. };
  5019. goog.string.parseInt = function (a) {
  5020. isFinite(a) && (a = String(a));
  5021. return "string" === typeof a ? /^\s*-?0x/i.test(a) ? parseInt(a, 16) : parseInt(a, 10) : NaN;
  5022. };
  5023. goog.string.splitLimit = function (a, b, c) {
  5024. a = a.split(b);
  5025. for (var d = []; 0 < c && a.length;) {
  5026. d.push(a.shift()), c--;
  5027. }
  5028. a.length && d.push(a.join(b));
  5029. return d;
  5030. };
  5031. goog.string.lastComponent = function (a, b) {
  5032. if (b) "string" == typeof b && (b = [b]);else return a;
  5033. for (var c = -1, d = 0; d < b.length; d++) {
  5034. if ("" != b[d]) {
  5035. var e = a.lastIndexOf(b[d]);
  5036. e > c && (c = e);
  5037. }
  5038. }
  5039. return -1 == c ? a : a.slice(c + 1);
  5040. };
  5041. goog.string.editDistance = function (a, b) {
  5042. var c = [],
  5043. d = [];
  5044. if (a == b) return 0;
  5045. if (!a.length || !b.length) return Math.max(a.length, b.length);
  5046. for (var e = 0; e < b.length + 1; e++) {
  5047. c[e] = e;
  5048. }
  5049. for (e = 0; e < a.length; e++) {
  5050. d[0] = e + 1;
  5051. for (var f = 0; f < b.length; f++) {
  5052. d[f + 1] = Math.min(d[f] + 1, c[f + 1] + 1, c[f] + Number(a[e] != b[f]));
  5053. }
  5054. for (f = 0; f < c.length; f++) {
  5055. c[f] = d[f];
  5056. }
  5057. }
  5058. return d[b.length];
  5059. };
  5060. goog.labs.userAgent.engine = {};
  5061. goog.labs.userAgent.engine.isPresto = function () {
  5062. return goog.labs.userAgent.util.matchUserAgent("Presto");
  5063. };
  5064. goog.labs.userAgent.engine.isTrident = function () {
  5065. return goog.labs.userAgent.util.matchUserAgent("Trident") || goog.labs.userAgent.util.matchUserAgent("MSIE");
  5066. };
  5067. goog.labs.userAgent.engine.isEdge = function () {
  5068. return goog.labs.userAgent.util.matchUserAgent("Edge");
  5069. };
  5070. goog.labs.userAgent.engine.isWebKit = function () {
  5071. return goog.labs.userAgent.util.matchUserAgentIgnoreCase("WebKit") && !goog.labs.userAgent.engine.isEdge();
  5072. };
  5073. goog.labs.userAgent.engine.isGecko = function () {
  5074. return goog.labs.userAgent.util.matchUserAgent("Gecko") && !goog.labs.userAgent.engine.isWebKit() && !goog.labs.userAgent.engine.isTrident() && !goog.labs.userAgent.engine.isEdge();
  5075. };
  5076. goog.labs.userAgent.engine.getVersion = function () {
  5077. var a = goog.labs.userAgent.util.getUserAgent();
  5078. if (a) {
  5079. a = goog.labs.userAgent.util.extractVersionTuples(a);
  5080. var b = goog.labs.userAgent.engine.getEngineTuple_(a);
  5081. if (b) return "Gecko" == b[0] ? goog.labs.userAgent.engine.getVersionForKey_(a, "Firefox") : b[1];
  5082. a = a[0];
  5083. var c;
  5084. if (a && (c = a[2]) && (c = /Trident\/([^\s;]+)/.exec(c))) return c[1];
  5085. }
  5086. return "";
  5087. };
  5088. goog.labs.userAgent.engine.getEngineTuple_ = function (a) {
  5089. if (!goog.labs.userAgent.engine.isEdge()) return a[1];
  5090. for (var b = 0; b < a.length; b++) {
  5091. var c = a[b];
  5092. if ("Edge" == c[0]) return c;
  5093. }
  5094. };
  5095. goog.labs.userAgent.engine.isVersionOrHigher = function (a) {
  5096. return 0 <= goog.string.compareVersions(goog.labs.userAgent.engine.getVersion(), a);
  5097. };
  5098. goog.labs.userAgent.engine.getVersionForKey_ = function (a, b) {
  5099. return (a = goog.array.find(a, function (a) {
  5100. return b == a[0];
  5101. })) && a[1] || "";
  5102. };
  5103. goog.labs.userAgent.platform = {};
  5104. goog.labs.userAgent.platform.isAndroid = function () {
  5105. return goog.labs.userAgent.util.matchUserAgent("Android");
  5106. };
  5107. goog.labs.userAgent.platform.isIpod = function () {
  5108. return goog.labs.userAgent.util.matchUserAgent("iPod");
  5109. };
  5110. goog.labs.userAgent.platform.isIphone = function () {
  5111. return goog.labs.userAgent.util.matchUserAgent("iPhone") && !goog.labs.userAgent.util.matchUserAgent("iPod") && !goog.labs.userAgent.util.matchUserAgent("iPad");
  5112. };
  5113. goog.labs.userAgent.platform.isIpad = function () {
  5114. return goog.labs.userAgent.util.matchUserAgent("iPad");
  5115. };
  5116. goog.labs.userAgent.platform.isIos = function () {
  5117. return goog.labs.userAgent.platform.isIphone() || goog.labs.userAgent.platform.isIpad() || goog.labs.userAgent.platform.isIpod();
  5118. };
  5119. goog.labs.userAgent.platform.isMacintosh = function () {
  5120. return goog.labs.userAgent.util.matchUserAgent("Macintosh");
  5121. };
  5122. goog.labs.userAgent.platform.isLinux = function () {
  5123. return goog.labs.userAgent.util.matchUserAgent("Linux");
  5124. };
  5125. goog.labs.userAgent.platform.isWindows = function () {
  5126. return goog.labs.userAgent.util.matchUserAgent("Windows");
  5127. };
  5128. goog.labs.userAgent.platform.isChromeOS = function () {
  5129. return goog.labs.userAgent.util.matchUserAgent("CrOS");
  5130. };
  5131. goog.labs.userAgent.platform.isChromecast = function () {
  5132. return goog.labs.userAgent.util.matchUserAgent("CrKey");
  5133. };
  5134. goog.labs.userAgent.platform.isKaiOS = function () {
  5135. return goog.labs.userAgent.util.matchUserAgentIgnoreCase("KaiOS");
  5136. };
  5137. goog.labs.userAgent.platform.getVersion = function () {
  5138. var a = goog.labs.userAgent.util.getUserAgent(),
  5139. b = "";
  5140. goog.labs.userAgent.platform.isWindows() ? (b = /Windows (?:NT|Phone) ([0-9.]+)/, b = (a = b.exec(a)) ? a[1] : "0.0") : goog.labs.userAgent.platform.isIos() ? (b = /(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/, b = (a = b.exec(a)) && a[1].replace(/_/g, ".")) : goog.labs.userAgent.platform.isMacintosh() ? (b = /Mac OS X ([0-9_.]+)/, b = (a = b.exec(a)) ? a[1].replace(/_/g, ".") : "10") : goog.labs.userAgent.platform.isKaiOS() ? (b = /(?:KaiOS)\/(\S+)/i, b = (a = b.exec(a)) && a[1]) : goog.labs.userAgent.platform.isAndroid() ? (b = /Android\s+([^\);]+)(\)|;)/, b = (a = b.exec(a)) && a[1]) : goog.labs.userAgent.platform.isChromeOS() && (b = /(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/, b = (a = b.exec(a)) && a[1]);
  5141. return b || "";
  5142. };
  5143. goog.labs.userAgent.platform.isVersionOrHigher = function (a) {
  5144. return 0 <= goog.string.compareVersions(goog.labs.userAgent.platform.getVersion(), a);
  5145. };
  5146. goog.reflect = {};
  5147. goog.reflect.object = function (a, b) {
  5148. return b;
  5149. };
  5150. goog.reflect.objectProperty = function (a, b) {
  5151. return a;
  5152. };
  5153. goog.reflect.sinkValue = function (a) {
  5154. goog.reflect.sinkValue[" "](a);
  5155. return a;
  5156. };
  5157. goog.reflect.sinkValue[" "] = goog.nullFunction;
  5158. goog.reflect.canAccessProperty = function (a, b) {
  5159. try {
  5160. return goog.reflect.sinkValue(a[b]), !0;
  5161. } catch (c) {}
  5162. return !1;
  5163. };
  5164. goog.reflect.cache = function (a, b, c, d) {
  5165. d = d ? d(b) : b;
  5166. return Object.prototype.hasOwnProperty.call(a, d) ? a[d] : a[d] = c(b);
  5167. };
  5168. goog.userAgent = {};
  5169. goog.userAgent.ASSUME_IE = !1;
  5170. goog.userAgent.ASSUME_EDGE = !1;
  5171. goog.userAgent.ASSUME_GECKO = !1;
  5172. goog.userAgent.ASSUME_WEBKIT = !1;
  5173. goog.userAgent.ASSUME_MOBILE_WEBKIT = !1;
  5174. goog.userAgent.ASSUME_OPERA = !1;
  5175. goog.userAgent.ASSUME_ANY_VERSION = !1;
  5176. goog.userAgent.BROWSER_KNOWN_ = goog.userAgent.ASSUME_IE || goog.userAgent.ASSUME_EDGE || goog.userAgent.ASSUME_GECKO || goog.userAgent.ASSUME_MOBILE_WEBKIT || goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_OPERA;
  5177. goog.userAgent.getUserAgentString = function () {
  5178. return goog.labs.userAgent.util.getUserAgent();
  5179. };
  5180. goog.userAgent.getNavigatorTyped = function () {
  5181. return goog.global.navigator || null;
  5182. };
  5183. goog.userAgent.getNavigator = function () {
  5184. return goog.userAgent.getNavigatorTyped();
  5185. };
  5186. goog.userAgent.OPERA = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_OPERA : goog.labs.userAgent.browser.isOpera();
  5187. goog.userAgent.IE = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_IE : goog.labs.userAgent.browser.isIE();
  5188. goog.userAgent.EDGE = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_EDGE : goog.labs.userAgent.engine.isEdge();
  5189. goog.userAgent.EDGE_OR_IE = goog.userAgent.EDGE || goog.userAgent.IE;
  5190. goog.userAgent.GECKO = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_GECKO : goog.labs.userAgent.engine.isGecko();
  5191. goog.userAgent.WEBKIT = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_MOBILE_WEBKIT : goog.labs.userAgent.engine.isWebKit();
  5192. goog.userAgent.isMobile_ = function () {
  5193. return goog.userAgent.WEBKIT && goog.labs.userAgent.util.matchUserAgent("Mobile");
  5194. };
  5195. goog.userAgent.MOBILE = goog.userAgent.ASSUME_MOBILE_WEBKIT || goog.userAgent.isMobile_();
  5196. goog.userAgent.SAFARI = goog.userAgent.WEBKIT;
  5197. goog.userAgent.determinePlatform_ = function () {
  5198. var a = goog.userAgent.getNavigatorTyped();
  5199. return a && a.platform || "";
  5200. };
  5201. goog.userAgent.PLATFORM = goog.userAgent.determinePlatform_();
  5202. goog.userAgent.ASSUME_MAC = !1;
  5203. goog.userAgent.ASSUME_WINDOWS = !1;
  5204. goog.userAgent.ASSUME_LINUX = !1;
  5205. goog.userAgent.ASSUME_X11 = !1;
  5206. goog.userAgent.ASSUME_ANDROID = !1;
  5207. goog.userAgent.ASSUME_IPHONE = !1;
  5208. goog.userAgent.ASSUME_IPAD = !1;
  5209. goog.userAgent.ASSUME_IPOD = !1;
  5210. goog.userAgent.ASSUME_KAIOS = !1;
  5211. goog.userAgent.PLATFORM_KNOWN_ = goog.userAgent.ASSUME_MAC || goog.userAgent.ASSUME_WINDOWS || goog.userAgent.ASSUME_LINUX || goog.userAgent.ASSUME_X11 || goog.userAgent.ASSUME_ANDROID || goog.userAgent.ASSUME_IPHONE || goog.userAgent.ASSUME_IPAD || goog.userAgent.ASSUME_IPOD;
  5212. goog.userAgent.MAC = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_MAC : goog.labs.userAgent.platform.isMacintosh();
  5213. goog.userAgent.WINDOWS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_WINDOWS : goog.labs.userAgent.platform.isWindows();
  5214. goog.userAgent.isLegacyLinux_ = function () {
  5215. return goog.labs.userAgent.platform.isLinux() || goog.labs.userAgent.platform.isChromeOS();
  5216. };
  5217. goog.userAgent.LINUX = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_LINUX : goog.userAgent.isLegacyLinux_();
  5218. goog.userAgent.isX11_ = function () {
  5219. var a = goog.userAgent.getNavigatorTyped();
  5220. return !!a && goog.string.contains(a.appVersion || "", "X11");
  5221. };
  5222. goog.userAgent.X11 = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_X11 : goog.userAgent.isX11_();
  5223. goog.userAgent.ANDROID = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_ANDROID : goog.labs.userAgent.platform.isAndroid();
  5224. goog.userAgent.IPHONE = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPHONE : goog.labs.userAgent.platform.isIphone();
  5225. goog.userAgent.IPAD = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPAD : goog.labs.userAgent.platform.isIpad();
  5226. goog.userAgent.IPOD = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPOD : goog.labs.userAgent.platform.isIpod();
  5227. goog.userAgent.IOS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPHONE || goog.userAgent.ASSUME_IPAD || goog.userAgent.ASSUME_IPOD : goog.labs.userAgent.platform.isIos();
  5228. goog.userAgent.KAIOS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_KAIOS : goog.labs.userAgent.platform.isKaiOS();
  5229. goog.userAgent.determineVersion_ = function () {
  5230. var a = "",
  5231. b = goog.userAgent.getVersionRegexResult_();
  5232. b && (a = b ? b[1] : "");
  5233. return goog.userAgent.IE && (b = goog.userAgent.getDocumentMode_(), null != b && b > parseFloat(a)) ? String(b) : a;
  5234. };
  5235. goog.userAgent.getVersionRegexResult_ = function () {
  5236. var a = goog.userAgent.getUserAgentString();
  5237. if (goog.userAgent.GECKO) return /rv:([^\);]+)(\)|;)/.exec(a);
  5238. if (goog.userAgent.EDGE) return /Edge\/([\d\.]+)/.exec(a);
  5239. if (goog.userAgent.IE) return /\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);
  5240. if (goog.userAgent.WEBKIT) return /WebKit\/(\S+)/.exec(a);
  5241. if (goog.userAgent.OPERA) return /(?:Version)[ \/]?(\S+)/.exec(a);
  5242. };
  5243. goog.userAgent.getDocumentMode_ = function () {
  5244. var a = goog.global.document;
  5245. return a ? a.documentMode : void 0;
  5246. };
  5247. goog.userAgent.VERSION = goog.userAgent.determineVersion_();
  5248. goog.userAgent.compare = function (a, b) {
  5249. return goog.string.compareVersions(a, b);
  5250. };
  5251. goog.userAgent.isVersionOrHigherCache_ = {};
  5252. goog.userAgent.isVersionOrHigher = function (a) {
  5253. return goog.userAgent.ASSUME_ANY_VERSION || goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_, a, function () {
  5254. return 0 <= goog.string.compareVersions(goog.userAgent.VERSION, a);
  5255. });
  5256. };
  5257. goog.userAgent.isVersion = goog.userAgent.isVersionOrHigher;
  5258. goog.userAgent.isDocumentModeOrHigher = function (a) {
  5259. return Number(goog.userAgent.DOCUMENT_MODE) >= a;
  5260. };
  5261. goog.userAgent.isDocumentMode = goog.userAgent.isDocumentModeOrHigher;
  5262. goog.userAgent.DOCUMENT_MODE = function () {
  5263. if (goog.global.document && goog.userAgent.IE) {
  5264. var a = goog.userAgent.getDocumentMode_();
  5265. return a ? a : parseInt(goog.userAgent.VERSION, 10) || void 0;
  5266. }
  5267. }();
  5268. goog.userAgent.product = {};
  5269. goog.userAgent.product.ASSUME_FIREFOX = !1;
  5270. goog.userAgent.product.ASSUME_IPHONE = !1;
  5271. goog.userAgent.product.ASSUME_IPAD = !1;
  5272. goog.userAgent.product.ASSUME_ANDROID = !1;
  5273. goog.userAgent.product.ASSUME_CHROME = !1;
  5274. goog.userAgent.product.ASSUME_SAFARI = !1;
  5275. goog.userAgent.product.PRODUCT_KNOWN_ = goog.userAgent.ASSUME_IE || goog.userAgent.ASSUME_EDGE || goog.userAgent.ASSUME_OPERA || goog.userAgent.product.ASSUME_FIREFOX || goog.userAgent.product.ASSUME_IPHONE || goog.userAgent.product.ASSUME_IPAD || goog.userAgent.product.ASSUME_ANDROID || goog.userAgent.product.ASSUME_CHROME || goog.userAgent.product.ASSUME_SAFARI;
  5276. goog.userAgent.product.OPERA = goog.userAgent.OPERA;
  5277. goog.userAgent.product.IE = goog.userAgent.IE;
  5278. goog.userAgent.product.EDGE = goog.userAgent.EDGE;
  5279. goog.userAgent.product.FIREFOX = goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_FIREFOX : goog.labs.userAgent.browser.isFirefox();
  5280. goog.userAgent.product.isIphoneOrIpod_ = function () {
  5281. return goog.labs.userAgent.platform.isIphone() || goog.labs.userAgent.platform.isIpod();
  5282. };
  5283. goog.userAgent.product.IPHONE = goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_IPHONE : goog.userAgent.product.isIphoneOrIpod_();
  5284. goog.userAgent.product.IPAD = goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_IPAD : goog.labs.userAgent.platform.isIpad();
  5285. goog.userAgent.product.ANDROID = goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_ANDROID : goog.labs.userAgent.browser.isAndroidBrowser();
  5286. goog.userAgent.product.CHROME = goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_CHROME : goog.labs.userAgent.browser.isChrome();
  5287. goog.userAgent.product.isSafariDesktop_ = function () {
  5288. return goog.labs.userAgent.browser.isSafari() && !goog.labs.userAgent.platform.isIos();
  5289. };
  5290. goog.userAgent.product.SAFARI = goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_SAFARI : goog.userAgent.product.isSafariDesktop_();
  5291. goog.crypt.base64 = {};
  5292. goog.crypt.base64.DEFAULT_ALPHABET_COMMON_ = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  5293. goog.crypt.base64.ENCODED_VALS = goog.crypt.base64.DEFAULT_ALPHABET_COMMON_ + "+/=";
  5294. goog.crypt.base64.ENCODED_VALS_WEBSAFE = goog.crypt.base64.DEFAULT_ALPHABET_COMMON_ + "-_.";
  5295. goog.crypt.base64.Alphabet = {
  5296. DEFAULT: 0,
  5297. NO_PADDING: 1,
  5298. WEBSAFE: 2,
  5299. WEBSAFE_DOT_PADDING: 3,
  5300. WEBSAFE_NO_PADDING: 4
  5301. };
  5302. goog.crypt.base64.paddingChars_ = "=.";
  5303. goog.crypt.base64.isPadding_ = function (a) {
  5304. return goog.string.contains(goog.crypt.base64.paddingChars_, a);
  5305. };
  5306. goog.crypt.base64.byteToCharMaps_ = {};
  5307. goog.crypt.base64.charToByteMap_ = null;
  5308. goog.crypt.base64.ASSUME_NATIVE_SUPPORT_ = goog.userAgent.GECKO || goog.userAgent.WEBKIT && !goog.userAgent.product.SAFARI || goog.userAgent.OPERA;
  5309. goog.crypt.base64.HAS_NATIVE_ENCODE_ = goog.crypt.base64.ASSUME_NATIVE_SUPPORT_ || "function" == typeof goog.global.btoa;
  5310. goog.crypt.base64.HAS_NATIVE_DECODE_ = goog.crypt.base64.ASSUME_NATIVE_SUPPORT_ || !goog.userAgent.product.SAFARI && !goog.userAgent.IE && "function" == typeof goog.global.atob;
  5311. goog.crypt.base64.encodeByteArray = function (a, b) {
  5312. goog.asserts.assert(goog.isArrayLike(a), "encodeByteArray takes an array as a parameter");
  5313. void 0 === b && (b = goog.crypt.base64.Alphabet.DEFAULT);
  5314. goog.crypt.base64.init_();
  5315. b = goog.crypt.base64.byteToCharMaps_[b];
  5316. for (var c = [], d = 0; d < a.length; d += 3) {
  5317. var e = a[d],
  5318. f = d + 1 < a.length,
  5319. g = f ? a[d + 1] : 0,
  5320. h = d + 2 < a.length,
  5321. k = h ? a[d + 2] : 0,
  5322. l = e >> 2;
  5323. e = (e & 3) << 4 | g >> 4;
  5324. g = (g & 15) << 2 | k >> 6;
  5325. k &= 63;
  5326. h || (k = 64, f || (g = 64));
  5327. c.push(b[l], b[e], b[g] || "", b[k] || "");
  5328. }
  5329. return c.join("");
  5330. };
  5331. goog.crypt.base64.encodeString = function (a, b) {
  5332. return goog.crypt.base64.HAS_NATIVE_ENCODE_ && !b ? goog.global.btoa(a) : goog.crypt.base64.encodeByteArray(goog.crypt.stringToByteArray(a), b);
  5333. };
  5334. goog.crypt.base64.decodeString = function (a, b) {
  5335. if (goog.crypt.base64.HAS_NATIVE_DECODE_ && !b) return goog.global.atob(a);
  5336. var c = "";
  5337. goog.crypt.base64.decodeStringInternal_(a, function (a) {
  5338. c += String.fromCharCode(a);
  5339. });
  5340. return c;
  5341. };
  5342. goog.crypt.base64.decodeStringToByteArray = function (a, b) {
  5343. var c = [];
  5344. goog.crypt.base64.decodeStringInternal_(a, function (a) {
  5345. c.push(a);
  5346. });
  5347. return c;
  5348. };
  5349. goog.crypt.base64.decodeStringToUint8Array = function (a) {
  5350. goog.asserts.assert(!goog.userAgent.IE || goog.userAgent.isVersionOrHigher("10"), "Browser does not support typed arrays");
  5351. var b = a.length,
  5352. c = 3 * b / 4;
  5353. c % 3 ? c = Math.floor(c) : goog.crypt.base64.isPadding_(a[b - 1]) && (c = goog.crypt.base64.isPadding_(a[b - 2]) ? c - 2 : c - 1);
  5354. var d = new Uint8Array(c),
  5355. e = 0;
  5356. goog.crypt.base64.decodeStringInternal_(a, function (a) {
  5357. d[e++] = a;
  5358. });
  5359. return d.subarray(0, e);
  5360. };
  5361. goog.crypt.base64.decodeStringInternal_ = function (a, b) {
  5362. function c(b) {
  5363. for (; d < a.length;) {
  5364. var c = a.charAt(d++),
  5365. e = goog.crypt.base64.charToByteMap_[c];
  5366. if (null != e) return e;
  5367. if (!goog.string.isEmptyOrWhitespace(c)) throw Error("Unknown base64 encoding at char: " + c);
  5368. }
  5369. return b;
  5370. }
  5371. goog.crypt.base64.init_();
  5372. for (var d = 0;;) {
  5373. var e = c(-1),
  5374. f = c(0),
  5375. g = c(64),
  5376. h = c(64);
  5377. if (64 === h && -1 === e) break;
  5378. b(e << 2 | f >> 4);
  5379. 64 != g && (b(f << 4 & 240 | g >> 2), 64 != h && b(g << 6 & 192 | h));
  5380. }
  5381. };
  5382. goog.crypt.base64.init_ = function () {
  5383. if (!goog.crypt.base64.charToByteMap_) {
  5384. goog.crypt.base64.charToByteMap_ = {};
  5385. for (var a = goog.crypt.base64.DEFAULT_ALPHABET_COMMON_.split(""), b = ["+/=", "+/", "-_=", "-_.", "-_"], c = 0; 5 > c; c++) {
  5386. var d = a.concat(b[c].split(""));
  5387. goog.crypt.base64.byteToCharMaps_[c] = d;
  5388. for (var e = 0; e < d.length; e++) {
  5389. var f = d[e],
  5390. g = goog.crypt.base64.charToByteMap_[f];
  5391. void 0 === g ? goog.crypt.base64.charToByteMap_[f] = e : goog.asserts.assert(g === e);
  5392. }
  5393. }
  5394. }
  5395. };
  5396. jspb.utils = {};
  5397. jspb.utils.split64Low = 0;
  5398. jspb.utils.split64High = 0;
  5399. jspb.utils.splitUint64 = function (a) {
  5400. var b = a >>> 0;
  5401. a = Math.floor((a - b) / jspb.BinaryConstants.TWO_TO_32) >>> 0;
  5402. jspb.utils.split64Low = b;
  5403. jspb.utils.split64High = a;
  5404. };
  5405. jspb.utils.splitInt64 = function (a) {
  5406. var b = 0 > a;
  5407. a = Math.abs(a);
  5408. var c = a >>> 0;
  5409. a = Math.floor((a - c) / jspb.BinaryConstants.TWO_TO_32);
  5410. a >>>= 0;
  5411. b && (a = ~a >>> 0, c = (~c >>> 0) + 1, 4294967295 < c && (c = 0, a++, 4294967295 < a && (a = 0)));
  5412. jspb.utils.split64Low = c;
  5413. jspb.utils.split64High = a;
  5414. };
  5415. jspb.utils.splitZigzag64 = function (a) {
  5416. var b = 0 > a;
  5417. a = 2 * Math.abs(a);
  5418. jspb.utils.splitUint64(a);
  5419. a = jspb.utils.split64Low;
  5420. var c = jspb.utils.split64High;
  5421. b && (0 == a ? 0 == c ? c = a = 4294967295 : (c--, a = 4294967295) : a--);
  5422. jspb.utils.split64Low = a;
  5423. jspb.utils.split64High = c;
  5424. };
  5425. jspb.utils.splitFloat32 = function (a) {
  5426. var b = 0 > a ? 1 : 0;
  5427. a = b ? -a : a;
  5428. if (0 === a) 0 < 1 / a ? (jspb.utils.split64High = 0, jspb.utils.split64Low = 0) : (jspb.utils.split64High = 0, jspb.utils.split64Low = 2147483648);else if (isNaN(a)) jspb.utils.split64High = 0, jspb.utils.split64Low = 2147483647;else if (a > jspb.BinaryConstants.FLOAT32_MAX) jspb.utils.split64High = 0, jspb.utils.split64Low = (b << 31 | 2139095040) >>> 0;else if (a < jspb.BinaryConstants.FLOAT32_MIN) a = Math.round(a / Math.pow(2, -149)), jspb.utils.split64High = 0, jspb.utils.split64Low = (b << 31 | a) >>> 0;else {
  5429. var c = Math.floor(Math.log(a) / Math.LN2);
  5430. a *= Math.pow(2, -c);
  5431. a = Math.round(a * jspb.BinaryConstants.TWO_TO_23);
  5432. 16777216 <= a && ++c;
  5433. jspb.utils.split64High = 0;
  5434. jspb.utils.split64Low = (b << 31 | c + 127 << 23 | a & 8388607) >>> 0;
  5435. }
  5436. };
  5437. jspb.utils.splitFloat64 = function (a) {
  5438. var b = 0 > a ? 1 : 0;
  5439. a = b ? -a : a;
  5440. if (0 === a) jspb.utils.split64High = 0 < 1 / a ? 0 : 2147483648, jspb.utils.split64Low = 0;else if (isNaN(a)) jspb.utils.split64High = 2147483647, jspb.utils.split64Low = 4294967295;else if (a > jspb.BinaryConstants.FLOAT64_MAX) jspb.utils.split64High = (b << 31 | 2146435072) >>> 0, jspb.utils.split64Low = 0;else if (a < jspb.BinaryConstants.FLOAT64_MIN) {
  5441. var c = a / Math.pow(2, -1074);
  5442. a = c / jspb.BinaryConstants.TWO_TO_32;
  5443. jspb.utils.split64High = (b << 31 | a) >>> 0;
  5444. jspb.utils.split64Low = c >>> 0;
  5445. } else {
  5446. c = a;
  5447. var d = 0;
  5448. if (2 <= c) for (; 2 <= c && 1023 > d;) {
  5449. d++, c /= 2;
  5450. } else for (; 1 > c && -1022 < d;) {
  5451. c *= 2, d--;
  5452. }
  5453. c = a * Math.pow(2, -d);
  5454. a = c * jspb.BinaryConstants.TWO_TO_20 & 1048575;
  5455. c = c * jspb.BinaryConstants.TWO_TO_52 >>> 0;
  5456. jspb.utils.split64High = (b << 31 | d + 1023 << 20 | a) >>> 0;
  5457. jspb.utils.split64Low = c;
  5458. }
  5459. };
  5460. jspb.utils.splitHash64 = function (a) {
  5461. var b = a.charCodeAt(0),
  5462. c = a.charCodeAt(1),
  5463. d = a.charCodeAt(2),
  5464. e = a.charCodeAt(3),
  5465. f = a.charCodeAt(4),
  5466. g = a.charCodeAt(5),
  5467. h = a.charCodeAt(6);
  5468. a = a.charCodeAt(7);
  5469. jspb.utils.split64Low = b + (c << 8) + (d << 16) + (e << 24) >>> 0;
  5470. jspb.utils.split64High = f + (g << 8) + (h << 16) + (a << 24) >>> 0;
  5471. };
  5472. jspb.utils.joinUint64 = function (a, b) {
  5473. return b * jspb.BinaryConstants.TWO_TO_32 + (a >>> 0);
  5474. };
  5475. jspb.utils.joinInt64 = function (a, b) {
  5476. var c = b & 2147483648;
  5477. c && (a = ~a + 1 >>> 0, b = ~b >>> 0, 0 == a && (b = b + 1 >>> 0));
  5478. a = jspb.utils.joinUint64(a, b);
  5479. return c ? -a : a;
  5480. };
  5481. jspb.utils.toZigzag64 = function (a, b, c) {
  5482. var d = b >> 31;
  5483. return c(a << 1 ^ d, (b << 1 | a >>> 31) ^ d);
  5484. };
  5485. jspb.utils.joinZigzag64 = function (a, b) {
  5486. return jspb.utils.fromZigzag64(a, b, jspb.utils.joinInt64);
  5487. };
  5488. jspb.utils.fromZigzag64 = function (a, b, c) {
  5489. var d = -(a & 1);
  5490. return c((a >>> 1 | b << 31) ^ d, b >>> 1 ^ d);
  5491. };
  5492. jspb.utils.joinFloat32 = function (a, b) {
  5493. b = 2 * (a >> 31) + 1;
  5494. var c = a >>> 23 & 255;
  5495. a &= 8388607;
  5496. return 255 == c ? a ? NaN : Infinity * b : 0 == c ? b * Math.pow(2, -149) * a : b * Math.pow(2, c - 150) * (a + Math.pow(2, 23));
  5497. };
  5498. jspb.utils.joinFloat64 = function (a, b) {
  5499. var c = 2 * (b >> 31) + 1,
  5500. d = b >>> 20 & 2047;
  5501. a = jspb.BinaryConstants.TWO_TO_32 * (b & 1048575) + a;
  5502. return 2047 == d ? a ? NaN : Infinity * c : 0 == d ? c * Math.pow(2, -1074) * a : c * Math.pow(2, d - 1075) * (a + jspb.BinaryConstants.TWO_TO_52);
  5503. };
  5504. jspb.utils.joinHash64 = function (a, b) {
  5505. return String.fromCharCode(a >>> 0 & 255, a >>> 8 & 255, a >>> 16 & 255, a >>> 24 & 255, b >>> 0 & 255, b >>> 8 & 255, b >>> 16 & 255, b >>> 24 & 255);
  5506. };
  5507. jspb.utils.DIGITS = "0123456789abcdef".split("");
  5508. jspb.utils.ZERO_CHAR_CODE_ = 48;
  5509. jspb.utils.A_CHAR_CODE_ = 97;
  5510. jspb.utils.joinUnsignedDecimalString = function (a, b) {
  5511. function c(a, b) {
  5512. a = a ? String(a) : "";
  5513. return b ? "0000000".slice(a.length) + a : a;
  5514. }
  5515. if (2097151 >= b) return "" + jspb.utils.joinUint64(a, b);
  5516. var d = (a >>> 24 | b << 8) >>> 0 & 16777215;
  5517. b = b >> 16 & 65535;
  5518. a = (a & 16777215) + 6777216 * d + 6710656 * b;
  5519. d += 8147497 * b;
  5520. b *= 2;
  5521. 1E7 <= a && (d += Math.floor(a / 1E7), a %= 1E7);
  5522. 1E7 <= d && (b += Math.floor(d / 1E7), d %= 1E7);
  5523. return c(b, 0) + c(d, b) + c(a, 1);
  5524. };
  5525. jspb.utils.joinSignedDecimalString = function (a, b) {
  5526. var c = b & 2147483648;
  5527. c && (a = ~a + 1 >>> 0, b = ~b + (0 == a ? 1 : 0) >>> 0);
  5528. a = jspb.utils.joinUnsignedDecimalString(a, b);
  5529. return c ? "-" + a : a;
  5530. };
  5531. jspb.utils.hash64ToDecimalString = function (a, b) {
  5532. jspb.utils.splitHash64(a);
  5533. a = jspb.utils.split64Low;
  5534. var c = jspb.utils.split64High;
  5535. return b ? jspb.utils.joinSignedDecimalString(a, c) : jspb.utils.joinUnsignedDecimalString(a, c);
  5536. };
  5537. jspb.utils.hash64ArrayToDecimalStrings = function (a, b) {
  5538. for (var c = Array(a.length), d = 0; d < a.length; d++) {
  5539. c[d] = jspb.utils.hash64ToDecimalString(a[d], b);
  5540. }
  5541. return c;
  5542. };
  5543. jspb.utils.decimalStringToHash64 = function (a) {
  5544. function b(a, b) {
  5545. for (var c = 0; 8 > c && (1 !== a || 0 < b); c++) {
  5546. b = a * e[c] + b, e[c] = b & 255, b >>>= 8;
  5547. }
  5548. }
  5549. function c() {
  5550. for (var a = 0; 8 > a; a++) {
  5551. e[a] = ~e[a] & 255;
  5552. }
  5553. }
  5554. jspb.asserts.assert(0 < a.length);
  5555. var d = !1;
  5556. "-" === a[0] && (d = !0, a = a.slice(1));
  5557. for (var e = [0, 0, 0, 0, 0, 0, 0, 0], f = 0; f < a.length; f++) {
  5558. b(10, a.charCodeAt(f) - jspb.utils.ZERO_CHAR_CODE_);
  5559. }
  5560. d && (c(), b(1, 1));
  5561. return goog.crypt.byteArrayToString(e);
  5562. };
  5563. jspb.utils.splitDecimalString = function (a) {
  5564. jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(a));
  5565. };
  5566. jspb.utils.toHexDigit_ = function (a) {
  5567. return String.fromCharCode(10 > a ? jspb.utils.ZERO_CHAR_CODE_ + a : jspb.utils.A_CHAR_CODE_ - 10 + a);
  5568. };
  5569. jspb.utils.fromHexCharCode_ = function (a) {
  5570. return a >= jspb.utils.A_CHAR_CODE_ ? a - jspb.utils.A_CHAR_CODE_ + 10 : a - jspb.utils.ZERO_CHAR_CODE_;
  5571. };
  5572. jspb.utils.hash64ToHexString = function (a) {
  5573. var b = Array(18);
  5574. b[0] = "0";
  5575. b[1] = "x";
  5576. for (var c = 0; 8 > c; c++) {
  5577. var d = a.charCodeAt(7 - c);
  5578. b[2 * c + 2] = jspb.utils.toHexDigit_(d >> 4);
  5579. b[2 * c + 3] = jspb.utils.toHexDigit_(d & 15);
  5580. }
  5581. return b.join("");
  5582. };
  5583. jspb.utils.hexStringToHash64 = function (a) {
  5584. a = a.toLowerCase();
  5585. jspb.asserts.assert(18 == a.length);
  5586. jspb.asserts.assert("0" == a[0]);
  5587. jspb.asserts.assert("x" == a[1]);
  5588. for (var b = "", c = 0; 8 > c; c++) {
  5589. var d = jspb.utils.fromHexCharCode_(a.charCodeAt(2 * c + 2)),
  5590. e = jspb.utils.fromHexCharCode_(a.charCodeAt(2 * c + 3));
  5591. b = String.fromCharCode(16 * d + e) + b;
  5592. }
  5593. return b;
  5594. };
  5595. jspb.utils.hash64ToNumber = function (a, b) {
  5596. jspb.utils.splitHash64(a);
  5597. a = jspb.utils.split64Low;
  5598. var c = jspb.utils.split64High;
  5599. return b ? jspb.utils.joinInt64(a, c) : jspb.utils.joinUint64(a, c);
  5600. };
  5601. jspb.utils.numberToHash64 = function (a) {
  5602. jspb.utils.splitInt64(a);
  5603. return jspb.utils.joinHash64(jspb.utils.split64Low, jspb.utils.split64High);
  5604. };
  5605. jspb.utils.countVarints = function (a, b, c) {
  5606. for (var d = 0, e = b; e < c; e++) {
  5607. d += a[e] >> 7;
  5608. }
  5609. return c - b - d;
  5610. };
  5611. jspb.utils.countVarintFields = function (a, b, c, d) {
  5612. var e = 0;
  5613. d = 8 * d + jspb.BinaryConstants.WireType.VARINT;
  5614. if (128 > d) for (; b < c && a[b++] == d;) {
  5615. for (e++;;) {
  5616. var f = a[b++];
  5617. if (0 == (f & 128)) break;
  5618. }
  5619. } else for (; b < c;) {
  5620. for (f = d; 128 < f;) {
  5621. if (a[b] != (f & 127 | 128)) return e;
  5622. b++;
  5623. f >>= 7;
  5624. }
  5625. if (a[b++] != f) break;
  5626. for (e++; f = a[b++], 0 != (f & 128);) {
  5627. ;
  5628. }
  5629. }
  5630. return e;
  5631. };
  5632. jspb.utils.countFixedFields_ = function (a, b, c, d, e) {
  5633. var f = 0;
  5634. if (128 > d) for (; b < c && a[b++] == d;) {
  5635. f++, b += e;
  5636. } else for (; b < c;) {
  5637. for (var g = d; 128 < g;) {
  5638. if (a[b++] != (g & 127 | 128)) return f;
  5639. g >>= 7;
  5640. }
  5641. if (a[b++] != g) break;
  5642. f++;
  5643. b += e;
  5644. }
  5645. return f;
  5646. };
  5647. jspb.utils.countFixed32Fields = function (a, b, c, d) {
  5648. return jspb.utils.countFixedFields_(a, b, c, 8 * d + jspb.BinaryConstants.WireType.FIXED32, 4);
  5649. };
  5650. jspb.utils.countFixed64Fields = function (a, b, c, d) {
  5651. return jspb.utils.countFixedFields_(a, b, c, 8 * d + jspb.BinaryConstants.WireType.FIXED64, 8);
  5652. };
  5653. jspb.utils.countDelimitedFields = function (a, b, c, d) {
  5654. var e = 0;
  5655. for (d = 8 * d + jspb.BinaryConstants.WireType.DELIMITED; b < c;) {
  5656. for (var f = d; 128 < f;) {
  5657. if (a[b++] != (f & 127 | 128)) return e;
  5658. f >>= 7;
  5659. }
  5660. if (a[b++] != f) break;
  5661. e++;
  5662. for (var g = 0, h = 1; f = a[b++], g += (f & 127) * h, h *= 128, 0 != (f & 128);) {
  5663. ;
  5664. }
  5665. b += g;
  5666. }
  5667. return e;
  5668. };
  5669. jspb.utils.debugBytesToTextFormat = function (a) {
  5670. var b = '"';
  5671. if (a) {
  5672. a = jspb.utils.byteSourceToUint8Array(a);
  5673. for (var c = 0; c < a.length; c++) {
  5674. b += "\\x", 16 > a[c] && (b += "0"), b += a[c].toString(16);
  5675. }
  5676. }
  5677. return b + '"';
  5678. };
  5679. jspb.utils.debugScalarToTextFormat = function (a) {
  5680. return "string" === typeof a ? goog.string.quote(a) : a.toString();
  5681. };
  5682. jspb.utils.stringToByteArray = function (a) {
  5683. for (var b = new Uint8Array(a.length), c = 0; c < a.length; c++) {
  5684. var d = a.charCodeAt(c);
  5685. if (255 < d) throw Error("Conversion error: string contains codepoint outside of byte range");
  5686. b[c] = d;
  5687. }
  5688. return b;
  5689. };
  5690. jspb.utils.byteSourceToUint8Array = function (a) {
  5691. if (a.constructor === Uint8Array) return a;
  5692. if (a.constructor === ArrayBuffer || a.constructor === Array) return new Uint8Array(a);
  5693. if (a.constructor === String) return goog.crypt.base64.decodeStringToUint8Array(a);
  5694. if (a instanceof Uint8Array) return new Uint8Array(a.buffer, a.byteOffset, a.byteLength);
  5695. jspb.asserts.fail("Type not convertible to Uint8Array.");
  5696. return new Uint8Array(0);
  5697. };
  5698. jspb.BinaryDecoder = function (a, b, c) {
  5699. this.bytes_ = null;
  5700. this.cursor_ = this.end_ = this.start_ = 0;
  5701. this.error_ = !1;
  5702. a && this.setBlock(a, b, c);
  5703. };
  5704. jspb.BinaryDecoder.instanceCache_ = [];
  5705. jspb.BinaryDecoder.alloc = function (a, b, c) {
  5706. if (jspb.BinaryDecoder.instanceCache_.length) {
  5707. var d = jspb.BinaryDecoder.instanceCache_.pop();
  5708. a && d.setBlock(a, b, c);
  5709. return d;
  5710. }
  5711. return new jspb.BinaryDecoder(a, b, c);
  5712. };
  5713. jspb.BinaryDecoder.prototype.free = function () {
  5714. this.clear();
  5715. 100 > jspb.BinaryDecoder.instanceCache_.length && jspb.BinaryDecoder.instanceCache_.push(this);
  5716. };
  5717. jspb.BinaryDecoder.prototype.clone = function () {
  5718. return jspb.BinaryDecoder.alloc(this.bytes_, this.start_, this.end_ - this.start_);
  5719. };
  5720. jspb.BinaryDecoder.prototype.clear = function () {
  5721. this.bytes_ = null;
  5722. this.cursor_ = this.end_ = this.start_ = 0;
  5723. this.error_ = !1;
  5724. };
  5725. jspb.BinaryDecoder.prototype.getBuffer = function () {
  5726. return this.bytes_;
  5727. };
  5728. jspb.BinaryDecoder.prototype.setBlock = function (a, b, c) {
  5729. this.bytes_ = jspb.utils.byteSourceToUint8Array(a);
  5730. this.start_ = void 0 !== b ? b : 0;
  5731. this.end_ = void 0 !== c ? this.start_ + c : this.bytes_.length;
  5732. this.cursor_ = this.start_;
  5733. };
  5734. jspb.BinaryDecoder.prototype.getEnd = function () {
  5735. return this.end_;
  5736. };
  5737. jspb.BinaryDecoder.prototype.setEnd = function (a) {
  5738. this.end_ = a;
  5739. };
  5740. jspb.BinaryDecoder.prototype.reset = function () {
  5741. this.cursor_ = this.start_;
  5742. };
  5743. jspb.BinaryDecoder.prototype.getCursor = function () {
  5744. return this.cursor_;
  5745. };
  5746. jspb.BinaryDecoder.prototype.setCursor = function (a) {
  5747. this.cursor_ = a;
  5748. };
  5749. jspb.BinaryDecoder.prototype.advance = function (a) {
  5750. this.cursor_ += a;
  5751. jspb.asserts.assert(this.cursor_ <= this.end_);
  5752. };
  5753. jspb.BinaryDecoder.prototype.atEnd = function () {
  5754. return this.cursor_ == this.end_;
  5755. };
  5756. jspb.BinaryDecoder.prototype.pastEnd = function () {
  5757. return this.cursor_ > this.end_;
  5758. };
  5759. jspb.BinaryDecoder.prototype.getError = function () {
  5760. return this.error_ || 0 > this.cursor_ || this.cursor_ > this.end_;
  5761. };
  5762. jspb.BinaryDecoder.prototype.readSplitVarint64 = function (a) {
  5763. for (var b = 128, c = 0, d = 0, e = 0; 4 > e && 128 <= b; e++) {
  5764. b = this.bytes_[this.cursor_++], c |= (b & 127) << 7 * e;
  5765. }
  5766. 128 <= b && (b = this.bytes_[this.cursor_++], c |= (b & 127) << 28, d |= (b & 127) >> 4);
  5767. if (128 <= b) for (e = 0; 5 > e && 128 <= b; e++) {
  5768. b = this.bytes_[this.cursor_++], d |= (b & 127) << 7 * e + 3;
  5769. }
  5770. if (128 > b) return a(c >>> 0, d >>> 0);
  5771. jspb.asserts.fail("Failed to read varint, encoding is invalid.");
  5772. this.error_ = !0;
  5773. };
  5774. jspb.BinaryDecoder.prototype.readSplitZigzagVarint64 = function (a) {
  5775. return this.readSplitVarint64(function (b, c) {
  5776. return jspb.utils.fromZigzag64(b, c, a);
  5777. });
  5778. };
  5779. jspb.BinaryDecoder.prototype.readSplitFixed64 = function (a) {
  5780. var b = this.bytes_,
  5781. c = this.cursor_;
  5782. this.cursor_ += 8;
  5783. for (var d = 0, e = 0, f = c + 7; f >= c; f--) {
  5784. d = d << 8 | b[f], e = e << 8 | b[f + 4];
  5785. }
  5786. return a(d, e);
  5787. };
  5788. jspb.BinaryDecoder.prototype.skipVarint = function () {
  5789. for (; this.bytes_[this.cursor_] & 128;) {
  5790. this.cursor_++;
  5791. }
  5792. this.cursor_++;
  5793. };
  5794. jspb.BinaryDecoder.prototype.unskipVarint = function (a) {
  5795. for (; 128 < a;) {
  5796. this.cursor_--, a >>>= 7;
  5797. }
  5798. this.cursor_--;
  5799. };
  5800. jspb.BinaryDecoder.prototype.readUnsignedVarint32 = function () {
  5801. var a = this.bytes_;
  5802. var b = a[this.cursor_ + 0];
  5803. var c = b & 127;
  5804. if (128 > b) return this.cursor_ += 1, jspb.asserts.assert(this.cursor_ <= this.end_), c;
  5805. b = a[this.cursor_ + 1];
  5806. c |= (b & 127) << 7;
  5807. if (128 > b) return this.cursor_ += 2, jspb.asserts.assert(this.cursor_ <= this.end_), c;
  5808. b = a[this.cursor_ + 2];
  5809. c |= (b & 127) << 14;
  5810. if (128 > b) return this.cursor_ += 3, jspb.asserts.assert(this.cursor_ <= this.end_), c;
  5811. b = a[this.cursor_ + 3];
  5812. c |= (b & 127) << 21;
  5813. if (128 > b) return this.cursor_ += 4, jspb.asserts.assert(this.cursor_ <= this.end_), c;
  5814. b = a[this.cursor_ + 4];
  5815. c |= (b & 15) << 28;
  5816. if (128 > b) return this.cursor_ += 5, jspb.asserts.assert(this.cursor_ <= this.end_), c >>> 0;
  5817. this.cursor_ += 5;
  5818. 128 <= a[this.cursor_++] && 128 <= a[this.cursor_++] && 128 <= a[this.cursor_++] && 128 <= a[this.cursor_++] && 128 <= a[this.cursor_++] && jspb.asserts.assert(!1);
  5819. jspb.asserts.assert(this.cursor_ <= this.end_);
  5820. return c;
  5821. };
  5822. jspb.BinaryDecoder.prototype.readSignedVarint32 = function () {
  5823. return ~~this.readUnsignedVarint32();
  5824. };
  5825. jspb.BinaryDecoder.prototype.readUnsignedVarint32String = function () {
  5826. return this.readUnsignedVarint32().toString();
  5827. };
  5828. jspb.BinaryDecoder.prototype.readSignedVarint32String = function () {
  5829. return this.readSignedVarint32().toString();
  5830. };
  5831. jspb.BinaryDecoder.prototype.readZigzagVarint32 = function () {
  5832. var a = this.readUnsignedVarint32();
  5833. return a >>> 1 ^ -(a & 1);
  5834. };
  5835. jspb.BinaryDecoder.prototype.readUnsignedVarint64 = function () {
  5836. return this.readSplitVarint64(jspb.utils.joinUint64);
  5837. };
  5838. jspb.BinaryDecoder.prototype.readUnsignedVarint64String = function () {
  5839. return this.readSplitVarint64(jspb.utils.joinUnsignedDecimalString);
  5840. };
  5841. jspb.BinaryDecoder.prototype.readSignedVarint64 = function () {
  5842. return this.readSplitVarint64(jspb.utils.joinInt64);
  5843. };
  5844. jspb.BinaryDecoder.prototype.readSignedVarint64String = function () {
  5845. return this.readSplitVarint64(jspb.utils.joinSignedDecimalString);
  5846. };
  5847. jspb.BinaryDecoder.prototype.readZigzagVarint64 = function () {
  5848. return this.readSplitVarint64(jspb.utils.joinZigzag64);
  5849. };
  5850. jspb.BinaryDecoder.prototype.readZigzagVarintHash64 = function () {
  5851. return this.readSplitZigzagVarint64(jspb.utils.joinHash64);
  5852. };
  5853. jspb.BinaryDecoder.prototype.readZigzagVarint64String = function () {
  5854. return this.readSplitZigzagVarint64(jspb.utils.joinSignedDecimalString);
  5855. };
  5856. jspb.BinaryDecoder.prototype.readUint8 = function () {
  5857. var a = this.bytes_[this.cursor_ + 0];
  5858. this.cursor_ += 1;
  5859. jspb.asserts.assert(this.cursor_ <= this.end_);
  5860. return a;
  5861. };
  5862. jspb.BinaryDecoder.prototype.readUint16 = function () {
  5863. var a = this.bytes_[this.cursor_ + 0],
  5864. b = this.bytes_[this.cursor_ + 1];
  5865. this.cursor_ += 2;
  5866. jspb.asserts.assert(this.cursor_ <= this.end_);
  5867. return a << 0 | b << 8;
  5868. };
  5869. jspb.BinaryDecoder.prototype.readUint32 = function () {
  5870. var a = this.bytes_[this.cursor_ + 0],
  5871. b = this.bytes_[this.cursor_ + 1],
  5872. c = this.bytes_[this.cursor_ + 2],
  5873. d = this.bytes_[this.cursor_ + 3];
  5874. this.cursor_ += 4;
  5875. jspb.asserts.assert(this.cursor_ <= this.end_);
  5876. return (a << 0 | b << 8 | c << 16 | d << 24) >>> 0;
  5877. };
  5878. jspb.BinaryDecoder.prototype.readUint64 = function () {
  5879. var a = this.readUint32(),
  5880. b = this.readUint32();
  5881. return jspb.utils.joinUint64(a, b);
  5882. };
  5883. jspb.BinaryDecoder.prototype.readUint64String = function () {
  5884. var a = this.readUint32(),
  5885. b = this.readUint32();
  5886. return jspb.utils.joinUnsignedDecimalString(a, b);
  5887. };
  5888. jspb.BinaryDecoder.prototype.readInt8 = function () {
  5889. var a = this.bytes_[this.cursor_ + 0];
  5890. this.cursor_ += 1;
  5891. jspb.asserts.assert(this.cursor_ <= this.end_);
  5892. return a << 24 >> 24;
  5893. };
  5894. jspb.BinaryDecoder.prototype.readInt16 = function () {
  5895. var a = this.bytes_[this.cursor_ + 0],
  5896. b = this.bytes_[this.cursor_ + 1];
  5897. this.cursor_ += 2;
  5898. jspb.asserts.assert(this.cursor_ <= this.end_);
  5899. return (a << 0 | b << 8) << 16 >> 16;
  5900. };
  5901. jspb.BinaryDecoder.prototype.readInt32 = function () {
  5902. var a = this.bytes_[this.cursor_ + 0],
  5903. b = this.bytes_[this.cursor_ + 1],
  5904. c = this.bytes_[this.cursor_ + 2],
  5905. d = this.bytes_[this.cursor_ + 3];
  5906. this.cursor_ += 4;
  5907. jspb.asserts.assert(this.cursor_ <= this.end_);
  5908. return a << 0 | b << 8 | c << 16 | d << 24;
  5909. };
  5910. jspb.BinaryDecoder.prototype.readInt64 = function () {
  5911. var a = this.readUint32(),
  5912. b = this.readUint32();
  5913. return jspb.utils.joinInt64(a, b);
  5914. };
  5915. jspb.BinaryDecoder.prototype.readInt64String = function () {
  5916. var a = this.readUint32(),
  5917. b = this.readUint32();
  5918. return jspb.utils.joinSignedDecimalString(a, b);
  5919. };
  5920. jspb.BinaryDecoder.prototype.readFloat = function () {
  5921. var a = this.readUint32();
  5922. return jspb.utils.joinFloat32(a, 0);
  5923. };
  5924. jspb.BinaryDecoder.prototype.readDouble = function () {
  5925. var a = this.readUint32(),
  5926. b = this.readUint32();
  5927. return jspb.utils.joinFloat64(a, b);
  5928. };
  5929. jspb.BinaryDecoder.prototype.readBool = function () {
  5930. return !!this.bytes_[this.cursor_++];
  5931. };
  5932. jspb.BinaryDecoder.prototype.readEnum = function () {
  5933. return this.readSignedVarint32();
  5934. };
  5935. jspb.BinaryDecoder.prototype.readString = function (a) {
  5936. var b = this.bytes_,
  5937. c = this.cursor_;
  5938. a = c + a;
  5939. for (var d = [], e = ""; c < a;) {
  5940. var f = b[c++];
  5941. if (128 > f) d.push(f);else if (192 > f) continue;else if (224 > f) {
  5942. var g = b[c++];
  5943. d.push((f & 31) << 6 | g & 63);
  5944. } else if (240 > f) {
  5945. g = b[c++];
  5946. var h = b[c++];
  5947. d.push((f & 15) << 12 | (g & 63) << 6 | h & 63);
  5948. } else if (248 > f) {
  5949. g = b[c++];
  5950. h = b[c++];
  5951. var k = b[c++];
  5952. f = (f & 7) << 18 | (g & 63) << 12 | (h & 63) << 6 | k & 63;
  5953. f -= 65536;
  5954. d.push((f >> 10 & 1023) + 55296, (f & 1023) + 56320);
  5955. }
  5956. 8192 <= d.length && (e += String.fromCharCode.apply(null, d), d.length = 0);
  5957. }
  5958. e += goog.crypt.byteArrayToString(d);
  5959. this.cursor_ = c;
  5960. return e;
  5961. };
  5962. jspb.BinaryDecoder.prototype.readStringWithLength = function () {
  5963. var a = this.readUnsignedVarint32();
  5964. return this.readString(a);
  5965. };
  5966. jspb.BinaryDecoder.prototype.readBytes = function (a) {
  5967. if (0 > a || this.cursor_ + a > this.bytes_.length) return this.error_ = !0, jspb.asserts.fail("Invalid byte length!"), new Uint8Array(0);
  5968. var b = this.bytes_.subarray(this.cursor_, this.cursor_ + a);
  5969. this.cursor_ += a;
  5970. jspb.asserts.assert(this.cursor_ <= this.end_);
  5971. return b;
  5972. };
  5973. jspb.BinaryDecoder.prototype.readVarintHash64 = function () {
  5974. return this.readSplitVarint64(jspb.utils.joinHash64);
  5975. };
  5976. jspb.BinaryDecoder.prototype.readFixedHash64 = function () {
  5977. var a = this.bytes_,
  5978. b = this.cursor_,
  5979. c = a[b + 0],
  5980. d = a[b + 1],
  5981. e = a[b + 2],
  5982. f = a[b + 3],
  5983. g = a[b + 4],
  5984. h = a[b + 5],
  5985. k = a[b + 6];
  5986. a = a[b + 7];
  5987. this.cursor_ += 8;
  5988. return String.fromCharCode(c, d, e, f, g, h, k, a);
  5989. };
  5990. jspb.BinaryReader = function (a, b, c) {
  5991. this.decoder_ = jspb.BinaryDecoder.alloc(a, b, c);
  5992. this.fieldCursor_ = this.decoder_.getCursor();
  5993. this.nextField_ = jspb.BinaryConstants.INVALID_FIELD_NUMBER;
  5994. this.nextWireType_ = jspb.BinaryConstants.WireType.INVALID;
  5995. this.error_ = !1;
  5996. this.readCallbacks_ = null;
  5997. };
  5998. jspb.BinaryReader.instanceCache_ = [];
  5999. jspb.BinaryReader.alloc = function (a, b, c) {
  6000. if (jspb.BinaryReader.instanceCache_.length) {
  6001. var d = jspb.BinaryReader.instanceCache_.pop();
  6002. a && d.decoder_.setBlock(a, b, c);
  6003. return d;
  6004. }
  6005. return new jspb.BinaryReader(a, b, c);
  6006. };
  6007. jspb.BinaryReader.prototype.alloc = jspb.BinaryReader.alloc;
  6008. jspb.BinaryReader.prototype.free = function () {
  6009. this.decoder_.clear();
  6010. this.nextField_ = jspb.BinaryConstants.INVALID_FIELD_NUMBER;
  6011. this.nextWireType_ = jspb.BinaryConstants.WireType.INVALID;
  6012. this.error_ = !1;
  6013. this.readCallbacks_ = null;
  6014. 100 > jspb.BinaryReader.instanceCache_.length && jspb.BinaryReader.instanceCache_.push(this);
  6015. };
  6016. jspb.BinaryReader.prototype.getFieldCursor = function () {
  6017. return this.fieldCursor_;
  6018. };
  6019. jspb.BinaryReader.prototype.getCursor = function () {
  6020. return this.decoder_.getCursor();
  6021. };
  6022. jspb.BinaryReader.prototype.getBuffer = function () {
  6023. return this.decoder_.getBuffer();
  6024. };
  6025. jspb.BinaryReader.prototype.getFieldNumber = function () {
  6026. return this.nextField_;
  6027. };
  6028. goog.exportProperty(jspb.BinaryReader.prototype, "getFieldNumber", jspb.BinaryReader.prototype.getFieldNumber);
  6029. jspb.BinaryReader.prototype.getWireType = function () {
  6030. return this.nextWireType_;
  6031. };
  6032. jspb.BinaryReader.prototype.isDelimited = function () {
  6033. return this.nextWireType_ == jspb.BinaryConstants.WireType.DELIMITED;
  6034. };
  6035. goog.exportProperty(jspb.BinaryReader.prototype, "isDelimited", jspb.BinaryReader.prototype.isDelimited);
  6036. jspb.BinaryReader.prototype.isEndGroup = function () {
  6037. return this.nextWireType_ == jspb.BinaryConstants.WireType.END_GROUP;
  6038. };
  6039. goog.exportProperty(jspb.BinaryReader.prototype, "isEndGroup", jspb.BinaryReader.prototype.isEndGroup);
  6040. jspb.BinaryReader.prototype.getError = function () {
  6041. return this.error_ || this.decoder_.getError();
  6042. };
  6043. jspb.BinaryReader.prototype.setBlock = function (a, b, c) {
  6044. this.decoder_.setBlock(a, b, c);
  6045. this.nextField_ = jspb.BinaryConstants.INVALID_FIELD_NUMBER;
  6046. this.nextWireType_ = jspb.BinaryConstants.WireType.INVALID;
  6047. };
  6048. jspb.BinaryReader.prototype.reset = function () {
  6049. this.decoder_.reset();
  6050. this.nextField_ = jspb.BinaryConstants.INVALID_FIELD_NUMBER;
  6051. this.nextWireType_ = jspb.BinaryConstants.WireType.INVALID;
  6052. };
  6053. jspb.BinaryReader.prototype.advance = function (a) {
  6054. this.decoder_.advance(a);
  6055. };
  6056. jspb.BinaryReader.prototype.nextField = function () {
  6057. if (this.decoder_.atEnd()) return !1;
  6058. if (this.getError()) return jspb.asserts.fail("Decoder hit an error"), !1;
  6059. this.fieldCursor_ = this.decoder_.getCursor();
  6060. var a = this.decoder_.readUnsignedVarint32(),
  6061. b = a >>> 3;
  6062. a &= 7;
  6063. if (a != jspb.BinaryConstants.WireType.VARINT && a != jspb.BinaryConstants.WireType.FIXED32 && a != jspb.BinaryConstants.WireType.FIXED64 && a != jspb.BinaryConstants.WireType.DELIMITED && a != jspb.BinaryConstants.WireType.START_GROUP && a != jspb.BinaryConstants.WireType.END_GROUP) return jspb.asserts.fail("Invalid wire type: %s (at position %s)", a, this.fieldCursor_), this.error_ = !0, !1;
  6064. this.nextField_ = b;
  6065. this.nextWireType_ = a;
  6066. return !0;
  6067. };
  6068. goog.exportProperty(jspb.BinaryReader.prototype, "nextField", jspb.BinaryReader.prototype.nextField);
  6069. jspb.BinaryReader.prototype.unskipHeader = function () {
  6070. this.decoder_.unskipVarint(this.nextField_ << 3 | this.nextWireType_);
  6071. };
  6072. jspb.BinaryReader.prototype.skipMatchingFields = function () {
  6073. var a = this.nextField_;
  6074. for (this.unskipHeader(); this.nextField() && this.getFieldNumber() == a;) {
  6075. this.skipField();
  6076. }
  6077. this.decoder_.atEnd() || this.unskipHeader();
  6078. };
  6079. jspb.BinaryReader.prototype.skipVarintField = function () {
  6080. this.nextWireType_ != jspb.BinaryConstants.WireType.VARINT ? (jspb.asserts.fail("Invalid wire type for skipVarintField"), this.skipField()) : this.decoder_.skipVarint();
  6081. };
  6082. jspb.BinaryReader.prototype.skipDelimitedField = function () {
  6083. if (this.nextWireType_ != jspb.BinaryConstants.WireType.DELIMITED) jspb.asserts.fail("Invalid wire type for skipDelimitedField"), this.skipField();else {
  6084. var a = this.decoder_.readUnsignedVarint32();
  6085. this.decoder_.advance(a);
  6086. }
  6087. };
  6088. jspb.BinaryReader.prototype.skipFixed32Field = function () {
  6089. this.nextWireType_ != jspb.BinaryConstants.WireType.FIXED32 ? (jspb.asserts.fail("Invalid wire type for skipFixed32Field"), this.skipField()) : this.decoder_.advance(4);
  6090. };
  6091. jspb.BinaryReader.prototype.skipFixed64Field = function () {
  6092. this.nextWireType_ != jspb.BinaryConstants.WireType.FIXED64 ? (jspb.asserts.fail("Invalid wire type for skipFixed64Field"), this.skipField()) : this.decoder_.advance(8);
  6093. };
  6094. jspb.BinaryReader.prototype.skipGroup = function () {
  6095. var a = this.nextField_;
  6096. do {
  6097. if (!this.nextField()) {
  6098. jspb.asserts.fail("Unmatched start-group tag: stream EOF");
  6099. this.error_ = !0;
  6100. break;
  6101. }
  6102. if (this.nextWireType_ == jspb.BinaryConstants.WireType.END_GROUP) {
  6103. this.nextField_ != a && (jspb.asserts.fail("Unmatched end-group tag"), this.error_ = !0);
  6104. break;
  6105. }
  6106. this.skipField();
  6107. } while (1);
  6108. };
  6109. jspb.BinaryReader.prototype.skipField = function () {
  6110. switch (this.nextWireType_) {
  6111. case jspb.BinaryConstants.WireType.VARINT:
  6112. this.skipVarintField();
  6113. break;
  6114. case jspb.BinaryConstants.WireType.FIXED64:
  6115. this.skipFixed64Field();
  6116. break;
  6117. case jspb.BinaryConstants.WireType.DELIMITED:
  6118. this.skipDelimitedField();
  6119. break;
  6120. case jspb.BinaryConstants.WireType.FIXED32:
  6121. this.skipFixed32Field();
  6122. break;
  6123. case jspb.BinaryConstants.WireType.START_GROUP:
  6124. this.skipGroup();
  6125. break;
  6126. default:
  6127. jspb.asserts.fail("Invalid wire encoding for field.");
  6128. }
  6129. };
  6130. jspb.BinaryReader.prototype.registerReadCallback = function (a, b) {
  6131. null === this.readCallbacks_ && (this.readCallbacks_ = {});
  6132. jspb.asserts.assert(!this.readCallbacks_[a]);
  6133. this.readCallbacks_[a] = b;
  6134. };
  6135. jspb.BinaryReader.prototype.runReadCallback = function (a) {
  6136. jspb.asserts.assert(null !== this.readCallbacks_);
  6137. a = this.readCallbacks_[a];
  6138. jspb.asserts.assert(a);
  6139. return a(this);
  6140. };
  6141. jspb.BinaryReader.prototype.readAny = function (a) {
  6142. this.nextWireType_ = jspb.BinaryConstants.FieldTypeToWireType(a);
  6143. var b = jspb.BinaryConstants.FieldType;
  6144. switch (a) {
  6145. case b.DOUBLE:
  6146. return this.readDouble();
  6147. case b.FLOAT:
  6148. return this.readFloat();
  6149. case b.INT64:
  6150. return this.readInt64();
  6151. case b.UINT64:
  6152. return this.readUint64();
  6153. case b.INT32:
  6154. return this.readInt32();
  6155. case b.FIXED64:
  6156. return this.readFixed64();
  6157. case b.FIXED32:
  6158. return this.readFixed32();
  6159. case b.BOOL:
  6160. return this.readBool();
  6161. case b.STRING:
  6162. return this.readString();
  6163. case b.GROUP:
  6164. jspb.asserts.fail("Group field type not supported in readAny()");
  6165. case b.MESSAGE:
  6166. jspb.asserts.fail("Message field type not supported in readAny()");
  6167. case b.BYTES:
  6168. return this.readBytes();
  6169. case b.UINT32:
  6170. return this.readUint32();
  6171. case b.ENUM:
  6172. return this.readEnum();
  6173. case b.SFIXED32:
  6174. return this.readSfixed32();
  6175. case b.SFIXED64:
  6176. return this.readSfixed64();
  6177. case b.SINT32:
  6178. return this.readSint32();
  6179. case b.SINT64:
  6180. return this.readSint64();
  6181. case b.FHASH64:
  6182. return this.readFixedHash64();
  6183. case b.VHASH64:
  6184. return this.readVarintHash64();
  6185. default:
  6186. jspb.asserts.fail("Invalid field type in readAny()");
  6187. }
  6188. return 0;
  6189. };
  6190. jspb.BinaryReader.prototype.readMessage = function (a, b) {
  6191. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.DELIMITED);
  6192. var c = this.decoder_.getEnd(),
  6193. d = this.decoder_.readUnsignedVarint32();
  6194. d = this.decoder_.getCursor() + d;
  6195. this.decoder_.setEnd(d);
  6196. b(a, this);
  6197. this.decoder_.setCursor(d);
  6198. this.decoder_.setEnd(c);
  6199. };
  6200. goog.exportProperty(jspb.BinaryReader.prototype, "readMessage", jspb.BinaryReader.prototype.readMessage);
  6201. jspb.BinaryReader.prototype.readGroup = function (a, b, c) {
  6202. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.START_GROUP);
  6203. jspb.asserts.assert(this.nextField_ == a);
  6204. c(b, this);
  6205. this.error_ || this.nextWireType_ == jspb.BinaryConstants.WireType.END_GROUP || (jspb.asserts.fail("Group submessage did not end with an END_GROUP tag"), this.error_ = !0);
  6206. };
  6207. goog.exportProperty(jspb.BinaryReader.prototype, "readGroup", jspb.BinaryReader.prototype.readGroup);
  6208. jspb.BinaryReader.prototype.getFieldDecoder = function () {
  6209. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.DELIMITED);
  6210. var a = this.decoder_.readUnsignedVarint32(),
  6211. b = this.decoder_.getCursor(),
  6212. c = b + a;
  6213. a = jspb.BinaryDecoder.alloc(this.decoder_.getBuffer(), b, a);
  6214. this.decoder_.setCursor(c);
  6215. return a;
  6216. };
  6217. jspb.BinaryReader.prototype.readInt32 = function () {
  6218. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
  6219. return this.decoder_.readSignedVarint32();
  6220. };
  6221. goog.exportProperty(jspb.BinaryReader.prototype, "readInt32", jspb.BinaryReader.prototype.readInt32);
  6222. jspb.BinaryReader.prototype.readInt32String = function () {
  6223. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
  6224. return this.decoder_.readSignedVarint32String();
  6225. };
  6226. jspb.BinaryReader.prototype.readInt64 = function () {
  6227. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
  6228. return this.decoder_.readSignedVarint64();
  6229. };
  6230. goog.exportProperty(jspb.BinaryReader.prototype, "readInt64", jspb.BinaryReader.prototype.readInt64);
  6231. jspb.BinaryReader.prototype.readInt64String = function () {
  6232. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
  6233. return this.decoder_.readSignedVarint64String();
  6234. };
  6235. jspb.BinaryReader.prototype.readUint32 = function () {
  6236. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
  6237. return this.decoder_.readUnsignedVarint32();
  6238. };
  6239. goog.exportProperty(jspb.BinaryReader.prototype, "readUint32", jspb.BinaryReader.prototype.readUint32);
  6240. jspb.BinaryReader.prototype.readUint32String = function () {
  6241. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
  6242. return this.decoder_.readUnsignedVarint32String();
  6243. };
  6244. jspb.BinaryReader.prototype.readUint64 = function () {
  6245. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
  6246. return this.decoder_.readUnsignedVarint64();
  6247. };
  6248. goog.exportProperty(jspb.BinaryReader.prototype, "readUint64", jspb.BinaryReader.prototype.readUint64);
  6249. jspb.BinaryReader.prototype.readUint64String = function () {
  6250. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
  6251. return this.decoder_.readUnsignedVarint64String();
  6252. };
  6253. jspb.BinaryReader.prototype.readSint32 = function () {
  6254. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
  6255. return this.decoder_.readZigzagVarint32();
  6256. };
  6257. goog.exportProperty(jspb.BinaryReader.prototype, "readSint32", jspb.BinaryReader.prototype.readSint32);
  6258. jspb.BinaryReader.prototype.readSint64 = function () {
  6259. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
  6260. return this.decoder_.readZigzagVarint64();
  6261. };
  6262. goog.exportProperty(jspb.BinaryReader.prototype, "readSint64", jspb.BinaryReader.prototype.readSint64);
  6263. jspb.BinaryReader.prototype.readSint64String = function () {
  6264. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
  6265. return this.decoder_.readZigzagVarint64String();
  6266. };
  6267. jspb.BinaryReader.prototype.readFixed32 = function () {
  6268. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.FIXED32);
  6269. return this.decoder_.readUint32();
  6270. };
  6271. goog.exportProperty(jspb.BinaryReader.prototype, "readFixed32", jspb.BinaryReader.prototype.readFixed32);
  6272. jspb.BinaryReader.prototype.readFixed64 = function () {
  6273. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.FIXED64);
  6274. return this.decoder_.readUint64();
  6275. };
  6276. goog.exportProperty(jspb.BinaryReader.prototype, "readFixed64", jspb.BinaryReader.prototype.readFixed64);
  6277. jspb.BinaryReader.prototype.readFixed64String = function () {
  6278. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.FIXED64);
  6279. return this.decoder_.readUint64String();
  6280. };
  6281. jspb.BinaryReader.prototype.readSfixed32 = function () {
  6282. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.FIXED32);
  6283. return this.decoder_.readInt32();
  6284. };
  6285. goog.exportProperty(jspb.BinaryReader.prototype, "readSfixed32", jspb.BinaryReader.prototype.readSfixed32);
  6286. jspb.BinaryReader.prototype.readSfixed32String = function () {
  6287. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.FIXED32);
  6288. return this.decoder_.readInt32().toString();
  6289. };
  6290. jspb.BinaryReader.prototype.readSfixed64 = function () {
  6291. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.FIXED64);
  6292. return this.decoder_.readInt64();
  6293. };
  6294. goog.exportProperty(jspb.BinaryReader.prototype, "readSfixed64", jspb.BinaryReader.prototype.readSfixed64);
  6295. jspb.BinaryReader.prototype.readSfixed64String = function () {
  6296. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.FIXED64);
  6297. return this.decoder_.readInt64String();
  6298. };
  6299. jspb.BinaryReader.prototype.readFloat = function () {
  6300. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.FIXED32);
  6301. return this.decoder_.readFloat();
  6302. };
  6303. goog.exportProperty(jspb.BinaryReader.prototype, "readFloat", jspb.BinaryReader.prototype.readFloat);
  6304. jspb.BinaryReader.prototype.readDouble = function () {
  6305. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.FIXED64);
  6306. return this.decoder_.readDouble();
  6307. };
  6308. goog.exportProperty(jspb.BinaryReader.prototype, "readDouble", jspb.BinaryReader.prototype.readDouble);
  6309. jspb.BinaryReader.prototype.readBool = function () {
  6310. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
  6311. return !!this.decoder_.readUnsignedVarint32();
  6312. };
  6313. goog.exportProperty(jspb.BinaryReader.prototype, "readBool", jspb.BinaryReader.prototype.readBool);
  6314. jspb.BinaryReader.prototype.readEnum = function () {
  6315. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
  6316. return this.decoder_.readSignedVarint64();
  6317. };
  6318. goog.exportProperty(jspb.BinaryReader.prototype, "readEnum", jspb.BinaryReader.prototype.readEnum);
  6319. jspb.BinaryReader.prototype.readString = function () {
  6320. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.DELIMITED);
  6321. var a = this.decoder_.readUnsignedVarint32();
  6322. return this.decoder_.readString(a);
  6323. };
  6324. goog.exportProperty(jspb.BinaryReader.prototype, "readString", jspb.BinaryReader.prototype.readString);
  6325. jspb.BinaryReader.prototype.readBytes = function () {
  6326. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.DELIMITED);
  6327. var a = this.decoder_.readUnsignedVarint32();
  6328. return this.decoder_.readBytes(a);
  6329. };
  6330. goog.exportProperty(jspb.BinaryReader.prototype, "readBytes", jspb.BinaryReader.prototype.readBytes);
  6331. jspb.BinaryReader.prototype.readVarintHash64 = function () {
  6332. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
  6333. return this.decoder_.readVarintHash64();
  6334. };
  6335. jspb.BinaryReader.prototype.readSintHash64 = function () {
  6336. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
  6337. return this.decoder_.readZigzagVarintHash64();
  6338. };
  6339. jspb.BinaryReader.prototype.readSplitVarint64 = function (a) {
  6340. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
  6341. return this.decoder_.readSplitVarint64(a);
  6342. };
  6343. jspb.BinaryReader.prototype.readSplitZigzagVarint64 = function (a) {
  6344. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.VARINT);
  6345. return this.decoder_.readSplitVarint64(function (b, c) {
  6346. return jspb.utils.fromZigzag64(b, c, a);
  6347. });
  6348. };
  6349. jspb.BinaryReader.prototype.readFixedHash64 = function () {
  6350. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.FIXED64);
  6351. return this.decoder_.readFixedHash64();
  6352. };
  6353. jspb.BinaryReader.prototype.readSplitFixed64 = function (a) {
  6354. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.FIXED64);
  6355. return this.decoder_.readSplitFixed64(a);
  6356. };
  6357. jspb.BinaryReader.prototype.readPackedField_ = function (a) {
  6358. jspb.asserts.assert(this.nextWireType_ == jspb.BinaryConstants.WireType.DELIMITED);
  6359. var b = this.decoder_.readUnsignedVarint32();
  6360. b = this.decoder_.getCursor() + b;
  6361. for (var c = []; this.decoder_.getCursor() < b;) {
  6362. c.push(a.call(this.decoder_));
  6363. }
  6364. return c;
  6365. };
  6366. jspb.BinaryReader.prototype.readPackedInt32 = function () {
  6367. return this.readPackedField_(this.decoder_.readSignedVarint32);
  6368. };
  6369. goog.exportProperty(jspb.BinaryReader.prototype, "readPackedInt32", jspb.BinaryReader.prototype.readPackedInt32);
  6370. jspb.BinaryReader.prototype.readPackedInt32String = function () {
  6371. return this.readPackedField_(this.decoder_.readSignedVarint32String);
  6372. };
  6373. jspb.BinaryReader.prototype.readPackedInt64 = function () {
  6374. return this.readPackedField_(this.decoder_.readSignedVarint64);
  6375. };
  6376. goog.exportProperty(jspb.BinaryReader.prototype, "readPackedInt64", jspb.BinaryReader.prototype.readPackedInt64);
  6377. jspb.BinaryReader.prototype.readPackedInt64String = function () {
  6378. return this.readPackedField_(this.decoder_.readSignedVarint64String);
  6379. };
  6380. jspb.BinaryReader.prototype.readPackedUint32 = function () {
  6381. return this.readPackedField_(this.decoder_.readUnsignedVarint32);
  6382. };
  6383. goog.exportProperty(jspb.BinaryReader.prototype, "readPackedUint32", jspb.BinaryReader.prototype.readPackedUint32);
  6384. jspb.BinaryReader.prototype.readPackedUint32String = function () {
  6385. return this.readPackedField_(this.decoder_.readUnsignedVarint32String);
  6386. };
  6387. jspb.BinaryReader.prototype.readPackedUint64 = function () {
  6388. return this.readPackedField_(this.decoder_.readUnsignedVarint64);
  6389. };
  6390. goog.exportProperty(jspb.BinaryReader.prototype, "readPackedUint64", jspb.BinaryReader.prototype.readPackedUint64);
  6391. jspb.BinaryReader.prototype.readPackedUint64String = function () {
  6392. return this.readPackedField_(this.decoder_.readUnsignedVarint64String);
  6393. };
  6394. jspb.BinaryReader.prototype.readPackedSint32 = function () {
  6395. return this.readPackedField_(this.decoder_.readZigzagVarint32);
  6396. };
  6397. goog.exportProperty(jspb.BinaryReader.prototype, "readPackedSint32", jspb.BinaryReader.prototype.readPackedSint32);
  6398. jspb.BinaryReader.prototype.readPackedSint64 = function () {
  6399. return this.readPackedField_(this.decoder_.readZigzagVarint64);
  6400. };
  6401. goog.exportProperty(jspb.BinaryReader.prototype, "readPackedSint64", jspb.BinaryReader.prototype.readPackedSint64);
  6402. jspb.BinaryReader.prototype.readPackedSint64String = function () {
  6403. return this.readPackedField_(this.decoder_.readZigzagVarint64String);
  6404. };
  6405. jspb.BinaryReader.prototype.readPackedFixed32 = function () {
  6406. return this.readPackedField_(this.decoder_.readUint32);
  6407. };
  6408. goog.exportProperty(jspb.BinaryReader.prototype, "readPackedFixed32", jspb.BinaryReader.prototype.readPackedFixed32);
  6409. jspb.BinaryReader.prototype.readPackedFixed64 = function () {
  6410. return this.readPackedField_(this.decoder_.readUint64);
  6411. };
  6412. goog.exportProperty(jspb.BinaryReader.prototype, "readPackedFixed64", jspb.BinaryReader.prototype.readPackedFixed64);
  6413. jspb.BinaryReader.prototype.readPackedFixed64String = function () {
  6414. return this.readPackedField_(this.decoder_.readUint64String);
  6415. };
  6416. jspb.BinaryReader.prototype.readPackedSfixed32 = function () {
  6417. return this.readPackedField_(this.decoder_.readInt32);
  6418. };
  6419. goog.exportProperty(jspb.BinaryReader.prototype, "readPackedSfixed32", jspb.BinaryReader.prototype.readPackedSfixed32);
  6420. jspb.BinaryReader.prototype.readPackedSfixed64 = function () {
  6421. return this.readPackedField_(this.decoder_.readInt64);
  6422. };
  6423. goog.exportProperty(jspb.BinaryReader.prototype, "readPackedSfixed64", jspb.BinaryReader.prototype.readPackedSfixed64);
  6424. jspb.BinaryReader.prototype.readPackedSfixed64String = function () {
  6425. return this.readPackedField_(this.decoder_.readInt64String);
  6426. };
  6427. jspb.BinaryReader.prototype.readPackedFloat = function () {
  6428. return this.readPackedField_(this.decoder_.readFloat);
  6429. };
  6430. goog.exportProperty(jspb.BinaryReader.prototype, "readPackedFloat", jspb.BinaryReader.prototype.readPackedFloat);
  6431. jspb.BinaryReader.prototype.readPackedDouble = function () {
  6432. return this.readPackedField_(this.decoder_.readDouble);
  6433. };
  6434. goog.exportProperty(jspb.BinaryReader.prototype, "readPackedDouble", jspb.BinaryReader.prototype.readPackedDouble);
  6435. jspb.BinaryReader.prototype.readPackedBool = function () {
  6436. return this.readPackedField_(this.decoder_.readBool);
  6437. };
  6438. goog.exportProperty(jspb.BinaryReader.prototype, "readPackedBool", jspb.BinaryReader.prototype.readPackedBool);
  6439. jspb.BinaryReader.prototype.readPackedEnum = function () {
  6440. return this.readPackedField_(this.decoder_.readEnum);
  6441. };
  6442. goog.exportProperty(jspb.BinaryReader.prototype, "readPackedEnum", jspb.BinaryReader.prototype.readPackedEnum);
  6443. jspb.BinaryReader.prototype.readPackedVarintHash64 = function () {
  6444. return this.readPackedField_(this.decoder_.readVarintHash64);
  6445. };
  6446. jspb.BinaryReader.prototype.readPackedFixedHash64 = function () {
  6447. return this.readPackedField_(this.decoder_.readFixedHash64);
  6448. };
  6449. jspb.BinaryEncoder = function () {
  6450. this.buffer_ = [];
  6451. };
  6452. jspb.BinaryEncoder.prototype.length = function () {
  6453. return this.buffer_.length;
  6454. };
  6455. jspb.BinaryEncoder.prototype.end = function () {
  6456. var a = this.buffer_;
  6457. this.buffer_ = [];
  6458. return a;
  6459. };
  6460. jspb.BinaryEncoder.prototype.writeSplitVarint64 = function (a, b) {
  6461. jspb.asserts.assert(a == Math.floor(a));
  6462. jspb.asserts.assert(b == Math.floor(b));
  6463. jspb.asserts.assert(0 <= a && a < jspb.BinaryConstants.TWO_TO_32);
  6464. for (jspb.asserts.assert(0 <= b && b < jspb.BinaryConstants.TWO_TO_32); 0 < b || 127 < a;) {
  6465. this.buffer_.push(a & 127 | 128), a = (a >>> 7 | b << 25) >>> 0, b >>>= 7;
  6466. }
  6467. this.buffer_.push(a);
  6468. };
  6469. jspb.BinaryEncoder.prototype.writeSplitFixed64 = function (a, b) {
  6470. jspb.asserts.assert(a == Math.floor(a));
  6471. jspb.asserts.assert(b == Math.floor(b));
  6472. jspb.asserts.assert(0 <= a && a < jspb.BinaryConstants.TWO_TO_32);
  6473. jspb.asserts.assert(0 <= b && b < jspb.BinaryConstants.TWO_TO_32);
  6474. this.writeUint32(a);
  6475. this.writeUint32(b);
  6476. };
  6477. jspb.BinaryEncoder.prototype.writeUnsignedVarint32 = function (a) {
  6478. jspb.asserts.assert(a == Math.floor(a));
  6479. for (jspb.asserts.assert(0 <= a && a < jspb.BinaryConstants.TWO_TO_32); 127 < a;) {
  6480. this.buffer_.push(a & 127 | 128), a >>>= 7;
  6481. }
  6482. this.buffer_.push(a);
  6483. };
  6484. jspb.BinaryEncoder.prototype.writeSignedVarint32 = function (a) {
  6485. jspb.asserts.assert(a == Math.floor(a));
  6486. jspb.asserts.assert(a >= -jspb.BinaryConstants.TWO_TO_31 && a < jspb.BinaryConstants.TWO_TO_31);
  6487. if (0 <= a) this.writeUnsignedVarint32(a);else {
  6488. for (var b = 0; 9 > b; b++) {
  6489. this.buffer_.push(a & 127 | 128), a >>= 7;
  6490. }
  6491. this.buffer_.push(1);
  6492. }
  6493. };
  6494. jspb.BinaryEncoder.prototype.writeUnsignedVarint64 = function (a) {
  6495. jspb.asserts.assert(a == Math.floor(a));
  6496. jspb.asserts.assert(0 <= a && a < jspb.BinaryConstants.TWO_TO_64);
  6497. jspb.utils.splitInt64(a);
  6498. this.writeSplitVarint64(jspb.utils.split64Low, jspb.utils.split64High);
  6499. };
  6500. jspb.BinaryEncoder.prototype.writeSignedVarint64 = function (a) {
  6501. jspb.asserts.assert(a == Math.floor(a));
  6502. jspb.asserts.assert(a >= -jspb.BinaryConstants.TWO_TO_63 && a < jspb.BinaryConstants.TWO_TO_63);
  6503. jspb.utils.splitInt64(a);
  6504. this.writeSplitVarint64(jspb.utils.split64Low, jspb.utils.split64High);
  6505. };
  6506. jspb.BinaryEncoder.prototype.writeZigzagVarint32 = function (a) {
  6507. jspb.asserts.assert(a == Math.floor(a));
  6508. jspb.asserts.assert(a >= -jspb.BinaryConstants.TWO_TO_31 && a < jspb.BinaryConstants.TWO_TO_31);
  6509. this.writeUnsignedVarint32((a << 1 ^ a >> 31) >>> 0);
  6510. };
  6511. jspb.BinaryEncoder.prototype.writeZigzagVarint64 = function (a) {
  6512. jspb.asserts.assert(a == Math.floor(a));
  6513. jspb.asserts.assert(a >= -jspb.BinaryConstants.TWO_TO_63 && a < jspb.BinaryConstants.TWO_TO_63);
  6514. jspb.utils.splitZigzag64(a);
  6515. this.writeSplitVarint64(jspb.utils.split64Low, jspb.utils.split64High);
  6516. };
  6517. jspb.BinaryEncoder.prototype.writeZigzagVarint64String = function (a) {
  6518. this.writeZigzagVarintHash64(jspb.utils.decimalStringToHash64(a));
  6519. };
  6520. jspb.BinaryEncoder.prototype.writeZigzagVarintHash64 = function (a) {
  6521. var b = this;
  6522. jspb.utils.splitHash64(a);
  6523. jspb.utils.toZigzag64(jspb.utils.split64Low, jspb.utils.split64High, function (a, d) {
  6524. b.writeSplitVarint64(a >>> 0, d >>> 0);
  6525. });
  6526. };
  6527. jspb.BinaryEncoder.prototype.writeUint8 = function (a) {
  6528. jspb.asserts.assert(a == Math.floor(a));
  6529. jspb.asserts.assert(0 <= a && 256 > a);
  6530. this.buffer_.push(a >>> 0 & 255);
  6531. };
  6532. jspb.BinaryEncoder.prototype.writeUint16 = function (a) {
  6533. jspb.asserts.assert(a == Math.floor(a));
  6534. jspb.asserts.assert(0 <= a && 65536 > a);
  6535. this.buffer_.push(a >>> 0 & 255);
  6536. this.buffer_.push(a >>> 8 & 255);
  6537. };
  6538. jspb.BinaryEncoder.prototype.writeUint32 = function (a) {
  6539. jspb.asserts.assert(a == Math.floor(a));
  6540. jspb.asserts.assert(0 <= a && a < jspb.BinaryConstants.TWO_TO_32);
  6541. this.buffer_.push(a >>> 0 & 255);
  6542. this.buffer_.push(a >>> 8 & 255);
  6543. this.buffer_.push(a >>> 16 & 255);
  6544. this.buffer_.push(a >>> 24 & 255);
  6545. };
  6546. jspb.BinaryEncoder.prototype.writeUint64 = function (a) {
  6547. jspb.asserts.assert(a == Math.floor(a));
  6548. jspb.asserts.assert(0 <= a && a < jspb.BinaryConstants.TWO_TO_64);
  6549. jspb.utils.splitUint64(a);
  6550. this.writeUint32(jspb.utils.split64Low);
  6551. this.writeUint32(jspb.utils.split64High);
  6552. };
  6553. jspb.BinaryEncoder.prototype.writeInt8 = function (a) {
  6554. jspb.asserts.assert(a == Math.floor(a));
  6555. jspb.asserts.assert(-128 <= a && 128 > a);
  6556. this.buffer_.push(a >>> 0 & 255);
  6557. };
  6558. jspb.BinaryEncoder.prototype.writeInt16 = function (a) {
  6559. jspb.asserts.assert(a == Math.floor(a));
  6560. jspb.asserts.assert(-32768 <= a && 32768 > a);
  6561. this.buffer_.push(a >>> 0 & 255);
  6562. this.buffer_.push(a >>> 8 & 255);
  6563. };
  6564. jspb.BinaryEncoder.prototype.writeInt32 = function (a) {
  6565. jspb.asserts.assert(a == Math.floor(a));
  6566. jspb.asserts.assert(a >= -jspb.BinaryConstants.TWO_TO_31 && a < jspb.BinaryConstants.TWO_TO_31);
  6567. this.buffer_.push(a >>> 0 & 255);
  6568. this.buffer_.push(a >>> 8 & 255);
  6569. this.buffer_.push(a >>> 16 & 255);
  6570. this.buffer_.push(a >>> 24 & 255);
  6571. };
  6572. jspb.BinaryEncoder.prototype.writeInt64 = function (a) {
  6573. jspb.asserts.assert(a == Math.floor(a));
  6574. jspb.asserts.assert(a >= -jspb.BinaryConstants.TWO_TO_63 && a < jspb.BinaryConstants.TWO_TO_63);
  6575. jspb.utils.splitInt64(a);
  6576. this.writeSplitFixed64(jspb.utils.split64Low, jspb.utils.split64High);
  6577. };
  6578. jspb.BinaryEncoder.prototype.writeInt64String = function (a) {
  6579. jspb.asserts.assert(a == Math.floor(a));
  6580. jspb.asserts.assert(+a >= -jspb.BinaryConstants.TWO_TO_63 && +a < jspb.BinaryConstants.TWO_TO_63);
  6581. jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(a));
  6582. this.writeSplitFixed64(jspb.utils.split64Low, jspb.utils.split64High);
  6583. };
  6584. jspb.BinaryEncoder.prototype.writeFloat = function (a) {
  6585. jspb.asserts.assert(Infinity === a || -Infinity === a || isNaN(a) || a >= -jspb.BinaryConstants.FLOAT32_MAX && a <= jspb.BinaryConstants.FLOAT32_MAX);
  6586. jspb.utils.splitFloat32(a);
  6587. this.writeUint32(jspb.utils.split64Low);
  6588. };
  6589. jspb.BinaryEncoder.prototype.writeDouble = function (a) {
  6590. jspb.asserts.assert(Infinity === a || -Infinity === a || isNaN(a) || a >= -jspb.BinaryConstants.FLOAT64_MAX && a <= jspb.BinaryConstants.FLOAT64_MAX);
  6591. jspb.utils.splitFloat64(a);
  6592. this.writeUint32(jspb.utils.split64Low);
  6593. this.writeUint32(jspb.utils.split64High);
  6594. };
  6595. jspb.BinaryEncoder.prototype.writeBool = function (a) {
  6596. jspb.asserts.assert("boolean" === typeof a || "number" === typeof a);
  6597. this.buffer_.push(a ? 1 : 0);
  6598. };
  6599. jspb.BinaryEncoder.prototype.writeEnum = function (a) {
  6600. jspb.asserts.assert(a == Math.floor(a));
  6601. jspb.asserts.assert(a >= -jspb.BinaryConstants.TWO_TO_31 && a < jspb.BinaryConstants.TWO_TO_31);
  6602. this.writeSignedVarint32(a);
  6603. };
  6604. jspb.BinaryEncoder.prototype.writeBytes = function (a) {
  6605. this.buffer_.push.apply(this.buffer_, a);
  6606. };
  6607. jspb.BinaryEncoder.prototype.writeVarintHash64 = function (a) {
  6608. jspb.utils.splitHash64(a);
  6609. this.writeSplitVarint64(jspb.utils.split64Low, jspb.utils.split64High);
  6610. };
  6611. jspb.BinaryEncoder.prototype.writeFixedHash64 = function (a) {
  6612. jspb.utils.splitHash64(a);
  6613. this.writeUint32(jspb.utils.split64Low);
  6614. this.writeUint32(jspb.utils.split64High);
  6615. };
  6616. jspb.BinaryEncoder.prototype.writeString = function (a) {
  6617. var b = this.buffer_.length;
  6618. jspb.asserts.assertString(a);
  6619. for (var c = 0; c < a.length; c++) {
  6620. var d = a.charCodeAt(c);
  6621. if (128 > d) this.buffer_.push(d);else if (2048 > d) this.buffer_.push(d >> 6 | 192), this.buffer_.push(d & 63 | 128);else if (65536 > d) if (55296 <= d && 56319 >= d && c + 1 < a.length) {
  6622. var e = a.charCodeAt(c + 1);
  6623. 56320 <= e && 57343 >= e && (d = 1024 * (d - 55296) + e - 56320 + 65536, this.buffer_.push(d >> 18 | 240), this.buffer_.push(d >> 12 & 63 | 128), this.buffer_.push(d >> 6 & 63 | 128), this.buffer_.push(d & 63 | 128), c++);
  6624. } else this.buffer_.push(d >> 12 | 224), this.buffer_.push(d >> 6 & 63 | 128), this.buffer_.push(d & 63 | 128);
  6625. }
  6626. return this.buffer_.length - b;
  6627. };
  6628. jspb.arith = {};
  6629. jspb.arith.UInt64 = function (a, b) {
  6630. this.lo = a;
  6631. this.hi = b;
  6632. };
  6633. jspb.arith.UInt64.prototype.cmp = function (a) {
  6634. return this.hi < a.hi || this.hi == a.hi && this.lo < a.lo ? -1 : this.hi == a.hi && this.lo == a.lo ? 0 : 1;
  6635. };
  6636. jspb.arith.UInt64.prototype.rightShift = function () {
  6637. return new jspb.arith.UInt64((this.lo >>> 1 | (this.hi & 1) << 31) >>> 0, this.hi >>> 1 >>> 0);
  6638. };
  6639. jspb.arith.UInt64.prototype.leftShift = function () {
  6640. return new jspb.arith.UInt64(this.lo << 1 >>> 0, (this.hi << 1 | this.lo >>> 31) >>> 0);
  6641. };
  6642. jspb.arith.UInt64.prototype.msb = function () {
  6643. return !!(this.hi & 2147483648);
  6644. };
  6645. jspb.arith.UInt64.prototype.lsb = function () {
  6646. return !!(this.lo & 1);
  6647. };
  6648. jspb.arith.UInt64.prototype.zero = function () {
  6649. return 0 == this.lo && 0 == this.hi;
  6650. };
  6651. jspb.arith.UInt64.prototype.add = function (a) {
  6652. return new jspb.arith.UInt64((this.lo + a.lo & 4294967295) >>> 0 >>> 0, ((this.hi + a.hi & 4294967295) >>> 0) + (4294967296 <= this.lo + a.lo ? 1 : 0) >>> 0);
  6653. };
  6654. jspb.arith.UInt64.prototype.sub = function (a) {
  6655. return new jspb.arith.UInt64((this.lo - a.lo & 4294967295) >>> 0 >>> 0, ((this.hi - a.hi & 4294967295) >>> 0) - (0 > this.lo - a.lo ? 1 : 0) >>> 0);
  6656. };
  6657. jspb.arith.UInt64.mul32x32 = function (a, b) {
  6658. var c = a & 65535;
  6659. a >>>= 16;
  6660. var d = b & 65535,
  6661. e = b >>> 16;
  6662. b = c * d + 65536 * (c * e & 65535) + 65536 * (a * d & 65535);
  6663. for (c = a * e + (c * e >>> 16) + (a * d >>> 16); 4294967296 <= b;) {
  6664. b -= 4294967296, c += 1;
  6665. }
  6666. return new jspb.arith.UInt64(b >>> 0, c >>> 0);
  6667. };
  6668. jspb.arith.UInt64.prototype.mul = function (a) {
  6669. var b = jspb.arith.UInt64.mul32x32(this.lo, a);
  6670. a = jspb.arith.UInt64.mul32x32(this.hi, a);
  6671. a.hi = a.lo;
  6672. a.lo = 0;
  6673. return b.add(a);
  6674. };
  6675. jspb.arith.UInt64.prototype.div = function (a) {
  6676. if (0 == a) return [];
  6677. var b = new jspb.arith.UInt64(0, 0),
  6678. c = new jspb.arith.UInt64(this.lo, this.hi);
  6679. a = new jspb.arith.UInt64(a, 0);
  6680. for (var d = new jspb.arith.UInt64(1, 0); !a.msb();) {
  6681. a = a.leftShift(), d = d.leftShift();
  6682. }
  6683. for (; !d.zero();) {
  6684. 0 >= a.cmp(c) && (b = b.add(d), c = c.sub(a)), a = a.rightShift(), d = d.rightShift();
  6685. }
  6686. return [b, c];
  6687. };
  6688. jspb.arith.UInt64.prototype.toString = function () {
  6689. for (var a = "", b = this; !b.zero();) {
  6690. b = b.div(10);
  6691. var c = b[0];
  6692. a = b[1].lo + a;
  6693. b = c;
  6694. }
  6695. "" == a && (a = "0");
  6696. return a;
  6697. };
  6698. jspb.arith.UInt64.fromString = function (a) {
  6699. for (var b = new jspb.arith.UInt64(0, 0), c = new jspb.arith.UInt64(0, 0), d = 0; d < a.length; d++) {
  6700. if ("0" > a[d] || "9" < a[d]) return null;
  6701. var e = parseInt(a[d], 10);
  6702. c.lo = e;
  6703. b = b.mul(10).add(c);
  6704. }
  6705. return b;
  6706. };
  6707. jspb.arith.UInt64.prototype.clone = function () {
  6708. return new jspb.arith.UInt64(this.lo, this.hi);
  6709. };
  6710. jspb.arith.Int64 = function (a, b) {
  6711. this.lo = a;
  6712. this.hi = b;
  6713. };
  6714. jspb.arith.Int64.prototype.add = function (a) {
  6715. return new jspb.arith.Int64((this.lo + a.lo & 4294967295) >>> 0 >>> 0, ((this.hi + a.hi & 4294967295) >>> 0) + (4294967296 <= this.lo + a.lo ? 1 : 0) >>> 0);
  6716. };
  6717. jspb.arith.Int64.prototype.sub = function (a) {
  6718. return new jspb.arith.Int64((this.lo - a.lo & 4294967295) >>> 0 >>> 0, ((this.hi - a.hi & 4294967295) >>> 0) - (0 > this.lo - a.lo ? 1 : 0) >>> 0);
  6719. };
  6720. jspb.arith.Int64.prototype.clone = function () {
  6721. return new jspb.arith.Int64(this.lo, this.hi);
  6722. };
  6723. jspb.arith.Int64.prototype.toString = function () {
  6724. var a = 0 != (this.hi & 2147483648),
  6725. b = new jspb.arith.UInt64(this.lo, this.hi);
  6726. a && (b = new jspb.arith.UInt64(0, 0).sub(b));
  6727. return (a ? "-" : "") + b.toString();
  6728. };
  6729. jspb.arith.Int64.fromString = function (a) {
  6730. var b = 0 < a.length && "-" == a[0];
  6731. b && (a = a.substring(1));
  6732. a = jspb.arith.UInt64.fromString(a);
  6733. if (null === a) return null;
  6734. b && (a = new jspb.arith.UInt64(0, 0).sub(a));
  6735. return new jspb.arith.Int64(a.lo, a.hi);
  6736. };
  6737. jspb.BinaryWriter = function () {
  6738. this.blocks_ = [];
  6739. this.totalLength_ = 0;
  6740. this.encoder_ = new jspb.BinaryEncoder();
  6741. this.bookmarks_ = [];
  6742. };
  6743. jspb.BinaryWriter.prototype.appendUint8Array_ = function (a) {
  6744. var b = this.encoder_.end();
  6745. this.blocks_.push(b);
  6746. this.blocks_.push(a);
  6747. this.totalLength_ += b.length + a.length;
  6748. };
  6749. jspb.BinaryWriter.prototype.beginDelimited_ = function (a) {
  6750. this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.DELIMITED);
  6751. a = this.encoder_.end();
  6752. this.blocks_.push(a);
  6753. this.totalLength_ += a.length;
  6754. a.push(this.totalLength_);
  6755. return a;
  6756. };
  6757. jspb.BinaryWriter.prototype.endDelimited_ = function (a) {
  6758. var b = a.pop();
  6759. b = this.totalLength_ + this.encoder_.length() - b;
  6760. for (jspb.asserts.assert(0 <= b); 127 < b;) {
  6761. a.push(b & 127 | 128), b >>>= 7, this.totalLength_++;
  6762. }
  6763. a.push(b);
  6764. this.totalLength_++;
  6765. };
  6766. jspb.BinaryWriter.prototype.writeSerializedMessage = function (a, b, c) {
  6767. this.appendUint8Array_(a.subarray(b, c));
  6768. };
  6769. jspb.BinaryWriter.prototype.maybeWriteSerializedMessage = function (a, b, c) {
  6770. null != a && null != b && null != c && this.writeSerializedMessage(a, b, c);
  6771. };
  6772. jspb.BinaryWriter.prototype.reset = function () {
  6773. this.blocks_ = [];
  6774. this.encoder_.end();
  6775. this.totalLength_ = 0;
  6776. this.bookmarks_ = [];
  6777. };
  6778. jspb.BinaryWriter.prototype.getResultBuffer = function () {
  6779. jspb.asserts.assert(0 == this.bookmarks_.length);
  6780. for (var a = new Uint8Array(this.totalLength_ + this.encoder_.length()), b = this.blocks_, c = b.length, d = 0, e = 0; e < c; e++) {
  6781. var f = b[e];
  6782. a.set(f, d);
  6783. d += f.length;
  6784. }
  6785. b = this.encoder_.end();
  6786. a.set(b, d);
  6787. d += b.length;
  6788. jspb.asserts.assert(d == a.length);
  6789. this.blocks_ = [a];
  6790. return a;
  6791. };
  6792. goog.exportProperty(jspb.BinaryWriter.prototype, "getResultBuffer", jspb.BinaryWriter.prototype.getResultBuffer);
  6793. jspb.BinaryWriter.prototype.getResultBase64String = function (a) {
  6794. return goog.crypt.base64.encodeByteArray(this.getResultBuffer(), a);
  6795. };
  6796. jspb.BinaryWriter.prototype.beginSubMessage = function (a) {
  6797. this.bookmarks_.push(this.beginDelimited_(a));
  6798. };
  6799. jspb.BinaryWriter.prototype.endSubMessage = function () {
  6800. jspb.asserts.assert(0 <= this.bookmarks_.length);
  6801. this.endDelimited_(this.bookmarks_.pop());
  6802. };
  6803. jspb.BinaryWriter.prototype.writeFieldHeader_ = function (a, b) {
  6804. jspb.asserts.assert(1 <= a && a == Math.floor(a));
  6805. this.encoder_.writeUnsignedVarint32(8 * a + b);
  6806. };
  6807. jspb.BinaryWriter.prototype.writeAny = function (a, b, c) {
  6808. var d = jspb.BinaryConstants.FieldType;
  6809. switch (a) {
  6810. case d.DOUBLE:
  6811. this.writeDouble(b, c);
  6812. break;
  6813. case d.FLOAT:
  6814. this.writeFloat(b, c);
  6815. break;
  6816. case d.INT64:
  6817. this.writeInt64(b, c);
  6818. break;
  6819. case d.UINT64:
  6820. this.writeUint64(b, c);
  6821. break;
  6822. case d.INT32:
  6823. this.writeInt32(b, c);
  6824. break;
  6825. case d.FIXED64:
  6826. this.writeFixed64(b, c);
  6827. break;
  6828. case d.FIXED32:
  6829. this.writeFixed32(b, c);
  6830. break;
  6831. case d.BOOL:
  6832. this.writeBool(b, c);
  6833. break;
  6834. case d.STRING:
  6835. this.writeString(b, c);
  6836. break;
  6837. case d.GROUP:
  6838. jspb.asserts.fail("Group field type not supported in writeAny()");
  6839. break;
  6840. case d.MESSAGE:
  6841. jspb.asserts.fail("Message field type not supported in writeAny()");
  6842. break;
  6843. case d.BYTES:
  6844. this.writeBytes(b, c);
  6845. break;
  6846. case d.UINT32:
  6847. this.writeUint32(b, c);
  6848. break;
  6849. case d.ENUM:
  6850. this.writeEnum(b, c);
  6851. break;
  6852. case d.SFIXED32:
  6853. this.writeSfixed32(b, c);
  6854. break;
  6855. case d.SFIXED64:
  6856. this.writeSfixed64(b, c);
  6857. break;
  6858. case d.SINT32:
  6859. this.writeSint32(b, c);
  6860. break;
  6861. case d.SINT64:
  6862. this.writeSint64(b, c);
  6863. break;
  6864. case d.FHASH64:
  6865. this.writeFixedHash64(b, c);
  6866. break;
  6867. case d.VHASH64:
  6868. this.writeVarintHash64(b, c);
  6869. break;
  6870. default:
  6871. jspb.asserts.fail("Invalid field type in writeAny()");
  6872. }
  6873. };
  6874. jspb.BinaryWriter.prototype.writeUnsignedVarint32_ = function (a, b) {
  6875. null != b && (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeUnsignedVarint32(b));
  6876. };
  6877. jspb.BinaryWriter.prototype.writeSignedVarint32_ = function (a, b) {
  6878. null != b && (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeSignedVarint32(b));
  6879. };
  6880. jspb.BinaryWriter.prototype.writeUnsignedVarint64_ = function (a, b) {
  6881. null != b && (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeUnsignedVarint64(b));
  6882. };
  6883. jspb.BinaryWriter.prototype.writeSignedVarint64_ = function (a, b) {
  6884. null != b && (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeSignedVarint64(b));
  6885. };
  6886. jspb.BinaryWriter.prototype.writeZigzagVarint32_ = function (a, b) {
  6887. null != b && (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeZigzagVarint32(b));
  6888. };
  6889. jspb.BinaryWriter.prototype.writeZigzagVarint64_ = function (a, b) {
  6890. null != b && (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeZigzagVarint64(b));
  6891. };
  6892. jspb.BinaryWriter.prototype.writeZigzagVarint64String_ = function (a, b) {
  6893. null != b && (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeZigzagVarint64String(b));
  6894. };
  6895. jspb.BinaryWriter.prototype.writeZigzagVarintHash64_ = function (a, b) {
  6896. null != b && (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeZigzagVarintHash64(b));
  6897. };
  6898. jspb.BinaryWriter.prototype.writeInt32 = function (a, b) {
  6899. null != b && (jspb.asserts.assert(b >= -jspb.BinaryConstants.TWO_TO_31 && b < jspb.BinaryConstants.TWO_TO_31), this.writeSignedVarint32_(a, b));
  6900. };
  6901. goog.exportProperty(jspb.BinaryWriter.prototype, "writeInt32", jspb.BinaryWriter.prototype.writeInt32);
  6902. jspb.BinaryWriter.prototype.writeInt32String = function (a, b) {
  6903. null != b && (b = parseInt(b, 10), jspb.asserts.assert(b >= -jspb.BinaryConstants.TWO_TO_31 && b < jspb.BinaryConstants.TWO_TO_31), this.writeSignedVarint32_(a, b));
  6904. };
  6905. jspb.BinaryWriter.prototype.writeInt64 = function (a, b) {
  6906. null != b && (jspb.asserts.assert(b >= -jspb.BinaryConstants.TWO_TO_63 && b < jspb.BinaryConstants.TWO_TO_63), this.writeSignedVarint64_(a, b));
  6907. };
  6908. goog.exportProperty(jspb.BinaryWriter.prototype, "writeInt64", jspb.BinaryWriter.prototype.writeInt64);
  6909. jspb.BinaryWriter.prototype.writeInt64String = function (a, b) {
  6910. null != b && (b = jspb.arith.Int64.fromString(b), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeSplitVarint64(b.lo, b.hi));
  6911. };
  6912. jspb.BinaryWriter.prototype.writeUint32 = function (a, b) {
  6913. null != b && (jspb.asserts.assert(0 <= b && b < jspb.BinaryConstants.TWO_TO_32), this.writeUnsignedVarint32_(a, b));
  6914. };
  6915. goog.exportProperty(jspb.BinaryWriter.prototype, "writeUint32", jspb.BinaryWriter.prototype.writeUint32);
  6916. jspb.BinaryWriter.prototype.writeUint32String = function (a, b) {
  6917. null != b && (b = parseInt(b, 10), jspb.asserts.assert(0 <= b && b < jspb.BinaryConstants.TWO_TO_32), this.writeUnsignedVarint32_(a, b));
  6918. };
  6919. jspb.BinaryWriter.prototype.writeUint64 = function (a, b) {
  6920. null != b && (jspb.asserts.assert(0 <= b && b < jspb.BinaryConstants.TWO_TO_64), this.writeUnsignedVarint64_(a, b));
  6921. };
  6922. goog.exportProperty(jspb.BinaryWriter.prototype, "writeUint64", jspb.BinaryWriter.prototype.writeUint64);
  6923. jspb.BinaryWriter.prototype.writeUint64String = function (a, b) {
  6924. null != b && (b = jspb.arith.UInt64.fromString(b), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeSplitVarint64(b.lo, b.hi));
  6925. };
  6926. jspb.BinaryWriter.prototype.writeSint32 = function (a, b) {
  6927. null != b && (jspb.asserts.assert(b >= -jspb.BinaryConstants.TWO_TO_31 && b < jspb.BinaryConstants.TWO_TO_31), this.writeZigzagVarint32_(a, b));
  6928. };
  6929. goog.exportProperty(jspb.BinaryWriter.prototype, "writeSint32", jspb.BinaryWriter.prototype.writeSint32);
  6930. jspb.BinaryWriter.prototype.writeSint64 = function (a, b) {
  6931. null != b && (jspb.asserts.assert(b >= -jspb.BinaryConstants.TWO_TO_63 && b < jspb.BinaryConstants.TWO_TO_63), this.writeZigzagVarint64_(a, b));
  6932. };
  6933. goog.exportProperty(jspb.BinaryWriter.prototype, "writeSint64", jspb.BinaryWriter.prototype.writeSint64);
  6934. jspb.BinaryWriter.prototype.writeSintHash64 = function (a, b) {
  6935. null != b && this.writeZigzagVarintHash64_(a, b);
  6936. };
  6937. jspb.BinaryWriter.prototype.writeSint64String = function (a, b) {
  6938. null != b && this.writeZigzagVarint64String_(a, b);
  6939. };
  6940. jspb.BinaryWriter.prototype.writeFixed32 = function (a, b) {
  6941. null != b && (jspb.asserts.assert(0 <= b && b < jspb.BinaryConstants.TWO_TO_32), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.FIXED32), this.encoder_.writeUint32(b));
  6942. };
  6943. goog.exportProperty(jspb.BinaryWriter.prototype, "writeFixed32", jspb.BinaryWriter.prototype.writeFixed32);
  6944. jspb.BinaryWriter.prototype.writeFixed64 = function (a, b) {
  6945. null != b && (jspb.asserts.assert(0 <= b && b < jspb.BinaryConstants.TWO_TO_64), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.FIXED64), this.encoder_.writeUint64(b));
  6946. };
  6947. goog.exportProperty(jspb.BinaryWriter.prototype, "writeFixed64", jspb.BinaryWriter.prototype.writeFixed64);
  6948. jspb.BinaryWriter.prototype.writeFixed64String = function (a, b) {
  6949. null != b && (b = jspb.arith.UInt64.fromString(b), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.FIXED64), this.encoder_.writeSplitFixed64(b.lo, b.hi));
  6950. };
  6951. jspb.BinaryWriter.prototype.writeSfixed32 = function (a, b) {
  6952. null != b && (jspb.asserts.assert(b >= -jspb.BinaryConstants.TWO_TO_31 && b < jspb.BinaryConstants.TWO_TO_31), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.FIXED32), this.encoder_.writeInt32(b));
  6953. };
  6954. goog.exportProperty(jspb.BinaryWriter.prototype, "writeSfixed32", jspb.BinaryWriter.prototype.writeSfixed32);
  6955. jspb.BinaryWriter.prototype.writeSfixed64 = function (a, b) {
  6956. null != b && (jspb.asserts.assert(b >= -jspb.BinaryConstants.TWO_TO_63 && b < jspb.BinaryConstants.TWO_TO_63), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.FIXED64), this.encoder_.writeInt64(b));
  6957. };
  6958. goog.exportProperty(jspb.BinaryWriter.prototype, "writeSfixed64", jspb.BinaryWriter.prototype.writeSfixed64);
  6959. jspb.BinaryWriter.prototype.writeSfixed64String = function (a, b) {
  6960. null != b && (b = jspb.arith.Int64.fromString(b), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.FIXED64), this.encoder_.writeSplitFixed64(b.lo, b.hi));
  6961. };
  6962. jspb.BinaryWriter.prototype.writeFloat = function (a, b) {
  6963. null != b && (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.FIXED32), this.encoder_.writeFloat(b));
  6964. };
  6965. goog.exportProperty(jspb.BinaryWriter.prototype, "writeFloat", jspb.BinaryWriter.prototype.writeFloat);
  6966. jspb.BinaryWriter.prototype.writeDouble = function (a, b) {
  6967. null != b && (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.FIXED64), this.encoder_.writeDouble(b));
  6968. };
  6969. goog.exportProperty(jspb.BinaryWriter.prototype, "writeDouble", jspb.BinaryWriter.prototype.writeDouble);
  6970. jspb.BinaryWriter.prototype.writeBool = function (a, b) {
  6971. null != b && (jspb.asserts.assert("boolean" === typeof b || "number" === typeof b), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeBool(b));
  6972. };
  6973. goog.exportProperty(jspb.BinaryWriter.prototype, "writeBool", jspb.BinaryWriter.prototype.writeBool);
  6974. jspb.BinaryWriter.prototype.writeEnum = function (a, b) {
  6975. null != b && (jspb.asserts.assert(b >= -jspb.BinaryConstants.TWO_TO_31 && b < jspb.BinaryConstants.TWO_TO_31), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeSignedVarint32(b));
  6976. };
  6977. goog.exportProperty(jspb.BinaryWriter.prototype, "writeEnum", jspb.BinaryWriter.prototype.writeEnum);
  6978. jspb.BinaryWriter.prototype.writeString = function (a, b) {
  6979. null != b && (a = this.beginDelimited_(a), this.encoder_.writeString(b), this.endDelimited_(a));
  6980. };
  6981. goog.exportProperty(jspb.BinaryWriter.prototype, "writeString", jspb.BinaryWriter.prototype.writeString);
  6982. jspb.BinaryWriter.prototype.writeBytes = function (a, b) {
  6983. null != b && (b = jspb.utils.byteSourceToUint8Array(b), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.DELIMITED), this.encoder_.writeUnsignedVarint32(b.length), this.appendUint8Array_(b));
  6984. };
  6985. goog.exportProperty(jspb.BinaryWriter.prototype, "writeBytes", jspb.BinaryWriter.prototype.writeBytes);
  6986. jspb.BinaryWriter.prototype.writeMessage = function (a, b, c) {
  6987. null != b && (a = this.beginDelimited_(a), c(b, this), this.endDelimited_(a));
  6988. };
  6989. goog.exportProperty(jspb.BinaryWriter.prototype, "writeMessage", jspb.BinaryWriter.prototype.writeMessage);
  6990. jspb.BinaryWriter.prototype.writeMessageSet = function (a, b, c) {
  6991. null != b && (this.writeFieldHeader_(1, jspb.BinaryConstants.WireType.START_GROUP), this.writeFieldHeader_(2, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeSignedVarint32(a), a = this.beginDelimited_(3), c(b, this), this.endDelimited_(a), this.writeFieldHeader_(1, jspb.BinaryConstants.WireType.END_GROUP));
  6992. };
  6993. jspb.BinaryWriter.prototype.writeGroup = function (a, b, c) {
  6994. null != b && (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.START_GROUP), c(b, this), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.END_GROUP));
  6995. };
  6996. goog.exportProperty(jspb.BinaryWriter.prototype, "writeGroup", jspb.BinaryWriter.prototype.writeGroup);
  6997. jspb.BinaryWriter.prototype.writeFixedHash64 = function (a, b) {
  6998. null != b && (jspb.asserts.assert(8 == b.length), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.FIXED64), this.encoder_.writeFixedHash64(b));
  6999. };
  7000. jspb.BinaryWriter.prototype.writeVarintHash64 = function (a, b) {
  7001. null != b && (jspb.asserts.assert(8 == b.length), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT), this.encoder_.writeVarintHash64(b));
  7002. };
  7003. jspb.BinaryWriter.prototype.writeSplitFixed64 = function (a, b, c) {
  7004. this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.FIXED64);
  7005. this.encoder_.writeSplitFixed64(b, c);
  7006. };
  7007. jspb.BinaryWriter.prototype.writeSplitVarint64 = function (a, b, c) {
  7008. this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT);
  7009. this.encoder_.writeSplitVarint64(b, c);
  7010. };
  7011. jspb.BinaryWriter.prototype.writeSplitZigzagVarint64 = function (a, b, c) {
  7012. this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.VARINT);
  7013. var d = this.encoder_;
  7014. jspb.utils.toZigzag64(b, c, function (a, b) {
  7015. d.writeSplitVarint64(a >>> 0, b >>> 0);
  7016. });
  7017. };
  7018. jspb.BinaryWriter.prototype.writeRepeatedInt32 = function (a, b) {
  7019. if (null != b) for (var c = 0; c < b.length; c++) {
  7020. this.writeSignedVarint32_(a, b[c]);
  7021. }
  7022. };
  7023. goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedInt32", jspb.BinaryWriter.prototype.writeRepeatedInt32);
  7024. jspb.BinaryWriter.prototype.writeRepeatedInt32String = function (a, b) {
  7025. if (null != b) for (var c = 0; c < b.length; c++) {
  7026. this.writeInt32String(a, b[c]);
  7027. }
  7028. };
  7029. jspb.BinaryWriter.prototype.writeRepeatedInt64 = function (a, b) {
  7030. if (null != b) for (var c = 0; c < b.length; c++) {
  7031. this.writeSignedVarint64_(a, b[c]);
  7032. }
  7033. };
  7034. goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedInt64", jspb.BinaryWriter.prototype.writeRepeatedInt64);
  7035. jspb.BinaryWriter.prototype.writeRepeatedSplitFixed64 = function (a, b, c, d) {
  7036. if (null != b) for (var e = 0; e < b.length; e++) {
  7037. this.writeSplitFixed64(a, c(b[e]), d(b[e]));
  7038. }
  7039. };
  7040. jspb.BinaryWriter.prototype.writeRepeatedSplitVarint64 = function (a, b, c, d) {
  7041. if (null != b) for (var e = 0; e < b.length; e++) {
  7042. this.writeSplitVarint64(a, c(b[e]), d(b[e]));
  7043. }
  7044. };
  7045. jspb.BinaryWriter.prototype.writeRepeatedSplitZigzagVarint64 = function (a, b, c, d) {
  7046. if (null != b) for (var e = 0; e < b.length; e++) {
  7047. this.writeSplitZigzagVarint64(a, c(b[e]), d(b[e]));
  7048. }
  7049. };
  7050. jspb.BinaryWriter.prototype.writeRepeatedInt64String = function (a, b) {
  7051. if (null != b) for (var c = 0; c < b.length; c++) {
  7052. this.writeInt64String(a, b[c]);
  7053. }
  7054. };
  7055. jspb.BinaryWriter.prototype.writeRepeatedUint32 = function (a, b) {
  7056. if (null != b) for (var c = 0; c < b.length; c++) {
  7057. this.writeUnsignedVarint32_(a, b[c]);
  7058. }
  7059. };
  7060. goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedUint32", jspb.BinaryWriter.prototype.writeRepeatedUint32);
  7061. jspb.BinaryWriter.prototype.writeRepeatedUint32String = function (a, b) {
  7062. if (null != b) for (var c = 0; c < b.length; c++) {
  7063. this.writeUint32String(a, b[c]);
  7064. }
  7065. };
  7066. jspb.BinaryWriter.prototype.writeRepeatedUint64 = function (a, b) {
  7067. if (null != b) for (var c = 0; c < b.length; c++) {
  7068. this.writeUnsignedVarint64_(a, b[c]);
  7069. }
  7070. };
  7071. goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedUint64", jspb.BinaryWriter.prototype.writeRepeatedUint64);
  7072. jspb.BinaryWriter.prototype.writeRepeatedUint64String = function (a, b) {
  7073. if (null != b) for (var c = 0; c < b.length; c++) {
  7074. this.writeUint64String(a, b[c]);
  7075. }
  7076. };
  7077. jspb.BinaryWriter.prototype.writeRepeatedSint32 = function (a, b) {
  7078. if (null != b) for (var c = 0; c < b.length; c++) {
  7079. this.writeZigzagVarint32_(a, b[c]);
  7080. }
  7081. };
  7082. goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedSint32", jspb.BinaryWriter.prototype.writeRepeatedSint32);
  7083. jspb.BinaryWriter.prototype.writeRepeatedSint64 = function (a, b) {
  7084. if (null != b) for (var c = 0; c < b.length; c++) {
  7085. this.writeZigzagVarint64_(a, b[c]);
  7086. }
  7087. };
  7088. goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedSint64", jspb.BinaryWriter.prototype.writeRepeatedSint64);
  7089. jspb.BinaryWriter.prototype.writeRepeatedSint64String = function (a, b) {
  7090. if (null != b) for (var c = 0; c < b.length; c++) {
  7091. this.writeZigzagVarint64String_(a, b[c]);
  7092. }
  7093. };
  7094. jspb.BinaryWriter.prototype.writeRepeatedSintHash64 = function (a, b) {
  7095. if (null != b) for (var c = 0; c < b.length; c++) {
  7096. this.writeZigzagVarintHash64_(a, b[c]);
  7097. }
  7098. };
  7099. jspb.BinaryWriter.prototype.writeRepeatedFixed32 = function (a, b) {
  7100. if (null != b) for (var c = 0; c < b.length; c++) {
  7101. this.writeFixed32(a, b[c]);
  7102. }
  7103. };
  7104. goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedFixed32", jspb.BinaryWriter.prototype.writeRepeatedFixed32);
  7105. jspb.BinaryWriter.prototype.writeRepeatedFixed64 = function (a, b) {
  7106. if (null != b) for (var c = 0; c < b.length; c++) {
  7107. this.writeFixed64(a, b[c]);
  7108. }
  7109. };
  7110. goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedFixed64", jspb.BinaryWriter.prototype.writeRepeatedFixed64);
  7111. jspb.BinaryWriter.prototype.writeRepeatedFixed64String = function (a, b) {
  7112. if (null != b) for (var c = 0; c < b.length; c++) {
  7113. this.writeFixed64String(a, b[c]);
  7114. }
  7115. };
  7116. goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedFixed64String", jspb.BinaryWriter.prototype.writeRepeatedFixed64String);
  7117. jspb.BinaryWriter.prototype.writeRepeatedSfixed32 = function (a, b) {
  7118. if (null != b) for (var c = 0; c < b.length; c++) {
  7119. this.writeSfixed32(a, b[c]);
  7120. }
  7121. };
  7122. goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedSfixed32", jspb.BinaryWriter.prototype.writeRepeatedSfixed32);
  7123. jspb.BinaryWriter.prototype.writeRepeatedSfixed64 = function (a, b) {
  7124. if (null != b) for (var c = 0; c < b.length; c++) {
  7125. this.writeSfixed64(a, b[c]);
  7126. }
  7127. };
  7128. goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedSfixed64", jspb.BinaryWriter.prototype.writeRepeatedSfixed64);
  7129. jspb.BinaryWriter.prototype.writeRepeatedSfixed64String = function (a, b) {
  7130. if (null != b) for (var c = 0; c < b.length; c++) {
  7131. this.writeSfixed64String(a, b[c]);
  7132. }
  7133. };
  7134. jspb.BinaryWriter.prototype.writeRepeatedFloat = function (a, b) {
  7135. if (null != b) for (var c = 0; c < b.length; c++) {
  7136. this.writeFloat(a, b[c]);
  7137. }
  7138. };
  7139. goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedFloat", jspb.BinaryWriter.prototype.writeRepeatedFloat);
  7140. jspb.BinaryWriter.prototype.writeRepeatedDouble = function (a, b) {
  7141. if (null != b) for (var c = 0; c < b.length; c++) {
  7142. this.writeDouble(a, b[c]);
  7143. }
  7144. };
  7145. goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedDouble", jspb.BinaryWriter.prototype.writeRepeatedDouble);
  7146. jspb.BinaryWriter.prototype.writeRepeatedBool = function (a, b) {
  7147. if (null != b) for (var c = 0; c < b.length; c++) {
  7148. this.writeBool(a, b[c]);
  7149. }
  7150. };
  7151. goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedBool", jspb.BinaryWriter.prototype.writeRepeatedBool);
  7152. jspb.BinaryWriter.prototype.writeRepeatedEnum = function (a, b) {
  7153. if (null != b) for (var c = 0; c < b.length; c++) {
  7154. this.writeEnum(a, b[c]);
  7155. }
  7156. };
  7157. goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedEnum", jspb.BinaryWriter.prototype.writeRepeatedEnum);
  7158. jspb.BinaryWriter.prototype.writeRepeatedString = function (a, b) {
  7159. if (null != b) for (var c = 0; c < b.length; c++) {
  7160. this.writeString(a, b[c]);
  7161. }
  7162. };
  7163. goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedString", jspb.BinaryWriter.prototype.writeRepeatedString);
  7164. jspb.BinaryWriter.prototype.writeRepeatedBytes = function (a, b) {
  7165. if (null != b) for (var c = 0; c < b.length; c++) {
  7166. this.writeBytes(a, b[c]);
  7167. }
  7168. };
  7169. goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedBytes", jspb.BinaryWriter.prototype.writeRepeatedBytes);
  7170. jspb.BinaryWriter.prototype.writeRepeatedMessage = function (a, b, c) {
  7171. if (null != b) for (var d = 0; d < b.length; d++) {
  7172. var e = this.beginDelimited_(a);
  7173. c(b[d], this);
  7174. this.endDelimited_(e);
  7175. }
  7176. };
  7177. goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedMessage", jspb.BinaryWriter.prototype.writeRepeatedMessage);
  7178. jspb.BinaryWriter.prototype.writeRepeatedGroup = function (a, b, c) {
  7179. if (null != b) for (var d = 0; d < b.length; d++) {
  7180. this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.START_GROUP), c(b[d], this), this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.END_GROUP);
  7181. }
  7182. };
  7183. goog.exportProperty(jspb.BinaryWriter.prototype, "writeRepeatedGroup", jspb.BinaryWriter.prototype.writeRepeatedGroup);
  7184. jspb.BinaryWriter.prototype.writeRepeatedFixedHash64 = function (a, b) {
  7185. if (null != b) for (var c = 0; c < b.length; c++) {
  7186. this.writeFixedHash64(a, b[c]);
  7187. }
  7188. };
  7189. jspb.BinaryWriter.prototype.writeRepeatedVarintHash64 = function (a, b) {
  7190. if (null != b) for (var c = 0; c < b.length; c++) {
  7191. this.writeVarintHash64(a, b[c]);
  7192. }
  7193. };
  7194. jspb.BinaryWriter.prototype.writePackedInt32 = function (a, b) {
  7195. if (null != b && b.length) {
  7196. a = this.beginDelimited_(a);
  7197. for (var c = 0; c < b.length; c++) {
  7198. this.encoder_.writeSignedVarint32(b[c]);
  7199. }
  7200. this.endDelimited_(a);
  7201. }
  7202. };
  7203. goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedInt32", jspb.BinaryWriter.prototype.writePackedInt32);
  7204. jspb.BinaryWriter.prototype.writePackedInt32String = function (a, b) {
  7205. if (null != b && b.length) {
  7206. a = this.beginDelimited_(a);
  7207. for (var c = 0; c < b.length; c++) {
  7208. this.encoder_.writeSignedVarint32(parseInt(b[c], 10));
  7209. }
  7210. this.endDelimited_(a);
  7211. }
  7212. };
  7213. jspb.BinaryWriter.prototype.writePackedInt64 = function (a, b) {
  7214. if (null != b && b.length) {
  7215. a = this.beginDelimited_(a);
  7216. for (var c = 0; c < b.length; c++) {
  7217. this.encoder_.writeSignedVarint64(b[c]);
  7218. }
  7219. this.endDelimited_(a);
  7220. }
  7221. };
  7222. goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedInt64", jspb.BinaryWriter.prototype.writePackedInt64);
  7223. jspb.BinaryWriter.prototype.writePackedSplitFixed64 = function (a, b, c, d) {
  7224. if (null != b) {
  7225. a = this.beginDelimited_(a);
  7226. for (var e = 0; e < b.length; e++) {
  7227. this.encoder_.writeSplitFixed64(c(b[e]), d(b[e]));
  7228. }
  7229. this.endDelimited_(a);
  7230. }
  7231. };
  7232. jspb.BinaryWriter.prototype.writePackedSplitVarint64 = function (a, b, c, d) {
  7233. if (null != b) {
  7234. a = this.beginDelimited_(a);
  7235. for (var e = 0; e < b.length; e++) {
  7236. this.encoder_.writeSplitVarint64(c(b[e]), d(b[e]));
  7237. }
  7238. this.endDelimited_(a);
  7239. }
  7240. };
  7241. jspb.BinaryWriter.prototype.writePackedSplitZigzagVarint64 = function (a, b, c, d) {
  7242. if (null != b) {
  7243. a = this.beginDelimited_(a);
  7244. for (var e = this.encoder_, f = 0; f < b.length; f++) {
  7245. jspb.utils.toZigzag64(c(b[f]), d(b[f]), function (a, b) {
  7246. e.writeSplitVarint64(a >>> 0, b >>> 0);
  7247. });
  7248. }
  7249. this.endDelimited_(a);
  7250. }
  7251. };
  7252. jspb.BinaryWriter.prototype.writePackedInt64String = function (a, b) {
  7253. if (null != b && b.length) {
  7254. a = this.beginDelimited_(a);
  7255. for (var c = 0; c < b.length; c++) {
  7256. var d = jspb.arith.Int64.fromString(b[c]);
  7257. this.encoder_.writeSplitVarint64(d.lo, d.hi);
  7258. }
  7259. this.endDelimited_(a);
  7260. }
  7261. };
  7262. jspb.BinaryWriter.prototype.writePackedUint32 = function (a, b) {
  7263. if (null != b && b.length) {
  7264. a = this.beginDelimited_(a);
  7265. for (var c = 0; c < b.length; c++) {
  7266. this.encoder_.writeUnsignedVarint32(b[c]);
  7267. }
  7268. this.endDelimited_(a);
  7269. }
  7270. };
  7271. goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedUint32", jspb.BinaryWriter.prototype.writePackedUint32);
  7272. jspb.BinaryWriter.prototype.writePackedUint32String = function (a, b) {
  7273. if (null != b && b.length) {
  7274. a = this.beginDelimited_(a);
  7275. for (var c = 0; c < b.length; c++) {
  7276. this.encoder_.writeUnsignedVarint32(parseInt(b[c], 10));
  7277. }
  7278. this.endDelimited_(a);
  7279. }
  7280. };
  7281. jspb.BinaryWriter.prototype.writePackedUint64 = function (a, b) {
  7282. if (null != b && b.length) {
  7283. a = this.beginDelimited_(a);
  7284. for (var c = 0; c < b.length; c++) {
  7285. this.encoder_.writeUnsignedVarint64(b[c]);
  7286. }
  7287. this.endDelimited_(a);
  7288. }
  7289. };
  7290. goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedUint64", jspb.BinaryWriter.prototype.writePackedUint64);
  7291. jspb.BinaryWriter.prototype.writePackedUint64String = function (a, b) {
  7292. if (null != b && b.length) {
  7293. a = this.beginDelimited_(a);
  7294. for (var c = 0; c < b.length; c++) {
  7295. var d = jspb.arith.UInt64.fromString(b[c]);
  7296. this.encoder_.writeSplitVarint64(d.lo, d.hi);
  7297. }
  7298. this.endDelimited_(a);
  7299. }
  7300. };
  7301. jspb.BinaryWriter.prototype.writePackedSint32 = function (a, b) {
  7302. if (null != b && b.length) {
  7303. a = this.beginDelimited_(a);
  7304. for (var c = 0; c < b.length; c++) {
  7305. this.encoder_.writeZigzagVarint32(b[c]);
  7306. }
  7307. this.endDelimited_(a);
  7308. }
  7309. };
  7310. goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedSint32", jspb.BinaryWriter.prototype.writePackedSint32);
  7311. jspb.BinaryWriter.prototype.writePackedSint64 = function (a, b) {
  7312. if (null != b && b.length) {
  7313. a = this.beginDelimited_(a);
  7314. for (var c = 0; c < b.length; c++) {
  7315. this.encoder_.writeZigzagVarint64(b[c]);
  7316. }
  7317. this.endDelimited_(a);
  7318. }
  7319. };
  7320. goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedSint64", jspb.BinaryWriter.prototype.writePackedSint64);
  7321. jspb.BinaryWriter.prototype.writePackedSint64String = function (a, b) {
  7322. if (null != b && b.length) {
  7323. a = this.beginDelimited_(a);
  7324. for (var c = 0; c < b.length; c++) {
  7325. this.encoder_.writeZigzagVarintHash64(jspb.utils.decimalStringToHash64(b[c]));
  7326. }
  7327. this.endDelimited_(a);
  7328. }
  7329. };
  7330. jspb.BinaryWriter.prototype.writePackedSintHash64 = function (a, b) {
  7331. if (null != b && b.length) {
  7332. a = this.beginDelimited_(a);
  7333. for (var c = 0; c < b.length; c++) {
  7334. this.encoder_.writeZigzagVarintHash64(b[c]);
  7335. }
  7336. this.endDelimited_(a);
  7337. }
  7338. };
  7339. jspb.BinaryWriter.prototype.writePackedFixed32 = function (a, b) {
  7340. if (null != b && b.length) for (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.DELIMITED), this.encoder_.writeUnsignedVarint32(4 * b.length), a = 0; a < b.length; a++) {
  7341. this.encoder_.writeUint32(b[a]);
  7342. }
  7343. };
  7344. goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedFixed32", jspb.BinaryWriter.prototype.writePackedFixed32);
  7345. jspb.BinaryWriter.prototype.writePackedFixed64 = function (a, b) {
  7346. if (null != b && b.length) for (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.DELIMITED), this.encoder_.writeUnsignedVarint32(8 * b.length), a = 0; a < b.length; a++) {
  7347. this.encoder_.writeUint64(b[a]);
  7348. }
  7349. };
  7350. goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedFixed64", jspb.BinaryWriter.prototype.writePackedFixed64);
  7351. jspb.BinaryWriter.prototype.writePackedFixed64String = function (a, b) {
  7352. if (null != b && b.length) for (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.DELIMITED), this.encoder_.writeUnsignedVarint32(8 * b.length), a = 0; a < b.length; a++) {
  7353. var c = jspb.arith.UInt64.fromString(b[a]);
  7354. this.encoder_.writeSplitFixed64(c.lo, c.hi);
  7355. }
  7356. };
  7357. jspb.BinaryWriter.prototype.writePackedSfixed32 = function (a, b) {
  7358. if (null != b && b.length) for (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.DELIMITED), this.encoder_.writeUnsignedVarint32(4 * b.length), a = 0; a < b.length; a++) {
  7359. this.encoder_.writeInt32(b[a]);
  7360. }
  7361. };
  7362. goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedSfixed32", jspb.BinaryWriter.prototype.writePackedSfixed32);
  7363. jspb.BinaryWriter.prototype.writePackedSfixed64 = function (a, b) {
  7364. if (null != b && b.length) for (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.DELIMITED), this.encoder_.writeUnsignedVarint32(8 * b.length), a = 0; a < b.length; a++) {
  7365. this.encoder_.writeInt64(b[a]);
  7366. }
  7367. };
  7368. goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedSfixed64", jspb.BinaryWriter.prototype.writePackedSfixed64);
  7369. jspb.BinaryWriter.prototype.writePackedSfixed64String = function (a, b) {
  7370. if (null != b && b.length) for (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.DELIMITED), this.encoder_.writeUnsignedVarint32(8 * b.length), a = 0; a < b.length; a++) {
  7371. this.encoder_.writeInt64String(b[a]);
  7372. }
  7373. };
  7374. jspb.BinaryWriter.prototype.writePackedFloat = function (a, b) {
  7375. if (null != b && b.length) for (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.DELIMITED), this.encoder_.writeUnsignedVarint32(4 * b.length), a = 0; a < b.length; a++) {
  7376. this.encoder_.writeFloat(b[a]);
  7377. }
  7378. };
  7379. goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedFloat", jspb.BinaryWriter.prototype.writePackedFloat);
  7380. jspb.BinaryWriter.prototype.writePackedDouble = function (a, b) {
  7381. if (null != b && b.length) for (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.DELIMITED), this.encoder_.writeUnsignedVarint32(8 * b.length), a = 0; a < b.length; a++) {
  7382. this.encoder_.writeDouble(b[a]);
  7383. }
  7384. };
  7385. goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedDouble", jspb.BinaryWriter.prototype.writePackedDouble);
  7386. jspb.BinaryWriter.prototype.writePackedBool = function (a, b) {
  7387. if (null != b && b.length) for (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.DELIMITED), this.encoder_.writeUnsignedVarint32(b.length), a = 0; a < b.length; a++) {
  7388. this.encoder_.writeBool(b[a]);
  7389. }
  7390. };
  7391. goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedBool", jspb.BinaryWriter.prototype.writePackedBool);
  7392. jspb.BinaryWriter.prototype.writePackedEnum = function (a, b) {
  7393. if (null != b && b.length) {
  7394. a = this.beginDelimited_(a);
  7395. for (var c = 0; c < b.length; c++) {
  7396. this.encoder_.writeEnum(b[c]);
  7397. }
  7398. this.endDelimited_(a);
  7399. }
  7400. };
  7401. goog.exportProperty(jspb.BinaryWriter.prototype, "writePackedEnum", jspb.BinaryWriter.prototype.writePackedEnum);
  7402. jspb.BinaryWriter.prototype.writePackedFixedHash64 = function (a, b) {
  7403. if (null != b && b.length) for (this.writeFieldHeader_(a, jspb.BinaryConstants.WireType.DELIMITED), this.encoder_.writeUnsignedVarint32(8 * b.length), a = 0; a < b.length; a++) {
  7404. this.encoder_.writeFixedHash64(b[a]);
  7405. }
  7406. };
  7407. jspb.BinaryWriter.prototype.writePackedVarintHash64 = function (a, b) {
  7408. if (null != b && b.length) {
  7409. a = this.beginDelimited_(a);
  7410. for (var c = 0; c < b.length; c++) {
  7411. this.encoder_.writeVarintHash64(b[c]);
  7412. }
  7413. this.endDelimited_(a);
  7414. }
  7415. };
  7416. jspb.Map = function (a, b) {
  7417. this.arr_ = a;
  7418. this.valueCtor_ = b;
  7419. this.map_ = {};
  7420. this.arrClean = !0;
  7421. 0 < this.arr_.length && this.loadFromArray_();
  7422. };
  7423. goog.exportSymbol("jspb.Map", jspb.Map);
  7424. jspb.Map.prototype.loadFromArray_ = function () {
  7425. for (var a = 0; a < this.arr_.length; a++) {
  7426. var b = this.arr_[a],
  7427. c = b[0];
  7428. this.map_[c.toString()] = new jspb.Map.Entry_(c, b[1]);
  7429. }
  7430. this.arrClean = !0;
  7431. };
  7432. jspb.Map.prototype.toArray = function () {
  7433. if (this.arrClean) {
  7434. if (this.valueCtor_) {
  7435. var a = this.map_,
  7436. b;
  7437. for (b in a) {
  7438. if (Object.prototype.hasOwnProperty.call(a, b)) {
  7439. var c = a[b].valueWrapper;
  7440. c && c.toArray();
  7441. }
  7442. }
  7443. }
  7444. } else {
  7445. this.arr_.length = 0;
  7446. a = this.stringKeys_();
  7447. a.sort();
  7448. for (b = 0; b < a.length; b++) {
  7449. var d = this.map_[a[b]];
  7450. (c = d.valueWrapper) && c.toArray();
  7451. this.arr_.push([d.key, d.value]);
  7452. }
  7453. this.arrClean = !0;
  7454. }
  7455. return this.arr_;
  7456. };
  7457. goog.exportProperty(jspb.Map.prototype, "toArray", jspb.Map.prototype.toArray);
  7458. jspb.Map.prototype.toObject = function (a, b) {
  7459. for (var c = this.toArray(), d = [], e = 0; e < c.length; e++) {
  7460. var f = this.map_[c[e][0].toString()];
  7461. this.wrapEntry_(f);
  7462. var g = f.valueWrapper;
  7463. g ? (jspb.asserts.assert(b), d.push([f.key, b(a, g)])) : d.push([f.key, f.value]);
  7464. }
  7465. return d;
  7466. };
  7467. goog.exportProperty(jspb.Map.prototype, "toObject", jspb.Map.prototype.toObject);
  7468. jspb.Map.fromObject = function (a, b, c) {
  7469. b = new jspb.Map([], b);
  7470. for (var d = 0; d < a.length; d++) {
  7471. var e = a[d][0],
  7472. f = c(a[d][1]);
  7473. b.set(e, f);
  7474. }
  7475. return b;
  7476. };
  7477. goog.exportProperty(jspb.Map, "fromObject", jspb.Map.fromObject);
  7478. jspb.Map.ArrayIteratorIterable_ = function (a) {
  7479. this.idx_ = 0;
  7480. this.arr_ = a;
  7481. };
  7482. jspb.Map.ArrayIteratorIterable_.prototype.next = function () {
  7483. return this.idx_ < this.arr_.length ? {
  7484. done: !1,
  7485. value: this.arr_[this.idx_++]
  7486. } : {
  7487. done: !0,
  7488. value: void 0
  7489. };
  7490. };
  7491. "undefined" != typeof Symbol && (jspb.Map.ArrayIteratorIterable_.prototype[Symbol.iterator] = function () {
  7492. return this;
  7493. });
  7494. jspb.Map.prototype.getLength = function () {
  7495. return this.stringKeys_().length;
  7496. };
  7497. goog.exportProperty(jspb.Map.prototype, "getLength", jspb.Map.prototype.getLength);
  7498. jspb.Map.prototype.clear = function () {
  7499. this.map_ = {};
  7500. this.arrClean = !1;
  7501. };
  7502. goog.exportProperty(jspb.Map.prototype, "clear", jspb.Map.prototype.clear);
  7503. jspb.Map.prototype.del = function (a) {
  7504. a = a.toString();
  7505. var b = this.map_.hasOwnProperty(a);
  7506. delete this.map_[a];
  7507. this.arrClean = !1;
  7508. return b;
  7509. };
  7510. goog.exportProperty(jspb.Map.prototype, "del", jspb.Map.prototype.del);
  7511. jspb.Map.prototype.getEntryList = function () {
  7512. var a = [],
  7513. b = this.stringKeys_();
  7514. b.sort();
  7515. for (var c = 0; c < b.length; c++) {
  7516. var d = this.map_[b[c]];
  7517. a.push([d.key, d.value]);
  7518. }
  7519. return a;
  7520. };
  7521. goog.exportProperty(jspb.Map.prototype, "getEntryList", jspb.Map.prototype.getEntryList);
  7522. jspb.Map.prototype.entries = function () {
  7523. var a = [],
  7524. b = this.stringKeys_();
  7525. b.sort();
  7526. for (var c = 0; c < b.length; c++) {
  7527. var d = this.map_[b[c]];
  7528. a.push([d.key, this.wrapEntry_(d)]);
  7529. }
  7530. return new jspb.Map.ArrayIteratorIterable_(a);
  7531. };
  7532. goog.exportProperty(jspb.Map.prototype, "entries", jspb.Map.prototype.entries);
  7533. jspb.Map.prototype.keys = function () {
  7534. var a = [],
  7535. b = this.stringKeys_();
  7536. b.sort();
  7537. for (var c = 0; c < b.length; c++) {
  7538. a.push(this.map_[b[c]].key);
  7539. }
  7540. return new jspb.Map.ArrayIteratorIterable_(a);
  7541. };
  7542. goog.exportProperty(jspb.Map.prototype, "keys", jspb.Map.prototype.keys);
  7543. jspb.Map.prototype.values = function () {
  7544. var a = [],
  7545. b = this.stringKeys_();
  7546. b.sort();
  7547. for (var c = 0; c < b.length; c++) {
  7548. a.push(this.wrapEntry_(this.map_[b[c]]));
  7549. }
  7550. return new jspb.Map.ArrayIteratorIterable_(a);
  7551. };
  7552. goog.exportProperty(jspb.Map.prototype, "values", jspb.Map.prototype.values);
  7553. jspb.Map.prototype.forEach = function (a, b) {
  7554. var c = this.stringKeys_();
  7555. c.sort();
  7556. for (var d = 0; d < c.length; d++) {
  7557. var e = this.map_[c[d]];
  7558. a.call(b, this.wrapEntry_(e), e.key, this);
  7559. }
  7560. };
  7561. goog.exportProperty(jspb.Map.prototype, "forEach", jspb.Map.prototype.forEach);
  7562. jspb.Map.prototype.set = function (a, b) {
  7563. var c = new jspb.Map.Entry_(a);
  7564. this.valueCtor_ ? (c.valueWrapper = b, c.value = b.toArray()) : c.value = b;
  7565. this.map_[a.toString()] = c;
  7566. this.arrClean = !1;
  7567. return this;
  7568. };
  7569. goog.exportProperty(jspb.Map.prototype, "set", jspb.Map.prototype.set);
  7570. jspb.Map.prototype.wrapEntry_ = function (a) {
  7571. return this.valueCtor_ ? (a.valueWrapper || (a.valueWrapper = new this.valueCtor_(a.value)), a.valueWrapper) : a.value;
  7572. };
  7573. jspb.Map.prototype.get = function (a) {
  7574. if (a = this.map_[a.toString()]) return this.wrapEntry_(a);
  7575. };
  7576. goog.exportProperty(jspb.Map.prototype, "get", jspb.Map.prototype.get);
  7577. jspb.Map.prototype.has = function (a) {
  7578. return a.toString() in this.map_;
  7579. };
  7580. goog.exportProperty(jspb.Map.prototype, "has", jspb.Map.prototype.has);
  7581. jspb.Map.prototype.serializeBinary = function (a, b, c, d, e) {
  7582. var f = this.stringKeys_();
  7583. f.sort();
  7584. for (var g = 0; g < f.length; g++) {
  7585. var h = this.map_[f[g]];
  7586. b.beginSubMessage(a);
  7587. c.call(b, 1, h.key);
  7588. this.valueCtor_ ? d.call(b, 2, this.wrapEntry_(h), e) : d.call(b, 2, h.value);
  7589. b.endSubMessage();
  7590. }
  7591. };
  7592. goog.exportProperty(jspb.Map.prototype, "serializeBinary", jspb.Map.prototype.serializeBinary);
  7593. jspb.Map.deserializeBinary = function (a, b, c, d, e, f, g) {
  7594. for (; b.nextField() && !b.isEndGroup();) {
  7595. var h = b.getFieldNumber();
  7596. 1 == h ? f = c.call(b) : 2 == h && (a.valueCtor_ ? (jspb.asserts.assert(e), g || (g = new a.valueCtor_()), d.call(b, g, e)) : g = d.call(b));
  7597. }
  7598. jspb.asserts.assert(void 0 != f);
  7599. jspb.asserts.assert(void 0 != g);
  7600. a.set(f, g);
  7601. };
  7602. goog.exportProperty(jspb.Map, "deserializeBinary", jspb.Map.deserializeBinary);
  7603. jspb.Map.prototype.stringKeys_ = function () {
  7604. var a = this.map_,
  7605. b = [],
  7606. c;
  7607. for (c in a) {
  7608. Object.prototype.hasOwnProperty.call(a, c) && b.push(c);
  7609. }
  7610. return b;
  7611. };
  7612. jspb.Map.Entry_ = function (a, b) {
  7613. this.key = a;
  7614. this.value = b;
  7615. this.valueWrapper = void 0;
  7616. };
  7617. jspb.ExtensionFieldInfo = function (a, b, c, d, e) {
  7618. this.fieldIndex = a;
  7619. this.fieldName = b;
  7620. this.ctor = c;
  7621. this.toObjectFn = d;
  7622. this.isRepeated = e;
  7623. };
  7624. goog.exportSymbol("jspb.ExtensionFieldInfo", jspb.ExtensionFieldInfo);
  7625. jspb.ExtensionFieldBinaryInfo = function (a, b, c, d, e, f) {
  7626. this.fieldInfo = a;
  7627. this.binaryReaderFn = b;
  7628. this.binaryWriterFn = c;
  7629. this.binaryMessageSerializeFn = d;
  7630. this.binaryMessageDeserializeFn = e;
  7631. this.isPacked = f;
  7632. };
  7633. goog.exportSymbol("jspb.ExtensionFieldBinaryInfo", jspb.ExtensionFieldBinaryInfo);
  7634. jspb.ExtensionFieldInfo.prototype.isMessageType = function () {
  7635. return !!this.ctor;
  7636. };
  7637. goog.exportProperty(jspb.ExtensionFieldInfo.prototype, "isMessageType", jspb.ExtensionFieldInfo.prototype.isMessageType);
  7638. jspb.Message = function () {};
  7639. goog.exportSymbol("jspb.Message", jspb.Message);
  7640. jspb.Message.GENERATE_TO_OBJECT = !0;
  7641. goog.exportProperty(jspb.Message, "GENERATE_TO_OBJECT", jspb.Message.GENERATE_TO_OBJECT);
  7642. jspb.Message.GENERATE_FROM_OBJECT = !goog.DISALLOW_TEST_ONLY_CODE;
  7643. goog.exportProperty(jspb.Message, "GENERATE_FROM_OBJECT", jspb.Message.GENERATE_FROM_OBJECT);
  7644. jspb.Message.GENERATE_TO_STRING = !0;
  7645. jspb.Message.ASSUME_LOCAL_ARRAYS = !1;
  7646. jspb.Message.SERIALIZE_EMPTY_TRAILING_FIELDS = !0;
  7647. jspb.Message.SUPPORTS_UINT8ARRAY_ = "function" == typeof Uint8Array;
  7648. jspb.Message.prototype.getJsPbMessageId = function () {
  7649. return this.messageId_;
  7650. };
  7651. goog.exportProperty(jspb.Message.prototype, "getJsPbMessageId", jspb.Message.prototype.getJsPbMessageId);
  7652. jspb.Message.getIndex_ = function (a, b) {
  7653. return b + a.arrayIndexOffset_;
  7654. };
  7655. jspb.Message.hiddenES6Property_ = function () {};
  7656. jspb.Message.getFieldNumber_ = function (a, b) {
  7657. return b - a.arrayIndexOffset_;
  7658. };
  7659. jspb.Message.initialize = function (a, b, c, d, e, f) {
  7660. a.wrappers_ = null;
  7661. b || (b = c ? [c] : []);
  7662. a.messageId_ = c ? String(c) : void 0;
  7663. a.arrayIndexOffset_ = 0 === c ? -1 : 0;
  7664. a.array = b;
  7665. jspb.Message.initPivotAndExtensionObject_(a, d);
  7666. a.convertedPrimitiveFields_ = {};
  7667. jspb.Message.SERIALIZE_EMPTY_TRAILING_FIELDS || (a.repeatedFields = e);
  7668. if (e) for (b = 0; b < e.length; b++) {
  7669. c = e[b], c < a.pivot_ ? (c = jspb.Message.getIndex_(a, c), a.array[c] = a.array[c] || jspb.Message.EMPTY_LIST_SENTINEL_) : (jspb.Message.maybeInitEmptyExtensionObject_(a), a.extensionObject_[c] = a.extensionObject_[c] || jspb.Message.EMPTY_LIST_SENTINEL_);
  7670. }
  7671. if (f && f.length) for (b = 0; b < f.length; b++) {
  7672. jspb.Message.computeOneofCase(a, f[b]);
  7673. }
  7674. };
  7675. goog.exportProperty(jspb.Message, "initialize", jspb.Message.initialize);
  7676. jspb.Message.EMPTY_LIST_SENTINEL_ = goog.DEBUG && Object.freeze ? Object.freeze([]) : [];
  7677. jspb.Message.isArray_ = function (a) {
  7678. return jspb.Message.ASSUME_LOCAL_ARRAYS ? a instanceof Array : Array.isArray(a);
  7679. };
  7680. jspb.Message.isExtensionObject_ = function (a) {
  7681. return null !== a && "object" == _typeof(a) && !jspb.Message.isArray_(a) && !(jspb.Message.SUPPORTS_UINT8ARRAY_ && a instanceof Uint8Array);
  7682. };
  7683. jspb.Message.initPivotAndExtensionObject_ = function (a, b) {
  7684. var c = a.array.length,
  7685. d = -1;
  7686. if (c && (d = c - 1, c = a.array[d], jspb.Message.isExtensionObject_(c))) {
  7687. a.pivot_ = jspb.Message.getFieldNumber_(a, d);
  7688. a.extensionObject_ = c;
  7689. return;
  7690. }
  7691. -1 < b ? (a.pivot_ = Math.max(b, jspb.Message.getFieldNumber_(a, d + 1)), a.extensionObject_ = null) : a.pivot_ = Number.MAX_VALUE;
  7692. };
  7693. jspb.Message.maybeInitEmptyExtensionObject_ = function (a) {
  7694. var b = jspb.Message.getIndex_(a, a.pivot_);
  7695. a.array[b] || (a.extensionObject_ = a.array[b] = {});
  7696. };
  7697. jspb.Message.toObjectList = function (a, b, c) {
  7698. for (var d = [], e = 0; e < a.length; e++) {
  7699. d[e] = b.call(a[e], c, a[e]);
  7700. }
  7701. return d;
  7702. };
  7703. goog.exportProperty(jspb.Message, "toObjectList", jspb.Message.toObjectList);
  7704. jspb.Message.toObjectExtension = function (a, b, c, d, e) {
  7705. for (var f in c) {
  7706. var g = c[f],
  7707. h = d.call(a, g);
  7708. if (null != h) {
  7709. for (var k in g.fieldName) {
  7710. if (g.fieldName.hasOwnProperty(k)) break;
  7711. }
  7712. b[k] = g.toObjectFn ? g.isRepeated ? jspb.Message.toObjectList(h, g.toObjectFn, e) : g.toObjectFn(e, h) : h;
  7713. }
  7714. }
  7715. };
  7716. goog.exportProperty(jspb.Message, "toObjectExtension", jspb.Message.toObjectExtension);
  7717. jspb.Message.serializeBinaryExtensions = function (a, b, c, d) {
  7718. for (var e in c) {
  7719. var f = c[e],
  7720. g = f.fieldInfo;
  7721. if (!f.binaryWriterFn) throw Error("Message extension present that was generated without binary serialization support");
  7722. var h = d.call(a, g);
  7723. if (null != h) if (g.isMessageType()) {
  7724. if (f.binaryMessageSerializeFn) f.binaryWriterFn.call(b, g.fieldIndex, h, f.binaryMessageSerializeFn);else throw Error("Message extension present holding submessage without binary support enabled, and message is being serialized to binary format");
  7725. } else f.binaryWriterFn.call(b, g.fieldIndex, h);
  7726. }
  7727. };
  7728. goog.exportProperty(jspb.Message, "serializeBinaryExtensions", jspb.Message.serializeBinaryExtensions);
  7729. jspb.Message.readBinaryExtension = function (a, b, c, d, e) {
  7730. var f = c[b.getFieldNumber()];
  7731. if (f) {
  7732. c = f.fieldInfo;
  7733. if (!f.binaryReaderFn) throw Error("Deserializing extension whose generated code does not support binary format");
  7734. if (c.isMessageType()) {
  7735. var g = new c.ctor();
  7736. f.binaryReaderFn.call(b, g, f.binaryMessageDeserializeFn);
  7737. } else g = f.binaryReaderFn.call(b);
  7738. c.isRepeated && !f.isPacked ? (b = d.call(a, c)) ? b.push(g) : e.call(a, c, [g]) : e.call(a, c, g);
  7739. } else b.skipField();
  7740. };
  7741. goog.exportProperty(jspb.Message, "readBinaryExtension", jspb.Message.readBinaryExtension);
  7742. jspb.Message.getField = function (a, b) {
  7743. if (b < a.pivot_) {
  7744. b = jspb.Message.getIndex_(a, b);
  7745. var c = a.array[b];
  7746. return c === jspb.Message.EMPTY_LIST_SENTINEL_ ? a.array[b] = [] : c;
  7747. }
  7748. if (a.extensionObject_) return c = a.extensionObject_[b], c === jspb.Message.EMPTY_LIST_SENTINEL_ ? a.extensionObject_[b] = [] : c;
  7749. };
  7750. goog.exportProperty(jspb.Message, "getField", jspb.Message.getField);
  7751. jspb.Message.getRepeatedField = function (a, b) {
  7752. return jspb.Message.getField(a, b);
  7753. };
  7754. goog.exportProperty(jspb.Message, "getRepeatedField", jspb.Message.getRepeatedField);
  7755. jspb.Message.getOptionalFloatingPointField = function (a, b) {
  7756. a = jspb.Message.getField(a, b);
  7757. return null == a ? a : +a;
  7758. };
  7759. goog.exportProperty(jspb.Message, "getOptionalFloatingPointField", jspb.Message.getOptionalFloatingPointField);
  7760. jspb.Message.getBooleanField = function (a, b) {
  7761. a = jspb.Message.getField(a, b);
  7762. return null == a ? a : !!a;
  7763. };
  7764. goog.exportProperty(jspb.Message, "getBooleanField", jspb.Message.getBooleanField);
  7765. jspb.Message.getRepeatedFloatingPointField = function (a, b) {
  7766. var c = jspb.Message.getRepeatedField(a, b);
  7767. a.convertedPrimitiveFields_ || (a.convertedPrimitiveFields_ = {});
  7768. if (!a.convertedPrimitiveFields_[b]) {
  7769. for (var d = 0; d < c.length; d++) {
  7770. c[d] = +c[d];
  7771. }
  7772. a.convertedPrimitiveFields_[b] = !0;
  7773. }
  7774. return c;
  7775. };
  7776. goog.exportProperty(jspb.Message, "getRepeatedFloatingPointField", jspb.Message.getRepeatedFloatingPointField);
  7777. jspb.Message.getRepeatedBooleanField = function (a, b) {
  7778. var c = jspb.Message.getRepeatedField(a, b);
  7779. a.convertedPrimitiveFields_ || (a.convertedPrimitiveFields_ = {});
  7780. if (!a.convertedPrimitiveFields_[b]) {
  7781. for (var d = 0; d < c.length; d++) {
  7782. c[d] = !!c[d];
  7783. }
  7784. a.convertedPrimitiveFields_[b] = !0;
  7785. }
  7786. return c;
  7787. };
  7788. goog.exportProperty(jspb.Message, "getRepeatedBooleanField", jspb.Message.getRepeatedBooleanField);
  7789. jspb.Message.bytesAsB64 = function (a) {
  7790. if (null == a || "string" === typeof a) return a;
  7791. if (jspb.Message.SUPPORTS_UINT8ARRAY_ && a instanceof Uint8Array) return goog.crypt.base64.encodeByteArray(a);
  7792. jspb.asserts.fail("Cannot coerce to b64 string: " + goog.typeOf(a));
  7793. return null;
  7794. };
  7795. goog.exportProperty(jspb.Message, "bytesAsB64", jspb.Message.bytesAsB64);
  7796. jspb.Message.bytesAsU8 = function (a) {
  7797. if (null == a || a instanceof Uint8Array) return a;
  7798. if ("string" === typeof a) return goog.crypt.base64.decodeStringToUint8Array(a);
  7799. jspb.asserts.fail("Cannot coerce to Uint8Array: " + goog.typeOf(a));
  7800. return null;
  7801. };
  7802. goog.exportProperty(jspb.Message, "bytesAsU8", jspb.Message.bytesAsU8);
  7803. jspb.Message.bytesListAsB64 = function (a) {
  7804. jspb.Message.assertConsistentTypes_(a);
  7805. return a.length && "string" !== typeof a[0] ? goog.array.map(a, jspb.Message.bytesAsB64) : a;
  7806. };
  7807. goog.exportProperty(jspb.Message, "bytesListAsB64", jspb.Message.bytesListAsB64);
  7808. jspb.Message.bytesListAsU8 = function (a) {
  7809. jspb.Message.assertConsistentTypes_(a);
  7810. return !a.length || a[0] instanceof Uint8Array ? a : goog.array.map(a, jspb.Message.bytesAsU8);
  7811. };
  7812. goog.exportProperty(jspb.Message, "bytesListAsU8", jspb.Message.bytesListAsU8);
  7813. jspb.Message.assertConsistentTypes_ = function (a) {
  7814. if (goog.DEBUG && a && 1 < a.length) {
  7815. var b = goog.typeOf(a[0]);
  7816. goog.array.forEach(a, function (a) {
  7817. goog.typeOf(a) != b && jspb.asserts.fail("Inconsistent type in JSPB repeated field array. Got " + goog.typeOf(a) + " expected " + b);
  7818. });
  7819. }
  7820. };
  7821. jspb.Message.getFieldWithDefault = function (a, b, c) {
  7822. a = jspb.Message.getField(a, b);
  7823. return null == a ? c : a;
  7824. };
  7825. goog.exportProperty(jspb.Message, "getFieldWithDefault", jspb.Message.getFieldWithDefault);
  7826. jspb.Message.getBooleanFieldWithDefault = function (a, b, c) {
  7827. a = jspb.Message.getBooleanField(a, b);
  7828. return null == a ? c : a;
  7829. };
  7830. goog.exportProperty(jspb.Message, "getBooleanFieldWithDefault", jspb.Message.getBooleanFieldWithDefault);
  7831. jspb.Message.getFloatingPointFieldWithDefault = function (a, b, c) {
  7832. a = jspb.Message.getOptionalFloatingPointField(a, b);
  7833. return null == a ? c : a;
  7834. };
  7835. goog.exportProperty(jspb.Message, "getFloatingPointFieldWithDefault", jspb.Message.getFloatingPointFieldWithDefault);
  7836. jspb.Message.getFieldProto3 = jspb.Message.getFieldWithDefault;
  7837. goog.exportProperty(jspb.Message, "getFieldProto3", jspb.Message.getFieldProto3);
  7838. jspb.Message.getMapField = function (a, b, c, d) {
  7839. a.wrappers_ || (a.wrappers_ = {});
  7840. if (b in a.wrappers_) return a.wrappers_[b];
  7841. var e = jspb.Message.getField(a, b);
  7842. if (!e) {
  7843. if (c) return;
  7844. e = [];
  7845. jspb.Message.setField(a, b, e);
  7846. }
  7847. return a.wrappers_[b] = new jspb.Map(e, d);
  7848. };
  7849. goog.exportProperty(jspb.Message, "getMapField", jspb.Message.getMapField);
  7850. jspb.Message.setField = function (a, b, c) {
  7851. jspb.asserts.assertInstanceof(a, jspb.Message);
  7852. b < a.pivot_ ? a.array[jspb.Message.getIndex_(a, b)] = c : (jspb.Message.maybeInitEmptyExtensionObject_(a), a.extensionObject_[b] = c);
  7853. return a;
  7854. };
  7855. goog.exportProperty(jspb.Message, "setField", jspb.Message.setField);
  7856. jspb.Message.setProto3IntField = function (a, b, c) {
  7857. return jspb.Message.setFieldIgnoringDefault_(a, b, c, 0);
  7858. };
  7859. goog.exportProperty(jspb.Message, "setProto3IntField", jspb.Message.setProto3IntField);
  7860. jspb.Message.setProto3FloatField = function (a, b, c) {
  7861. return jspb.Message.setFieldIgnoringDefault_(a, b, c, 0);
  7862. };
  7863. goog.exportProperty(jspb.Message, "setProto3FloatField", jspb.Message.setProto3FloatField);
  7864. jspb.Message.setProto3BooleanField = function (a, b, c) {
  7865. return jspb.Message.setFieldIgnoringDefault_(a, b, c, !1);
  7866. };
  7867. goog.exportProperty(jspb.Message, "setProto3BooleanField", jspb.Message.setProto3BooleanField);
  7868. jspb.Message.setProto3StringField = function (a, b, c) {
  7869. return jspb.Message.setFieldIgnoringDefault_(a, b, c, "");
  7870. };
  7871. goog.exportProperty(jspb.Message, "setProto3StringField", jspb.Message.setProto3StringField);
  7872. jspb.Message.setProto3BytesField = function (a, b, c) {
  7873. return jspb.Message.setFieldIgnoringDefault_(a, b, c, "");
  7874. };
  7875. goog.exportProperty(jspb.Message, "setProto3BytesField", jspb.Message.setProto3BytesField);
  7876. jspb.Message.setProto3EnumField = function (a, b, c) {
  7877. return jspb.Message.setFieldIgnoringDefault_(a, b, c, 0);
  7878. };
  7879. goog.exportProperty(jspb.Message, "setProto3EnumField", jspb.Message.setProto3EnumField);
  7880. jspb.Message.setProto3StringIntField = function (a, b, c) {
  7881. return jspb.Message.setFieldIgnoringDefault_(a, b, c, "0");
  7882. };
  7883. goog.exportProperty(jspb.Message, "setProto3StringIntField", jspb.Message.setProto3StringIntField);
  7884. jspb.Message.setFieldIgnoringDefault_ = function (a, b, c, d) {
  7885. jspb.asserts.assertInstanceof(a, jspb.Message);
  7886. c !== d ? jspb.Message.setField(a, b, c) : b < a.pivot_ ? a.array[jspb.Message.getIndex_(a, b)] = null : (jspb.Message.maybeInitEmptyExtensionObject_(a), delete a.extensionObject_[b]);
  7887. return a;
  7888. };
  7889. jspb.Message.addToRepeatedField = function (a, b, c, d) {
  7890. jspb.asserts.assertInstanceof(a, jspb.Message);
  7891. b = jspb.Message.getRepeatedField(a, b);
  7892. void 0 != d ? b.splice(d, 0, c) : b.push(c);
  7893. return a;
  7894. };
  7895. goog.exportProperty(jspb.Message, "addToRepeatedField", jspb.Message.addToRepeatedField);
  7896. jspb.Message.setOneofField = function (a, b, c, d) {
  7897. jspb.asserts.assertInstanceof(a, jspb.Message);
  7898. (c = jspb.Message.computeOneofCase(a, c)) && c !== b && void 0 !== d && (a.wrappers_ && c in a.wrappers_ && (a.wrappers_[c] = void 0), jspb.Message.setField(a, c, void 0));
  7899. return jspb.Message.setField(a, b, d);
  7900. };
  7901. goog.exportProperty(jspb.Message, "setOneofField", jspb.Message.setOneofField);
  7902. jspb.Message.computeOneofCase = function (a, b) {
  7903. for (var c, d, e = 0; e < b.length; e++) {
  7904. var f = b[e],
  7905. g = jspb.Message.getField(a, f);
  7906. null != g && (c = f, d = g, jspb.Message.setField(a, f, void 0));
  7907. }
  7908. return c ? (jspb.Message.setField(a, c, d), c) : 0;
  7909. };
  7910. goog.exportProperty(jspb.Message, "computeOneofCase", jspb.Message.computeOneofCase);
  7911. jspb.Message.getWrapperField = function (a, b, c, d) {
  7912. a.wrappers_ || (a.wrappers_ = {});
  7913. if (!a.wrappers_[c]) {
  7914. var e = jspb.Message.getField(a, c);
  7915. if (d || e) a.wrappers_[c] = new b(e);
  7916. }
  7917. return a.wrappers_[c];
  7918. };
  7919. goog.exportProperty(jspb.Message, "getWrapperField", jspb.Message.getWrapperField);
  7920. jspb.Message.getRepeatedWrapperField = function (a, b, c) {
  7921. jspb.Message.wrapRepeatedField_(a, b, c);
  7922. b = a.wrappers_[c];
  7923. b == jspb.Message.EMPTY_LIST_SENTINEL_ && (b = a.wrappers_[c] = []);
  7924. return b;
  7925. };
  7926. goog.exportProperty(jspb.Message, "getRepeatedWrapperField", jspb.Message.getRepeatedWrapperField);
  7927. jspb.Message.wrapRepeatedField_ = function (a, b, c) {
  7928. a.wrappers_ || (a.wrappers_ = {});
  7929. if (!a.wrappers_[c]) {
  7930. for (var d = jspb.Message.getRepeatedField(a, c), e = [], f = 0; f < d.length; f++) {
  7931. e[f] = new b(d[f]);
  7932. }
  7933. a.wrappers_[c] = e;
  7934. }
  7935. };
  7936. jspb.Message.setWrapperField = function (a, b, c) {
  7937. jspb.asserts.assertInstanceof(a, jspb.Message);
  7938. a.wrappers_ || (a.wrappers_ = {});
  7939. var d = c ? c.toArray() : c;
  7940. a.wrappers_[b] = c;
  7941. return jspb.Message.setField(a, b, d);
  7942. };
  7943. goog.exportProperty(jspb.Message, "setWrapperField", jspb.Message.setWrapperField);
  7944. jspb.Message.setOneofWrapperField = function (a, b, c, d) {
  7945. jspb.asserts.assertInstanceof(a, jspb.Message);
  7946. a.wrappers_ || (a.wrappers_ = {});
  7947. var e = d ? d.toArray() : d;
  7948. a.wrappers_[b] = d;
  7949. return jspb.Message.setOneofField(a, b, c, e);
  7950. };
  7951. goog.exportProperty(jspb.Message, "setOneofWrapperField", jspb.Message.setOneofWrapperField);
  7952. jspb.Message.setRepeatedWrapperField = function (a, b, c) {
  7953. jspb.asserts.assertInstanceof(a, jspb.Message);
  7954. a.wrappers_ || (a.wrappers_ = {});
  7955. c = c || [];
  7956. for (var d = [], e = 0; e < c.length; e++) {
  7957. d[e] = c[e].toArray();
  7958. }
  7959. a.wrappers_[b] = c;
  7960. return jspb.Message.setField(a, b, d);
  7961. };
  7962. goog.exportProperty(jspb.Message, "setRepeatedWrapperField", jspb.Message.setRepeatedWrapperField);
  7963. jspb.Message.addToRepeatedWrapperField = function (a, b, c, d, e) {
  7964. jspb.Message.wrapRepeatedField_(a, d, b);
  7965. var f = a.wrappers_[b];
  7966. f || (f = a.wrappers_[b] = []);
  7967. c = c ? c : new d();
  7968. a = jspb.Message.getRepeatedField(a, b);
  7969. void 0 != e ? (f.splice(e, 0, c), a.splice(e, 0, c.toArray())) : (f.push(c), a.push(c.toArray()));
  7970. return c;
  7971. };
  7972. goog.exportProperty(jspb.Message, "addToRepeatedWrapperField", jspb.Message.addToRepeatedWrapperField);
  7973. jspb.Message.toMap = function (a, b, c, d) {
  7974. for (var e = {}, f = 0; f < a.length; f++) {
  7975. e[b.call(a[f])] = c ? c.call(a[f], d, a[f]) : a[f];
  7976. }
  7977. return e;
  7978. };
  7979. goog.exportProperty(jspb.Message, "toMap", jspb.Message.toMap);
  7980. jspb.Message.prototype.syncMapFields_ = function () {
  7981. if (this.wrappers_) for (var a in this.wrappers_) {
  7982. var b = this.wrappers_[a];
  7983. if (Array.isArray(b)) for (var c = 0; c < b.length; c++) {
  7984. b[c] && b[c].toArray();
  7985. } else b && b.toArray();
  7986. }
  7987. };
  7988. jspb.Message.prototype.toArray = function () {
  7989. this.syncMapFields_();
  7990. return this.array;
  7991. };
  7992. goog.exportProperty(jspb.Message.prototype, "toArray", jspb.Message.prototype.toArray);
  7993. jspb.Message.GENERATE_TO_STRING && (jspb.Message.prototype.toString = function () {
  7994. this.syncMapFields_();
  7995. return this.array.toString();
  7996. });
  7997. jspb.Message.prototype.getExtension = function (a) {
  7998. if (this.extensionObject_) {
  7999. this.wrappers_ || (this.wrappers_ = {});
  8000. var b = a.fieldIndex;
  8001. if (a.isRepeated) {
  8002. if (a.isMessageType()) return this.wrappers_[b] || (this.wrappers_[b] = goog.array.map(this.extensionObject_[b] || [], function (b) {
  8003. return new a.ctor(b);
  8004. })), this.wrappers_[b];
  8005. } else if (a.isMessageType()) return !this.wrappers_[b] && this.extensionObject_[b] && (this.wrappers_[b] = new a.ctor(this.extensionObject_[b])), this.wrappers_[b];
  8006. return this.extensionObject_[b];
  8007. }
  8008. };
  8009. goog.exportProperty(jspb.Message.prototype, "getExtension", jspb.Message.prototype.getExtension);
  8010. jspb.Message.prototype.setExtension = function (a, b) {
  8011. this.wrappers_ || (this.wrappers_ = {});
  8012. jspb.Message.maybeInitEmptyExtensionObject_(this);
  8013. var c = a.fieldIndex;
  8014. a.isRepeated ? (b = b || [], a.isMessageType() ? (this.wrappers_[c] = b, this.extensionObject_[c] = goog.array.map(b, function (a) {
  8015. return a.toArray();
  8016. })) : this.extensionObject_[c] = b) : a.isMessageType() ? (this.wrappers_[c] = b, this.extensionObject_[c] = b ? b.toArray() : b) : this.extensionObject_[c] = b;
  8017. return this;
  8018. };
  8019. goog.exportProperty(jspb.Message.prototype, "setExtension", jspb.Message.prototype.setExtension);
  8020. jspb.Message.difference = function (a, b) {
  8021. if (!(a instanceof b.constructor)) throw Error("Messages have different types.");
  8022. var c = a.toArray();
  8023. b = b.toArray();
  8024. var d = [],
  8025. e = 0,
  8026. f = c.length > b.length ? c.length : b.length;
  8027. a.getJsPbMessageId() && (d[0] = a.getJsPbMessageId(), e = 1);
  8028. for (; e < f; e++) {
  8029. jspb.Message.compareFields(c[e], b[e]) || (d[e] = b[e]);
  8030. }
  8031. return new a.constructor(d);
  8032. };
  8033. goog.exportProperty(jspb.Message, "difference", jspb.Message.difference);
  8034. jspb.Message.equals = function (a, b) {
  8035. return a == b || !(!a || !b) && a instanceof b.constructor && jspb.Message.compareFields(a.toArray(), b.toArray());
  8036. };
  8037. goog.exportProperty(jspb.Message, "equals", jspb.Message.equals);
  8038. jspb.Message.compareExtensions = function (a, b) {
  8039. a = a || {};
  8040. b = b || {};
  8041. var c = {},
  8042. d;
  8043. for (d in a) {
  8044. c[d] = 0;
  8045. }
  8046. for (d in b) {
  8047. c[d] = 0;
  8048. }
  8049. for (d in c) {
  8050. if (!jspb.Message.compareFields(a[d], b[d])) return !1;
  8051. }
  8052. return !0;
  8053. };
  8054. goog.exportProperty(jspb.Message, "compareExtensions", jspb.Message.compareExtensions);
  8055. jspb.Message.compareFields = function (a, b) {
  8056. if (a == b) return !0;
  8057. if (!goog.isObject(a) || !goog.isObject(b)) return "number" === typeof a && isNaN(a) || "number" === typeof b && isNaN(b) ? String(a) == String(b) : !1;
  8058. if (a.constructor != b.constructor) return !1;
  8059. if (jspb.Message.SUPPORTS_UINT8ARRAY_ && a.constructor === Uint8Array) {
  8060. if (a.length != b.length) return !1;
  8061. for (var c = 0; c < a.length; c++) {
  8062. if (a[c] != b[c]) return !1;
  8063. }
  8064. return !0;
  8065. }
  8066. if (a.constructor === Array) {
  8067. var d = void 0,
  8068. e = void 0,
  8069. f = Math.max(a.length, b.length);
  8070. for (c = 0; c < f; c++) {
  8071. var g = a[c],
  8072. h = b[c];
  8073. g && g.constructor == Object && (jspb.asserts.assert(void 0 === d), jspb.asserts.assert(c === a.length - 1), d = g, g = void 0);
  8074. h && h.constructor == Object && (jspb.asserts.assert(void 0 === e), jspb.asserts.assert(c === b.length - 1), e = h, h = void 0);
  8075. if (!jspb.Message.compareFields(g, h)) return !1;
  8076. }
  8077. return d || e ? (d = d || {}, e = e || {}, jspb.Message.compareExtensions(d, e)) : !0;
  8078. }
  8079. if (a.constructor === Object) return jspb.Message.compareExtensions(a, b);
  8080. throw Error("Invalid type in JSPB array");
  8081. };
  8082. goog.exportProperty(jspb.Message, "compareFields", jspb.Message.compareFields);
  8083. jspb.Message.prototype.cloneMessage = function () {
  8084. return jspb.Message.cloneMessage(this);
  8085. };
  8086. goog.exportProperty(jspb.Message.prototype, "cloneMessage", jspb.Message.prototype.cloneMessage);
  8087. jspb.Message.prototype.clone = function () {
  8088. return jspb.Message.cloneMessage(this);
  8089. };
  8090. goog.exportProperty(jspb.Message.prototype, "clone", jspb.Message.prototype.clone);
  8091. jspb.Message.clone = function (a) {
  8092. return jspb.Message.cloneMessage(a);
  8093. };
  8094. goog.exportProperty(jspb.Message, "clone", jspb.Message.clone);
  8095. jspb.Message.cloneMessage = function (a) {
  8096. return new a.constructor(jspb.Message.clone_(a.toArray()));
  8097. };
  8098. jspb.Message.copyInto = function (a, b) {
  8099. jspb.asserts.assertInstanceof(a, jspb.Message);
  8100. jspb.asserts.assertInstanceof(b, jspb.Message);
  8101. jspb.asserts.assert(a.constructor == b.constructor, "Copy source and target message should have the same type.");
  8102. a = jspb.Message.clone(a);
  8103. for (var c = b.toArray(), d = a.toArray(), e = c.length = 0; e < d.length; e++) {
  8104. c[e] = d[e];
  8105. }
  8106. b.wrappers_ = a.wrappers_;
  8107. b.extensionObject_ = a.extensionObject_;
  8108. };
  8109. goog.exportProperty(jspb.Message, "copyInto", jspb.Message.copyInto);
  8110. jspb.Message.clone_ = function (a) {
  8111. if (Array.isArray(a)) {
  8112. for (var b = Array(a.length), c = 0; c < a.length; c++) {
  8113. var d = a[c];
  8114. null != d && (b[c] = "object" == _typeof(d) ? jspb.Message.clone_(jspb.asserts.assert(d)) : d);
  8115. }
  8116. return b;
  8117. }
  8118. if (jspb.Message.SUPPORTS_UINT8ARRAY_ && a instanceof Uint8Array) return new Uint8Array(a);
  8119. b = {};
  8120. for (c in a) {
  8121. d = a[c], null != d && (b[c] = "object" == _typeof(d) ? jspb.Message.clone_(jspb.asserts.assert(d)) : d);
  8122. }
  8123. return b;
  8124. };
  8125. jspb.Message.registerMessageType = function (a, b) {
  8126. b.messageId = a;
  8127. };
  8128. goog.exportProperty(jspb.Message, "registerMessageType", jspb.Message.registerMessageType);
  8129. jspb.Message.messageSetExtensions = {};
  8130. jspb.Message.messageSetExtensionsBinary = {};
  8131. jspb.Export = {};
  8132. "object" === ( false ? undefined : _typeof(exports)) && (exports.Map = jspb.Map, exports.Message = jspb.Message, exports.BinaryReader = jspb.BinaryReader, exports.BinaryWriter = jspb.BinaryWriter, exports.ExtensionFieldInfo = jspb.ExtensionFieldInfo, exports.ExtensionFieldBinaryInfo = jspb.ExtensionFieldBinaryInfo, exports.exportSymbol = goog.exportSymbol, exports.inherits = goog.inherits, exports.object = {
  8133. extend: goog.object.extend
  8134. }, exports.typeOf = goog.typeOf);
  8135. /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/webpack/buildin/global.js */ 35)))
  8136. /***/ }),
  8137. /* 35 */
  8138. /*!***********************************!*\
  8139. !*** (webpack)/buildin/global.js ***!
  8140. \***********************************/
  8141. /*! no static exports found */
  8142. /***/ (function(module, exports) {
  8143. var g;
  8144. // This works in non-strict mode
  8145. g = (function() {
  8146. return this;
  8147. })();
  8148. try {
  8149. // This works if eval is allowed (see CSP)
  8150. g = g || new Function("return this")();
  8151. } catch (e) {
  8152. // This works if the window reference is available
  8153. if (typeof window === "object") g = window;
  8154. }
  8155. // g can still be undefined, but nothing to do about it...
  8156. // We return undefined, instead of nothing here, so it's
  8157. // easier to handle this case. if(!global) { ...}
  8158. module.exports = g;
  8159. /***/ }),
  8160. /* 36 */
  8161. /*!**********************************************************!*\
  8162. !*** D:/Work2/Orienteering/TrackOffical/grpc/base_pb.js ***!
  8163. \**********************************************************/
  8164. /*! no static exports found */
  8165. /***/ (function(module, exports, __webpack_require__) {
  8166. eval("// source: base.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = __webpack_require__(/*! google-protobuf */ 34);\nvar goog = jspb;\nvar global = function () {\n return this || window || global || self || Function('return this')();\n}.call(null);\nvar google_protobuf_timestamp_pb = __webpack_require__(/*! google-protobuf/google/protobuf/timestamp_pb.js */ 37);\ngoog.object.extend(proto, google_protobuf_timestamp_pb);\ngoog.exportSymbol('proto.base.v1.CType', null, global);\ngoog.exportSymbol('proto.base.v1.ControlInfoList', null, global);\ngoog.exportSymbol('proto.base.v1.ControlPoint', null, global);\ngoog.exportSymbol('proto.base.v1.ControlPointInfo', null, global);\ngoog.exportSymbol('proto.base.v1.ControlPointSimple', null, global);\ngoog.exportSymbol('proto.base.v1.CriterionType', null, global);\ngoog.exportSymbol('proto.base.v1.DefaultReply', null, global);\ngoog.exportSymbol('proto.base.v1.DefaultRequest', null, global);\ngoog.exportSymbol('proto.base.v1.ErrorCode', null, global);\ngoog.exportSymbol('proto.base.v1.GameGpsInfo', null, global);\ngoog.exportSymbol('proto.base.v1.IdRequest', null, global);\ngoog.exportSymbol('proto.base.v1.Image', null, global);\ngoog.exportSymbol('proto.base.v1.LoginSource', null, global);\ngoog.exportSymbol('proto.base.v1.MapRoute', null, global);\ngoog.exportSymbol('proto.base.v1.NetImage', null, global);\ngoog.exportSymbol('proto.base.v1.Position', null, global);\ngoog.exportSymbol('proto.base.v1.ProjectContentType', null, global);\ngoog.exportSymbol('proto.base.v1.Region', null, global);\ngoog.exportSymbol('proto.base.v1.ShopList', null, global);\ngoog.exportSymbol('proto.base.v1.ShopType', null, global);\ngoog.exportSymbol('proto.base.v1.SignInReply', null, global);\ngoog.exportSymbol('proto.base.v1.SmsType', null, global);\ngoog.exportSymbol('proto.base.v1.StatusEditRequest', null, global);\ngoog.exportSymbol('proto.base.v1.StatusType', null, global);\ngoog.exportSymbol('proto.base.v1.User', null, global);\ngoog.exportSymbol('proto.base.v1.User.Sex', null, global);\ngoog.exportSymbol('proto.base.v1.UserType', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.NetImage = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.NetImage, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.NetImage.displayName = 'proto.base.v1.NetImage';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.User = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.User, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.User.displayName = 'proto.base.v1.User';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.GameGpsInfo = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.GameGpsInfo, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.GameGpsInfo.displayName = 'proto.base.v1.GameGpsInfo';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.SignInReply = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.SignInReply, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.SignInReply.displayName = 'proto.base.v1.SignInReply';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.MapRoute = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.MapRoute, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.MapRoute.displayName = 'proto.base.v1.MapRoute';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.Region = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.Region, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.Region.displayName = 'proto.base.v1.Region';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.ShopList = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.ShopList, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.ShopList.displayName = 'proto.base.v1.ShopList';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.ControlInfoList = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.ControlInfoList, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.ControlInfoList.displayName = 'proto.base.v1.ControlInfoList';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.DefaultReply = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.DefaultReply, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.DefaultReply.displayName = 'proto.base.v1.DefaultReply';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.IdRequest = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.IdRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.IdRequest.displayName = 'proto.base.v1.IdRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.DefaultRequest = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.DefaultRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.DefaultRequest.displayName = 'proto.base.v1.DefaultRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.Position = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.Position, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.Position.displayName = 'proto.base.v1.Position';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.ControlPointInfo = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.ControlPointInfo, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.ControlPointInfo.displayName = 'proto.base.v1.ControlPointInfo';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.Image = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.Image, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.Image.displayName = 'proto.base.v1.Image';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.StatusEditRequest = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.base.v1.StatusEditRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.StatusEditRequest.displayName = 'proto.base.v1.StatusEditRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.ControlPoint = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.base.v1.ControlPoint.repeatedFields_, null);\n};\ngoog.inherits(proto.base.v1.ControlPoint, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.ControlPoint.displayName = 'proto.base.v1.ControlPoint';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.base.v1.ControlPointSimple = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.base.v1.ControlPointSimple.repeatedFields_, null);\n};\ngoog.inherits(proto.base.v1.ControlPointSimple, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.base.v1.ControlPointSimple.displayName = 'proto.base.v1.ControlPointSimple';\n}\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.NetImage.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.NetImage.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.NetImage} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.NetImage.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n url: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n md5: msg.getMd5_asB64()\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.NetImage}\n */\nproto.base.v1.NetImage.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.NetImage();\n return proto.base.v1.NetImage.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.NetImage} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.NetImage}\n */\nproto.base.v1.NetImage.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */reader.readString();\n msg.setUrl(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */reader.readBytes();\n msg.setMd5(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.NetImage.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.NetImage.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.NetImage} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.NetImage.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getUrl();\n if (f.length > 0) {\n writer.writeString(1, f);\n }\n f = message.getMd5_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n};\n\n/**\n * optional string url = 1;\n * @return {string}\n */\nproto.base.v1.NetImage.prototype.getUrl = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 1, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.base.v1.NetImage} returns this\n */\nproto.base.v1.NetImage.prototype.setUrl = function (value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n/**\n * optional bytes md5 = 2;\n * @return {string}\n */\nproto.base.v1.NetImage.prototype.getMd5 = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 2, \"\")\n );\n};\n\n/**\n * optional bytes md5 = 2;\n * This is a type-conversion wrapper around `getMd5()`\n * @return {string}\n */\nproto.base.v1.NetImage.prototype.getMd5_asB64 = function () {\n return (/** @type {string} */jspb.Message.bytesAsB64(this.getMd5())\n );\n};\n\n/**\n * optional bytes md5 = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getMd5()`\n * @return {!Uint8Array}\n */\nproto.base.v1.NetImage.prototype.getMd5_asU8 = function () {\n return (/** @type {!Uint8Array} */jspb.Message.bytesAsU8(this.getMd5())\n );\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!proto.base.v1.NetImage} returns this\n */\nproto.base.v1.NetImage.prototype.setMd5 = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.User.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.User.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.User} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.User.toObject = function (includeInstance, msg) {\n var f,\n obj = {};\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.User}\n */\nproto.base.v1.User.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.User();\n return proto.base.v1.User.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.User} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.User}\n */\nproto.base.v1.User.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.User.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.User.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.User} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.User.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n};\n\n/**\n * @enum {number}\n */\nproto.base.v1.User.Sex = {\n UNDEFINE: 0,\n MALE: 1,\n FEMALE: 2\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.GameGpsInfo.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.GameGpsInfo.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.GameGpsInfo} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.GameGpsInfo.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n uptime: (f = msg.getUptime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n longitude: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0.0),\n latitude: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0.0),\n directionradian: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0.0)\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.GameGpsInfo}\n */\nproto.base.v1.GameGpsInfo.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.GameGpsInfo();\n return proto.base.v1.GameGpsInfo.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.GameGpsInfo} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.GameGpsInfo}\n */\nproto.base.v1.GameGpsInfo.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new google_protobuf_timestamp_pb.Timestamp();\n reader.readMessage(value, google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setUptime(value);\n break;\n case 2:\n var value = /** @type {number} */reader.readDouble();\n msg.setLongitude(value);\n break;\n case 3:\n var value = /** @type {number} */reader.readDouble();\n msg.setLatitude(value);\n break;\n case 4:\n var value = /** @type {number} */reader.readDouble();\n msg.setDirectionradian(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.GameGpsInfo.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.GameGpsInfo.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.GameGpsInfo} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.GameGpsInfo.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getUptime();\n if (f != null) {\n writer.writeMessage(1, f, google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter);\n }\n f = message.getLongitude();\n if (f !== 0.0) {\n writer.writeDouble(2, f);\n }\n f = message.getLatitude();\n if (f !== 0.0) {\n writer.writeDouble(3, f);\n }\n f = message.getDirectionradian();\n if (f !== 0.0) {\n writer.writeDouble(4, f);\n }\n};\n\n/**\n * optional google.protobuf.Timestamp upTime = 1;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.base.v1.GameGpsInfo.prototype.getUptime = function () {\n return (/** @type{?proto.google.protobuf.Timestamp} */\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 1)\n );\n};\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.base.v1.GameGpsInfo} returns this\n*/\nproto.base.v1.GameGpsInfo.prototype.setUptime = function (value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.base.v1.GameGpsInfo} returns this\n */\nproto.base.v1.GameGpsInfo.prototype.clearUptime = function () {\n return this.setUptime(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.base.v1.GameGpsInfo.prototype.hasUptime = function () {\n return jspb.Message.getField(this, 1) != null;\n};\n\n/**\n * optional double longitude = 2;\n * @return {number}\n */\nproto.base.v1.GameGpsInfo.prototype.getLongitude = function () {\n return (/** @type {number} */jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0.0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.GameGpsInfo} returns this\n */\nproto.base.v1.GameGpsInfo.prototype.setLongitude = function (value) {\n return jspb.Message.setProto3FloatField(this, 2, value);\n};\n\n/**\n * optional double latitude = 3;\n * @return {number}\n */\nproto.base.v1.GameGpsInfo.prototype.getLatitude = function () {\n return (/** @type {number} */jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0.0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.GameGpsInfo} returns this\n */\nproto.base.v1.GameGpsInfo.prototype.setLatitude = function (value) {\n return jspb.Message.setProto3FloatField(this, 3, value);\n};\n\n/**\n * optional double directionRadian = 4;\n * @return {number}\n */\nproto.base.v1.GameGpsInfo.prototype.getDirectionradian = function () {\n return (/** @type {number} */jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0.0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.GameGpsInfo} returns this\n */\nproto.base.v1.GameGpsInfo.prototype.setDirectionradian = function (value) {\n return jspb.Message.setProto3FloatField(this, 4, value);\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.SignInReply.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.SignInReply.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.SignInReply} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.SignInReply.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n token: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.SignInReply}\n */\nproto.base.v1.SignInReply.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.SignInReply();\n return proto.base.v1.SignInReply.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.SignInReply} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.SignInReply}\n */\nproto.base.v1.SignInReply.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */reader.readString();\n msg.setToken(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.SignInReply.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.SignInReply.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.SignInReply} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.SignInReply.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getToken();\n if (f.length > 0) {\n writer.writeString(1, f);\n }\n};\n\n/**\n * optional string token = 1;\n * @return {string}\n */\nproto.base.v1.SignInReply.prototype.getToken = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 1, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.base.v1.SignInReply} returns this\n */\nproto.base.v1.SignInReply.prototype.setToken = function (value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.MapRoute.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.MapRoute.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.MapRoute} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.MapRoute.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n id: jspb.Message.getFieldWithDefault(msg, 1, 0),\n name: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n image: (f = msg.getImage()) && proto.base.v1.NetImage.toObject(includeInstance, f)\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.MapRoute}\n */\nproto.base.v1.MapRoute.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.MapRoute();\n return proto.base.v1.MapRoute.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.MapRoute} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.MapRoute}\n */\nproto.base.v1.MapRoute.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readInt64();\n msg.setId(value);\n break;\n case 2:\n var value = /** @type {string} */reader.readString();\n msg.setName(value);\n break;\n case 3:\n var value = new proto.base.v1.NetImage();\n reader.readMessage(value, proto.base.v1.NetImage.deserializeBinaryFromReader);\n msg.setImage(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.MapRoute.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.MapRoute.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.MapRoute} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.MapRoute.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getId();\n if (f !== 0) {\n writer.writeInt64(1, f);\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(2, f);\n }\n f = message.getImage();\n if (f != null) {\n writer.writeMessage(3, f, proto.base.v1.NetImage.serializeBinaryToWriter);\n }\n};\n\n/**\n * optional int64 id = 1;\n * @return {number}\n */\nproto.base.v1.MapRoute.prototype.getId = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.MapRoute} returns this\n */\nproto.base.v1.MapRoute.prototype.setId = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional string name = 2;\n * @return {string}\n */\nproto.base.v1.MapRoute.prototype.getName = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 2, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.base.v1.MapRoute} returns this\n */\nproto.base.v1.MapRoute.prototype.setName = function (value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n/**\n * optional NetImage image = 3;\n * @return {?proto.base.v1.NetImage}\n */\nproto.base.v1.MapRoute.prototype.getImage = function () {\n return (/** @type{?proto.base.v1.NetImage} */\n jspb.Message.getWrapperField(this, proto.base.v1.NetImage, 3)\n );\n};\n\n/**\n * @param {?proto.base.v1.NetImage|undefined} value\n * @return {!proto.base.v1.MapRoute} returns this\n*/\nproto.base.v1.MapRoute.prototype.setImage = function (value) {\n return jspb.Message.setWrapperField(this, 3, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.base.v1.MapRoute} returns this\n */\nproto.base.v1.MapRoute.prototype.clearImage = function () {\n return this.setImage(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.base.v1.MapRoute.prototype.hasImage = function () {\n return jspb.Message.getField(this, 3) != null;\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.Region.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.Region.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.Region} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.Region.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n code: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n name: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.Region}\n */\nproto.base.v1.Region.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.Region();\n return proto.base.v1.Region.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.Region} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.Region}\n */\nproto.base.v1.Region.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */reader.readString();\n msg.setCode(value);\n break;\n case 2:\n var value = /** @type {string} */reader.readString();\n msg.setName(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.Region.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.Region.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.Region} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.Region.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getCode();\n if (f.length > 0) {\n writer.writeString(1, f);\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(2, f);\n }\n};\n\n/**\n * optional string code = 1;\n * @return {string}\n */\nproto.base.v1.Region.prototype.getCode = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 1, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.base.v1.Region} returns this\n */\nproto.base.v1.Region.prototype.setCode = function (value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n/**\n * optional string name = 2;\n * @return {string}\n */\nproto.base.v1.Region.prototype.getName = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 2, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.base.v1.Region} returns this\n */\nproto.base.v1.Region.prototype.setName = function (value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.ShopList.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.ShopList.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.ShopList} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.ShopList.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n shopid: jspb.Message.getFieldWithDefault(msg, 1, 0),\n name: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.ShopList}\n */\nproto.base.v1.ShopList.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.ShopList();\n return proto.base.v1.ShopList.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.ShopList} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.ShopList}\n */\nproto.base.v1.ShopList.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readInt32();\n msg.setShopid(value);\n break;\n case 2:\n var value = /** @type {string} */reader.readString();\n msg.setName(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.ShopList.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.ShopList.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.ShopList} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.ShopList.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getShopid();\n if (f !== 0) {\n writer.writeInt32(1, f);\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(2, f);\n }\n};\n\n/**\n * optional int32 shopId = 1;\n * @return {number}\n */\nproto.base.v1.ShopList.prototype.getShopid = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.ShopList} returns this\n */\nproto.base.v1.ShopList.prototype.setShopid = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional string name = 2;\n * @return {string}\n */\nproto.base.v1.ShopList.prototype.getName = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 2, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.base.v1.ShopList} returns this\n */\nproto.base.v1.ShopList.prototype.setName = function (value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.ControlInfoList.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.ControlInfoList.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.ControlInfoList} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.ControlInfoList.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ciid: jspb.Message.getFieldWithDefault(msg, 1, 0),\n cicode: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.ControlInfoList}\n */\nproto.base.v1.ControlInfoList.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.ControlInfoList();\n return proto.base.v1.ControlInfoList.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.ControlInfoList} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.ControlInfoList}\n */\nproto.base.v1.ControlInfoList.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readInt32();\n msg.setCiid(value);\n break;\n case 2:\n var value = /** @type {string} */reader.readString();\n msg.setCicode(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.ControlInfoList.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.ControlInfoList.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.ControlInfoList} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.ControlInfoList.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getCiid();\n if (f !== 0) {\n writer.writeInt32(1, f);\n }\n f = message.getCicode();\n if (f.length > 0) {\n writer.writeString(2, f);\n }\n};\n\n/**\n * optional int32 ciId = 1;\n * @return {number}\n */\nproto.base.v1.ControlInfoList.prototype.getCiid = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.ControlInfoList} returns this\n */\nproto.base.v1.ControlInfoList.prototype.setCiid = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional string ciCode = 2;\n * @return {string}\n */\nproto.base.v1.ControlInfoList.prototype.getCicode = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 2, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.base.v1.ControlInfoList} returns this\n */\nproto.base.v1.ControlInfoList.prototype.setCicode = function (value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.DefaultReply.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.DefaultReply.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.DefaultReply} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.DefaultReply.toObject = function (includeInstance, msg) {\n var f,\n obj = {};\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.DefaultReply}\n */\nproto.base.v1.DefaultReply.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.DefaultReply();\n return proto.base.v1.DefaultReply.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.DefaultReply} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.DefaultReply}\n */\nproto.base.v1.DefaultReply.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.DefaultReply.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.DefaultReply.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.DefaultReply} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.DefaultReply.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.IdRequest.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.IdRequest.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.IdRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.IdRequest.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n id: jspb.Message.getFieldWithDefault(msg, 1, 0)\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.IdRequest}\n */\nproto.base.v1.IdRequest.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.IdRequest();\n return proto.base.v1.IdRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.IdRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.IdRequest}\n */\nproto.base.v1.IdRequest.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readInt64();\n msg.setId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.IdRequest.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.IdRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.IdRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.IdRequest.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getId();\n if (f !== 0) {\n writer.writeInt64(1, f);\n }\n};\n\n/**\n * optional int64 id = 1;\n * @return {number}\n */\nproto.base.v1.IdRequest.prototype.getId = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.IdRequest} returns this\n */\nproto.base.v1.IdRequest.prototype.setId = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.DefaultRequest.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.DefaultRequest.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.DefaultRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.DefaultRequest.toObject = function (includeInstance, msg) {\n var f,\n obj = {};\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.DefaultRequest}\n */\nproto.base.v1.DefaultRequest.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.DefaultRequest();\n return proto.base.v1.DefaultRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.DefaultRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.DefaultRequest}\n */\nproto.base.v1.DefaultRequest.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.DefaultRequest.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.DefaultRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.DefaultRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.DefaultRequest.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.Position.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.Position.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.Position} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.Position.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n longitude: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0.0),\n latitude: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0.0)\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.Position}\n */\nproto.base.v1.Position.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.Position();\n return proto.base.v1.Position.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.Position} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.Position}\n */\nproto.base.v1.Position.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readDouble();\n msg.setLongitude(value);\n break;\n case 2:\n var value = /** @type {number} */reader.readDouble();\n msg.setLatitude(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.Position.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.Position.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.Position} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.Position.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getLongitude();\n if (f !== 0.0) {\n writer.writeDouble(1, f);\n }\n f = message.getLatitude();\n if (f !== 0.0) {\n writer.writeDouble(2, f);\n }\n};\n\n/**\n * optional double longitude = 1;\n * @return {number}\n */\nproto.base.v1.Position.prototype.getLongitude = function () {\n return (/** @type {number} */jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0.0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.Position} returns this\n */\nproto.base.v1.Position.prototype.setLongitude = function (value) {\n return jspb.Message.setProto3FloatField(this, 1, value);\n};\n\n/**\n * optional double latitude = 2;\n * @return {number}\n */\nproto.base.v1.Position.prototype.getLatitude = function () {\n return (/** @type {number} */jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0.0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.Position} returns this\n */\nproto.base.v1.Position.prototype.setLatitude = function (value) {\n return jspb.Message.setProto3FloatField(this, 2, value);\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.ControlPointInfo.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.ControlPointInfo.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.ControlPointInfo} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.ControlPointInfo.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n image: (f = msg.getImage()) && proto.base.v1.NetImage.toObject(includeInstance, f),\n content: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.ControlPointInfo}\n */\nproto.base.v1.ControlPointInfo.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.ControlPointInfo();\n return proto.base.v1.ControlPointInfo.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.ControlPointInfo} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.ControlPointInfo}\n */\nproto.base.v1.ControlPointInfo.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.base.v1.NetImage();\n reader.readMessage(value, proto.base.v1.NetImage.deserializeBinaryFromReader);\n msg.setImage(value);\n break;\n case 2:\n var value = /** @type {string} */reader.readString();\n msg.setContent(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.ControlPointInfo.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.ControlPointInfo.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.ControlPointInfo} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.ControlPointInfo.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getImage();\n if (f != null) {\n writer.writeMessage(1, f, proto.base.v1.NetImage.serializeBinaryToWriter);\n }\n f = message.getContent();\n if (f.length > 0) {\n writer.writeString(2, f);\n }\n};\n\n/**\n * optional NetImage image = 1;\n * @return {?proto.base.v1.NetImage}\n */\nproto.base.v1.ControlPointInfo.prototype.getImage = function () {\n return (/** @type{?proto.base.v1.NetImage} */\n jspb.Message.getWrapperField(this, proto.base.v1.NetImage, 1)\n );\n};\n\n/**\n * @param {?proto.base.v1.NetImage|undefined} value\n * @return {!proto.base.v1.ControlPointInfo} returns this\n*/\nproto.base.v1.ControlPointInfo.prototype.setImage = function (value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.base.v1.ControlPointInfo} returns this\n */\nproto.base.v1.ControlPointInfo.prototype.clearImage = function () {\n return this.setImage(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.base.v1.ControlPointInfo.prototype.hasImage = function () {\n return jspb.Message.getField(this, 1) != null;\n};\n\n/**\n * optional string content = 2;\n * @return {string}\n */\nproto.base.v1.ControlPointInfo.prototype.getContent = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 2, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.base.v1.ControlPointInfo} returns this\n */\nproto.base.v1.ControlPointInfo.prototype.setContent = function (value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.Image.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.Image.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.Image} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.Image.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ext: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n data: msg.getData_asB64()\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.Image}\n */\nproto.base.v1.Image.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.Image();\n return proto.base.v1.Image.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.Image} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.Image}\n */\nproto.base.v1.Image.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */reader.readString();\n msg.setExt(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */reader.readBytes();\n msg.setData(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.Image.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.Image.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.Image} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.Image.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getExt();\n if (f.length > 0) {\n writer.writeString(1, f);\n }\n f = message.getData_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n};\n\n/**\n * optional string ext = 1;\n * @return {string}\n */\nproto.base.v1.Image.prototype.getExt = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 1, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.base.v1.Image} returns this\n */\nproto.base.v1.Image.prototype.setExt = function (value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n/**\n * optional bytes data = 2;\n * @return {string}\n */\nproto.base.v1.Image.prototype.getData = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 2, \"\")\n );\n};\n\n/**\n * optional bytes data = 2;\n * This is a type-conversion wrapper around `getData()`\n * @return {string}\n */\nproto.base.v1.Image.prototype.getData_asB64 = function () {\n return (/** @type {string} */jspb.Message.bytesAsB64(this.getData())\n );\n};\n\n/**\n * optional bytes data = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getData()`\n * @return {!Uint8Array}\n */\nproto.base.v1.Image.prototype.getData_asU8 = function () {\n return (/** @type {!Uint8Array} */jspb.Message.bytesAsU8(this.getData())\n );\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!proto.base.v1.Image} returns this\n */\nproto.base.v1.Image.prototype.setData = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.StatusEditRequest.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.StatusEditRequest.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.StatusEditRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.StatusEditRequest.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n id: jspb.Message.getFieldWithDefault(msg, 1, 0),\n status: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.StatusEditRequest}\n */\nproto.base.v1.StatusEditRequest.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.StatusEditRequest();\n return proto.base.v1.StatusEditRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.StatusEditRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.StatusEditRequest}\n */\nproto.base.v1.StatusEditRequest.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readInt64();\n msg.setId(value);\n break;\n case 2:\n var value = /** @type {!proto.base.v1.StatusType} */reader.readEnum();\n msg.setStatus(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.StatusEditRequest.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.StatusEditRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.StatusEditRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.StatusEditRequest.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getId();\n if (f !== 0) {\n writer.writeInt64(1, f);\n }\n f = message.getStatus();\n if (f !== 0.0) {\n writer.writeEnum(2, f);\n }\n};\n\n/**\n * optional int64 id = 1;\n * @return {number}\n */\nproto.base.v1.StatusEditRequest.prototype.getId = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.StatusEditRequest} returns this\n */\nproto.base.v1.StatusEditRequest.prototype.setId = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional StatusType status = 2;\n * @return {!proto.base.v1.StatusType}\n */\nproto.base.v1.StatusEditRequest.prototype.getStatus = function () {\n return (/** @type {!proto.base.v1.StatusType} */jspb.Message.getFieldWithDefault(this, 2, 0)\n );\n};\n\n/**\n * @param {!proto.base.v1.StatusType} value\n * @return {!proto.base.v1.StatusEditRequest} returns this\n */\nproto.base.v1.StatusEditRequest.prototype.setStatus = function (value) {\n return jspb.Message.setProto3EnumField(this, 2, value);\n};\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.base.v1.ControlPoint.repeatedFields_ = [3];\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.ControlPoint.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.ControlPoint.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.ControlPoint} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.ControlPoint.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n id: jspb.Message.getFieldWithDefault(msg, 1, 0),\n info: (f = msg.getInfo()) && proto.base.v1.ControlPointInfo.toObject(includeInstance, f),\n nfcIdListList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f,\n onMapX: jspb.Message.getFieldWithDefault(msg, 4, 0),\n onMapY: jspb.Message.getFieldWithDefault(msg, 5, 0),\n sn: jspb.Message.getFieldWithDefault(msg, 6, \"\"),\n ciposition: (f = msg.getCiposition()) && proto.base.v1.Position.toObject(includeInstance, f)\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.ControlPoint}\n */\nproto.base.v1.ControlPoint.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.ControlPoint();\n return proto.base.v1.ControlPoint.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.ControlPoint} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.ControlPoint}\n */\nproto.base.v1.ControlPoint.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readInt64();\n msg.setId(value);\n break;\n case 2:\n var value = new proto.base.v1.ControlPointInfo();\n reader.readMessage(value, proto.base.v1.ControlPointInfo.deserializeBinaryFromReader);\n msg.setInfo(value);\n break;\n case 3:\n var value = /** @type {string} */reader.readString();\n msg.addNfcIdList(value);\n break;\n case 4:\n var value = /** @type {number} */reader.readInt64();\n msg.setOnMapX(value);\n break;\n case 5:\n var value = /** @type {number} */reader.readInt64();\n msg.setOnMapY(value);\n break;\n case 6:\n var value = /** @type {string} */reader.readString();\n msg.setSn(value);\n break;\n case 7:\n var value = new proto.base.v1.Position();\n reader.readMessage(value, proto.base.v1.Position.deserializeBinaryFromReader);\n msg.setCiposition(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.ControlPoint.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.ControlPoint.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.ControlPoint} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.ControlPoint.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getId();\n if (f !== 0) {\n writer.writeInt64(1, f);\n }\n f = message.getInfo();\n if (f != null) {\n writer.writeMessage(2, f, proto.base.v1.ControlPointInfo.serializeBinaryToWriter);\n }\n f = message.getNfcIdListList();\n if (f.length > 0) {\n writer.writeRepeatedString(3, f);\n }\n f = message.getOnMapX();\n if (f !== 0) {\n writer.writeInt64(4, f);\n }\n f = message.getOnMapY();\n if (f !== 0) {\n writer.writeInt64(5, f);\n }\n f = message.getSn();\n if (f.length > 0) {\n writer.writeString(6, f);\n }\n f = message.getCiposition();\n if (f != null) {\n writer.writeMessage(7, f, proto.base.v1.Position.serializeBinaryToWriter);\n }\n};\n\n/**\n * optional int64 id = 1;\n * @return {number}\n */\nproto.base.v1.ControlPoint.prototype.getId = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.ControlPoint} returns this\n */\nproto.base.v1.ControlPoint.prototype.setId = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional ControlPointInfo info = 2;\n * @return {?proto.base.v1.ControlPointInfo}\n */\nproto.base.v1.ControlPoint.prototype.getInfo = function () {\n return (/** @type{?proto.base.v1.ControlPointInfo} */\n jspb.Message.getWrapperField(this, proto.base.v1.ControlPointInfo, 2)\n );\n};\n\n/**\n * @param {?proto.base.v1.ControlPointInfo|undefined} value\n * @return {!proto.base.v1.ControlPoint} returns this\n*/\nproto.base.v1.ControlPoint.prototype.setInfo = function (value) {\n return jspb.Message.setWrapperField(this, 2, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.base.v1.ControlPoint} returns this\n */\nproto.base.v1.ControlPoint.prototype.clearInfo = function () {\n return this.setInfo(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.base.v1.ControlPoint.prototype.hasInfo = function () {\n return jspb.Message.getField(this, 2) != null;\n};\n\n/**\n * repeated string nfc_id_list = 3;\n * @return {!Array<string>}\n */\nproto.base.v1.ControlPoint.prototype.getNfcIdListList = function () {\n return (/** @type {!Array<string>} */jspb.Message.getRepeatedField(this, 3)\n );\n};\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.base.v1.ControlPoint} returns this\n */\nproto.base.v1.ControlPoint.prototype.setNfcIdListList = function (value) {\n return jspb.Message.setField(this, 3, value || []);\n};\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.base.v1.ControlPoint} returns this\n */\nproto.base.v1.ControlPoint.prototype.addNfcIdList = function (value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 3, value, opt_index);\n};\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.base.v1.ControlPoint} returns this\n */\nproto.base.v1.ControlPoint.prototype.clearNfcIdListList = function () {\n return this.setNfcIdListList([]);\n};\n\n/**\n * optional int64 on_map_x = 4;\n * @return {number}\n */\nproto.base.v1.ControlPoint.prototype.getOnMapX = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 4, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.ControlPoint} returns this\n */\nproto.base.v1.ControlPoint.prototype.setOnMapX = function (value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n/**\n * optional int64 on_map_y = 5;\n * @return {number}\n */\nproto.base.v1.ControlPoint.prototype.getOnMapY = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 5, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.ControlPoint} returns this\n */\nproto.base.v1.ControlPoint.prototype.setOnMapY = function (value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n/**\n * optional string sn = 6;\n * @return {string}\n */\nproto.base.v1.ControlPoint.prototype.getSn = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 6, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.base.v1.ControlPoint} returns this\n */\nproto.base.v1.ControlPoint.prototype.setSn = function (value) {\n return jspb.Message.setProto3StringField(this, 6, value);\n};\n\n/**\n * optional Position ciPosition = 7;\n * @return {?proto.base.v1.Position}\n */\nproto.base.v1.ControlPoint.prototype.getCiposition = function () {\n return (/** @type{?proto.base.v1.Position} */\n jspb.Message.getWrapperField(this, proto.base.v1.Position, 7)\n );\n};\n\n/**\n * @param {?proto.base.v1.Position|undefined} value\n * @return {!proto.base.v1.ControlPoint} returns this\n*/\nproto.base.v1.ControlPoint.prototype.setCiposition = function (value) {\n return jspb.Message.setWrapperField(this, 7, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.base.v1.ControlPoint} returns this\n */\nproto.base.v1.ControlPoint.prototype.clearCiposition = function () {\n return this.setCiposition(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.base.v1.ControlPoint.prototype.hasCiposition = function () {\n return jspb.Message.getField(this, 7) != null;\n};\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.base.v1.ControlPointSimple.repeatedFields_ = [2];\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n proto.base.v1.ControlPointSimple.prototype.toObject = function (opt_includeInstance) {\n return proto.base.v1.ControlPointSimple.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.base.v1.ControlPointSimple} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n proto.base.v1.ControlPointSimple.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n id: jspb.Message.getFieldWithDefault(msg, 1, 0),\n nfcIdListList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f,\n sn: jspb.Message.getFieldWithDefault(msg, 3, \"\")\n };\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.base.v1.ControlPointSimple}\n */\nproto.base.v1.ControlPointSimple.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.base.v1.ControlPointSimple();\n return proto.base.v1.ControlPointSimple.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.base.v1.ControlPointSimple} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.base.v1.ControlPointSimple}\n */\nproto.base.v1.ControlPointSimple.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */reader.readInt64();\n msg.setId(value);\n break;\n case 2:\n var value = /** @type {string} */reader.readString();\n msg.addNfcIdList(value);\n break;\n case 3:\n var value = /** @type {string} */reader.readString();\n msg.setSn(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.base.v1.ControlPointSimple.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n proto.base.v1.ControlPointSimple.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.base.v1.ControlPointSimple} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.base.v1.ControlPointSimple.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getId();\n if (f !== 0) {\n writer.writeInt64(1, f);\n }\n f = message.getNfcIdListList();\n if (f.length > 0) {\n writer.writeRepeatedString(2, f);\n }\n f = message.getSn();\n if (f.length > 0) {\n writer.writeString(3, f);\n }\n};\n\n/**\n * optional int64 id = 1;\n * @return {number}\n */\nproto.base.v1.ControlPointSimple.prototype.getId = function () {\n return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)\n );\n};\n\n/**\n * @param {number} value\n * @return {!proto.base.v1.ControlPointSimple} returns this\n */\nproto.base.v1.ControlPointSimple.prototype.setId = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * repeated string nfc_id_list = 2;\n * @return {!Array<string>}\n */\nproto.base.v1.ControlPointSimple.prototype.getNfcIdListList = function () {\n return (/** @type {!Array<string>} */jspb.Message.getRepeatedField(this, 2)\n );\n};\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.base.v1.ControlPointSimple} returns this\n */\nproto.base.v1.ControlPointSimple.prototype.setNfcIdListList = function (value) {\n return jspb.Message.setField(this, 2, value || []);\n};\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.base.v1.ControlPointSimple} returns this\n */\nproto.base.v1.ControlPointSimple.prototype.addNfcIdList = function (value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 2, value, opt_index);\n};\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.base.v1.ControlPointSimple} returns this\n */\nproto.base.v1.ControlPointSimple.prototype.clearNfcIdListList = function () {\n return this.setNfcIdListList([]);\n};\n\n/**\n * optional string sn = 3;\n * @return {string}\n */\nproto.base.v1.ControlPointSimple.prototype.getSn = function () {\n return (/** @type {string} */jspb.Message.getFieldWithDefault(this, 3, \"\")\n );\n};\n\n/**\n * @param {string} value\n * @return {!proto.base.v1.ControlPointSimple} returns this\n */\nproto.base.v1.ControlPointSimple.prototype.setSn = function (value) {\n return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n/**\n * @enum {number}\n */\nproto.base.v1.ErrorCode = {\n OK: 0,\n TOKENEXPIRE: 1000,\n USERBAN: 1001,\n VFCODEEXPIRE: 1002,\n SMSSENDFAIL: 1003,\n USERSTATUSERR: 1008,\n STATUSERR: 1009,\n PHONENOTEXIST: 2001,\n UNKNOWNERR: 2002,\n PARAMERR: 5000,\n HEADSOURCEERR: 5001,\n DATABASE: 9000,\n NORECORD: 9001\n};\n\n/**\n * @enum {number}\n */\nproto.base.v1.ShopType = {\n UNKNOWSHOP: 0,\n PARKSHOP: 1,\n IPSHOP: 2,\n ADMINSHOP: 3\n};\n\n/**\n * @enum {number}\n */\nproto.base.v1.UserType = {\n UNDEFINE: 0,\n APPUSER: 1,\n PARKADMIN: 2,\n IPADMIN: 3,\n SYSADMIN: 4\n};\n\n/**\n * @enum {number}\n */\nproto.base.v1.LoginSource = {\n UNDEF: 0,\n USERAPP: 1,\n WEBADMIN: 2,\n SHOPAPP: 3\n};\n\n/**\n * @enum {number}\n */\nproto.base.v1.SmsType = {\n UNKNOW: 0,\n LOGIN: 1,\n SIGNUP: 2\n};\n\n/**\n * @enum {number}\n */\nproto.base.v1.ProjectContentType = {\n TEXT: 0,\n HTML: 1\n};\n\n/**\n * @enum {number}\n */\nproto.base.v1.CriterionType = {\n CRUNKNOW: 0,\n CRORDER: 1,\n CRNUM: 2\n};\n\n/**\n * @enum {number}\n */\nproto.base.v1.CType = {\n UNKNOWTYPE: 0,\n BEGINTYPE: 1,\n MIDDLETYPE: 2,\n ENDTYPE: 3\n};\n\n/**\n * @enum {number}\n */\nproto.base.v1.StatusType = {\n UNKNOWSTATUS: 0,\n NORMALSTATUS: 1,\n DISABLEDSTATUS: 8,\n DELETESTATUS: 9\n};\ngoog.object.extend(exports, proto.base.v1);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vZ3JwYy9iYXNlX3BiLmpzIl0sIm5hbWVzIjpbImpzcGIiLCJyZXF1aXJlIiwiZ29vZyIsImdsb2JhbCIsIndpbmRvdyIsInNlbGYiLCJGdW5jdGlvbiIsImNhbGwiLCJnb29nbGVfcHJvdG9idWZfdGltZXN0YW1wX3BiIiwib2JqZWN0IiwiZXh0ZW5kIiwicHJvdG8iLCJleHBvcnRTeW1ib2wiLCJiYXNlIiwidjEiLCJOZXRJbWFnZSIsIm9wdF9kYXRhIiwiTWVzc2FnZSIsImluaXRpYWxpemUiLCJpbmhlcml0cyIsIkRFQlVHIiwiQ09NUElMRUQiLCJkaXNwbGF5TmFtZSIsIlVzZXIiLCJHYW1lR3BzSW5mbyIsIlNpZ25JblJlcGx5IiwiTWFwUm91dGUiLCJSZWdpb24iLCJTaG9wTGlzdCIsIkNvbnRyb2xJbmZvTGlzdCIsIkRlZmF1bHRSZXBseSIsIklkUmVxdWVzdCIsIkRlZmF1bHRSZXF1ZXN0IiwiUG9zaXRpb24iLCJDb250cm9sUG9pbnRJbmZvIiwiSW1hZ2UiLCJTdGF0dXNFZGl0UmVxdWVzdCIsIkNvbnRyb2xQb2ludCIsInJlcGVhdGVkRmllbGRzXyIsIkNvbnRyb2xQb2ludFNpbXBsZSIsIkdFTkVSQVRFX1RPX09CSkVDVCIsInByb3RvdHlwZSIsInRvT2JqZWN0Iiwib3B0X2luY2x1ZGVJbnN0YW5jZSIsImluY2x1ZGVJbnN0YW5jZSIsIm1zZyIsImYiLCJvYmoiLCJ1cmwiLCJnZXRGaWVsZFdpdGhEZWZhdWx0IiwibWQ1IiwiZ2V0TWQ1X2FzQjY0IiwiJGpzcGJNZXNzYWdlSW5zdGFuY2UiLCJkZXNlcmlhbGl6ZUJpbmFyeSIsImJ5dGVzIiwicmVhZGVyIiwiQmluYXJ5UmVhZGVyIiwiZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyIiwibmV4dEZpZWxkIiwiaXNFbmRHcm91cCIsImZpZWxkIiwiZ2V0RmllbGROdW1iZXIiLCJ2YWx1ZSIsInJlYWRTdHJpbmciLCJzZXRVcmwiLCJyZWFkQnl0ZXMiLCJzZXRNZDUiLCJza2lwRmllbGQiLCJzZXJpYWxpemVCaW5hcnkiLCJ3cml0ZXIiLCJCaW5hcnlXcml0ZXIiLCJzZXJpYWxpemVCaW5hcnlUb1dyaXRlciIsImdldFJlc3VsdEJ1ZmZlciIsIm1lc3NhZ2UiLCJ1bmRlZmluZWQiLCJnZXRVcmwiLCJsZW5ndGgiLCJ3cml0ZVN0cmluZyIsImdldE1kNV9hc1U4Iiwid3JpdGVCeXRlcyIsInNldFByb3RvM1N0cmluZ0ZpZWxkIiwiZ2V0TWQ1IiwiYnl0ZXNBc0I2NCIsImJ5dGVzQXNVOCIsInNldFByb3RvM0J5dGVzRmllbGQiLCJTZXgiLCJVTkRFRklORSIsIk1BTEUiLCJGRU1BTEUiLCJ1cHRpbWUiLCJnZXRVcHRpbWUiLCJUaW1lc3RhbXAiLCJsb25naXR1ZGUiLCJnZXRGbG9hdGluZ1BvaW50RmllbGRXaXRoRGVmYXVsdCIsImxhdGl0dWRlIiwiZGlyZWN0aW9ucmFkaWFuIiwicmVhZE1lc3NhZ2UiLCJzZXRVcHRpbWUiLCJyZWFkRG91YmxlIiwic2V0TG9uZ2l0dWRlIiwic2V0TGF0aXR1ZGUiLCJzZXREaXJlY3Rpb25yYWRpYW4iLCJ3cml0ZU1lc3NhZ2UiLCJnZXRMb25naXR1ZGUiLCJ3cml0ZURvdWJsZSIsImdldExhdGl0dWRlIiwiZ2V0RGlyZWN0aW9ucmFkaWFuIiwiZ2V0V3JhcHBlckZpZWxkIiwic2V0V3JhcHBlckZpZWxkIiwiY2xlYXJVcHRpbWUiLCJoYXNVcHRpbWUiLCJnZXRGaWVsZCIsInNldFByb3RvM0Zsb2F0RmllbGQiLCJ0b2tlbiIsInNldFRva2VuIiwiZ2V0VG9rZW4iLCJpZCIsIm5hbWUiLCJpbWFnZSIsImdldEltYWdlIiwicmVhZEludDY0Iiwic2V0SWQiLCJzZXROYW1lIiwic2V0SW1hZ2UiLCJnZXRJZCIsIndyaXRlSW50NjQiLCJnZXROYW1lIiwic2V0UHJvdG8zSW50RmllbGQiLCJjbGVhckltYWdlIiwiaGFzSW1hZ2UiLCJjb2RlIiwic2V0Q29kZSIsImdldENvZGUiLCJzaG9waWQiLCJyZWFkSW50MzIiLCJzZXRTaG9waWQiLCJnZXRTaG9waWQiLCJ3cml0ZUludDMyIiwiY2lpZCIsImNpY29kZSIsInNldENpaWQiLCJzZXRDaWNvZGUiLCJnZXRDaWlkIiwiZ2V0Q2ljb2RlIiwiY29udGVudCIsInNldENvbnRlbnQiLCJnZXRDb250ZW50IiwiZXh0IiwiZGF0YSIsImdldERhdGFfYXNCNjQiLCJzZXRFeHQiLCJzZXREYXRhIiwiZ2V0RXh0IiwiZ2V0RGF0YV9hc1U4IiwiZ2V0RGF0YSIsInN0YXR1cyIsInJlYWRFbnVtIiwic2V0U3RhdHVzIiwiZ2V0U3RhdHVzIiwid3JpdGVFbnVtIiwic2V0UHJvdG8zRW51bUZpZWxkIiwiaW5mbyIsImdldEluZm8iLCJuZmNJZExpc3RMaXN0IiwiZ2V0UmVwZWF0ZWRGaWVsZCIsIm9uTWFwWCIsIm9uTWFwWSIsInNuIiwiY2lwb3NpdGlvbiIsImdldENpcG9zaXRpb24iLCJzZXRJbmZvIiwiYWRkTmZjSWRMaXN0Iiwic2V0T25NYXBYIiwic2V0T25NYXBZIiwic2V0U24iLCJzZXRDaXBvc2l0aW9uIiwiZ2V0TmZjSWRMaXN0TGlzdCIsIndyaXRlUmVwZWF0ZWRTdHJpbmciLCJnZXRPbk1hcFgiLCJnZXRPbk1hcFkiLCJnZXRTbiIsImNsZWFySW5mbyIsImhhc0luZm8iLCJzZXROZmNJZExpc3RMaXN0Iiwic2V0RmllbGQiLCJvcHRfaW5kZXgiLCJhZGRUb1JlcGVhdGVkRmllbGQiLCJjbGVhck5mY0lkTGlzdExpc3QiLCJjbGVhckNpcG9zaXRpb24iLCJoYXNDaXBvc2l0aW9uIiwiRXJyb3JDb2RlIiwiT0siLCJUT0tFTkVYUElSRSIsIlVTRVJCQU4iLCJWRkNPREVFWFBJUkUiLCJTTVNTRU5ERkFJTCIsIlVTRVJTVEFUVVNFUlIiLCJTVEFUVVNFUlIiLCJQSE9ORU5PVEVYSVNUIiwiVU5LTk9XTkVSUiIsIlBBUkFNRVJSIiwiSEVBRFNPVVJDRUVSUiIsIkRBVEFCQVNFIiwiTk9SRUNPUkQiLCJTaG9wVHlwZSIsIlVOS05PV1NIT1AiLCJQQVJLU0hPUCIsIklQU0hPUCIsIkFETUlOU0hPUCIsIlVzZXJUeXBlIiwiQVBQVVNFUiIsIlBBUktBRE1JTiIsIklQQURNSU4iLCJTWVNBRE1JTiIsIkxvZ2luU291cmNlIiwiVU5ERUYiLCJVU0VSQVBQIiwiV0VCQURNSU4iLCJTSE9QQVBQIiwiU21zVHlwZSIsIlVOS05PVyIsIkxPR0lOIiwiU0lHTlVQIiwiUHJvamVjdENvbnRlbnRUeXBlIiwiVEVYVCIsIkhUTUwiLCJDcml0ZXJpb25UeXBlIiwiQ1JVTktOT1ciLCJDUk9SREVSIiwiQ1JOVU0iLCJDVHlwZSIsIlVOS05PV1RZUEUiLCJCRUdJTlRZUEUiLCJNSURETEVUWVBFIiwiRU5EVFlQRSIsIlN0YXR1c1R5cGUiLCJVTktOT1dTVEFUVVMiLCJOT1JNQUxTVEFUVVMiLCJESVNBQkxFRFNUQVRVUyIsIkRFTEVURVNUQVRVUyIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJQSxJQUFJLEdBQUdDLG1CQUFPLENBQUMseUJBQWlCLENBQUM7QUFDckMsSUFBSUMsSUFBSSxHQUFHRixJQUFJO0FBQ2YsSUFBSUcsTUFBTSxHQUFJLFlBQVc7RUFBRSxPQUFPLElBQUksSUFBSUMsTUFBTSxJQUFJRCxNQUFNLElBQUlFLElBQUksSUFBSUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFO0FBQUUsQ0FBQyxDQUFFQyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBRTlHLElBQUlDLDRCQUE0QixHQUFHUCxtQkFBTyxDQUFDLHlEQUFpRCxDQUFDO0FBQzdGQyxJQUFJLENBQUNPLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDQyxLQUFLLEVBQUVILDRCQUE0QixDQUFDO0FBQ3ZETixJQUFJLENBQUNVLFlBQVksQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLEVBQUVULE1BQU0sQ0FBQztBQUN0REQsSUFBSSxDQUFDVSxZQUFZLENBQUMsK0JBQStCLEVBQUUsSUFBSSxFQUFFVCxNQUFNLENBQUM7QUFDaEVELElBQUksQ0FB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LEVBQUUsQ0FBQyIsImZpbGUiOiIzNi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHNvdXJjZTogYmFzZS5wcm90b1xuLyoqXG4gKiBAZmlsZW92ZXJ2aWV3XG4gKiBAZW5oYW5jZWFibGVcbiAqIEBzdXBwcmVzcyB7bWlzc2luZ1JlcXVpcmV9IHJlcG9ydHMgZXJyb3Igb24gaW1wbGljaXQgdHlwZSB1c2FnZXMuXG4gKiBAc3VwcHJlc3Mge21lc3NhZ2VDb252ZW50aW9uc30gSlMgQ29tcGlsZXIgcmVwb3J0cyBhbiBlcnJvciBpZiBhIHZhcmlhYmxlIG9yXG4gKiAgICAgZmllbGQgc3RhcnRzIHdpdGggJ01TR18nIGFuZCBpc24ndCBhIHRyYW5zbGF0YWJsZSBtZXNzYWdlLlxuICogQHB1YmxpY1xuICovXG4vLyBHRU5FUkFURUQgQ09ERSAtLSBETyBOT1QgRURJVCFcbi8qIGVzbGludC1kaXNhYmxlICovXG4vLyBAdHMtbm9jaGVja1xuXG52YXIganNwYiA9IHJlcXVpcmUoJ2dvb2dsZS1wcm90b2J1ZicpO1xudmFyIGdvb2cgPSBqc3BiO1xudmFyIGdsb2JhbCA9IChmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXMgfHwgd2luZG93IHx8IGdsb2JhbCB8fCBzZWxmIHx8IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7IH0pLmNhbGwobnVsbCk7XG5cbnZhciBnb29nbGVfcHJvdG9idWZfdGltZXN0YW1wX3BiID0gcmVxdWlyZSgnZ29vZ2xlLXByb3RvYnVmL2dvb2dsZS9wcm90b2J1Zi90aW1lc3RhbXBfcGIuanMnKTtcbmdvb2cub2JqZWN0LmV4dGVuZChwcm90bywgZ29vZ2xlX3Byb3RvYnVmX3RpbWVzdGFtcF9wYik7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYmFzZS52MS5DVHlwZScsIG51bGwsIGdsb2JhbCk7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYmFzZS52MS5Db250cm9sSW5mb0xpc3QnLCBudWxsLCBnbG9iYWwpO1xuZ29vZy5leHBvcnRTeW1ib2woJ3Byb3RvLmJhc2UudjEuQ29udHJvbFBvaW50JywgbnVsbCwgZ2xvYmFsKTtcbmdvb2cuZXhwb3J0U3ltYm9sKCdwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm8nLCBudWxsLCBnbG9iYWwpO1xuZ29vZy5leHBvcnRTeW1ib2woJ3Byb3RvLmJhc2UudjEuQ29udHJvbFBvaW50U2ltcGxlJywgbnVsbCwgZ2xvYmFsKTtcbmdvb2cuZXhwb3J0U3ltYm9sKCdwcm90by5iYXNlLnYxLkNyaXRlcmlvblR5cGUnLCBudWxsLCBnbG9iYWwpO1xuZ29vZy5leHBvcnRTeW1ib2woJ3Byb3RvLmJhc2UudjEuRGVmYXVsdFJlcGx5JywgbnVsbCwgZ2xvYmFsKTtcbmdvb2cuZXhwb3J0U3ltYm9sKCdwcm90by5iYXNlLnYxLkRlZmF1bHRSZXF1ZXN0JywgbnVsbCwgZ2xvYmFsKTtcbmdvb2cuZXhwb3J0U3ltYm9sKCdwcm90by5iYXNlLnYxLkVycm9yQ29kZScsIG51bGwsIGdsb2JhbCk7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mbycsIG51bGwsIGdsb2JhbCk7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYmFzZS52MS5JZFJlcXVlc3QnLCBudWxsLCBnbG9iYWwpO1xuZ29vZy5leHBvcnRTeW1ib2woJ3Byb3RvLmJhc2UudjEuSW1hZ2UnLCBudWxsLCBnbG9iYWwpO1xuZ29vZy5leHBvcnRTeW1ib2woJ3Byb3RvLmJhc2UudjEuTG9naW5Tb3VyY2UnLCBudWxsLCBnbG9iYWwpO1xuZ29vZy5leHBvcnRTeW1ib2woJ3Byb3RvLmJhc2UudjEuTWFwUm91dGUnLCBudWxsLCBnbG9iYWwpO1xuZ29vZy5leHBvcnRTeW1ib2woJ3Byb3RvLmJhc2UudjEuTmV0SW1hZ2UnLCBudWxsLCBnbG9iYWwpO1xuZ29vZy5leHBvcnRTeW1ib2woJ3Byb3RvLmJhc2UudjEuUG9zaXRpb24nLCBudWxsLCBnbG9iYWwpO1xuZ29vZy5leHBvcnRTeW1ib2woJ3Byb3RvLmJhc2UudjEuUHJvamVjdENvbnRlbnRUeXBlJywgbnVsbCwgZ2xvYmFsKTtcbmdvb2cuZXhwb3J0U3ltYm9sKCdwcm90by5iYXNlLnYxLlJlZ2lvbicsIG51bGwsIGdsb2JhbCk7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYmFzZS52MS5TaG9wTGlzdCcsIG51bGwsIGdsb2JhbCk7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYmFzZS52MS5TaG9wVHlwZScsIG51bGwsIGdsb2JhbCk7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYmFzZS52MS5TaWduSW5SZXBseScsIG51bGwsIGdsb2JhbCk7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYmFzZS52MS5TbXNUeXBlJywgbnVsbCwgZ2xvYmFsKTtcbmdvb2cuZXhwb3J0U3ltYm9sKCdwcm90by5iYXNlLnYxLlN0YXR1c0VkaXRSZXF1ZXN0JywgbnVsbCwgZ2xvYmFsKTtcbmdvb2cuZXhwb3J0U3ltYm9sKCdwcm90by5iYXNlLnYxLlN0YXR1c1R5cGUnLCBudWxsLCBnbG9iYWwpO1xuZ29vZy5leHBvcnRTeW1ib2woJ3Byb3RvLmJhc2UudjEuVXNlcicsIG51bGwsIGdsb2JhbCk7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYmFzZS52MS5Vc2VyLlNleCcsIG51bGwsIGdsb2JhbCk7XG5nb29nLmV4cG9ydFN5bWJvbCgncHJvdG8uYmFzZS52MS5Vc2VyVHlwZScsIG51bGwsIGdsb2JhbCk7XG4vKipcbiAqIEdlbmVyYXRlZCBieSBKc1BiQ29kZUdlbmVyYXRvci5cbiAqIEBwYXJhbSB7QXJyYXk9fSBvcHRfZGF0YSBPcHRpb25hbCBpbml0aWFsIGRhdGEgYXJyYXksIHR5cGljYWxseSBmcm9tIGFcbiAqIHNlcnZlciByZXNwb25zZSwgb3IgY29uc3RydWN0ZWQgZGlyZWN0bHkgaW4gSmF2YXNjcmlwdC4gVGhlIGFycmF5IGlzIHVzZWRcbiAqIGluIHBsYWNlIGFuZCBiZWNvbWVzIHBhcnQgb2YgdGhlIGNvbnN0cnVjdGVkIG9iamVjdC4gSXQgaXMgbm90IGNsb25lZC5cbiAqIElmIG5vIGRhdGEgaXMgcHJvdmlkZWQsIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3Qgd2lsbCBiZSBlbXB0eSwgYnV0IHN0aWxsXG4gKiB2YWxpZC5cbiAqIEBleHRlbmRzIHtqc3BiLk1lc3NhZ2V9XG4gKiBAY29uc3RydWN0b3JcbiAqL1xucHJvdG8uYmFzZS52MS5OZXRJbWFnZSA9IGZ1bmN0aW9uKG9wdF9kYXRhKSB7XG4gIGpzcGIuTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsIG9wdF9kYXRhLCAwLCAtMSwgbnVsbCwgbnVsbCk7XG59O1xuZ29vZy5pbmhlcml0cyhwcm90by5iYXNlLnYxLk5ldEltYWdlLCBqc3BiLk1lc3NhZ2UpO1xuaWYgKGdvb2cuREVCVUcgJiYgIUNPTVBJTEVEKSB7XG4gIC8qKlxuICAgKiBAcHVibGljXG4gICAqIEBvdmVycmlkZVxuICAgKi9cbiAgcHJvdG8uYmFzZS52MS5OZXRJbWFnZS5kaXNwbGF5TmFtZSA9ICdwcm90by5iYXNlLnYxLk5ldEltYWdlJztcbn1cbi8qKlxuICogR2VuZXJhdGVkIGJ5IEpzUGJDb2RlR2VuZXJhdG9yLlxuICogQHBhcmFtIHtBcnJheT19IG9wdF9kYXRhIE9wdGlvbmFsIGluaXRpYWwgZGF0YSBhcnJheSwgdHlwaWNhbGx5IGZyb20gYVxuICogc2VydmVyIHJlc3BvbnNlLCBvciBjb25zdHJ1Y3RlZCBkaXJlY3RseSBpbiBKYXZhc2NyaXB0LiBUaGUgYXJyYXkgaXMgdXNlZFxuICogaW4gcGxhY2UgYW5kIGJlY29tZXMgcGFydCBvZiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0LiBJdCBpcyBub3QgY2xvbmVkLlxuICogSWYgbm8gZGF0YSBpcyBwcm92aWRlZCwgdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlIGVtcHR5LCBidXQgc3RpbGxcbiAqIHZhbGlkLlxuICogQGV4dGVuZHMge2pzcGIuTWVzc2FnZX1cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5wcm90by5iYXNlLnYxLlVzZXIgPSBmdW5jdGlvbihvcHRfZGF0YSkge1xuICBqc3BiLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLCBvcHRfZGF0YSwgMCwgLTEsIG51bGwsIG51bGwpO1xufTtcbmdvb2cuaW5oZXJpdHMocHJvdG8uYmFzZS52MS5Vc2VyLCBqc3BiLk1lc3NhZ2UpO1xuaWYgKGdvb2cuREVCVUcgJiYgIUNPTVBJTEVEKSB7XG4gIC8qKlxuICAgKiBAcHVibGljXG4gICAqIEBvdmVycmlkZVxuICAgKi9cbiAgcHJvdG8uYmFzZS52MS5Vc2VyLmRpc3BsYXlOYW1lID0gJ3Byb3RvLmJhc2UudjEuVXNlcic7XG59XG4vKipcbiAqIEdlbmVyYXRlZCBieSBKc1BiQ29kZUdlbmVyYXRvci5cbiAqIEBwYXJhbSB7QXJyYXk9fSBvcHRfZGF0YSBPcHRpb25hbCBpbml0aWFsIGRhdGEgYXJyYXksIHR5cGljYWxseSBmcm9tIGFcbiAqIHNlcnZlciByZXNwb25zZSwgb3IgY29uc3RydWN0ZWQgZGlyZWN0bHkgaW4gSmF2YXNjcmlwdC4gVGhlIGFycmF5IGlzIHVzZWRcbiAqIGluIHBsYWNlIGFuZCBiZWNvbWVzIHBhcnQgb2YgdGhlIGNvbnN0cnVjdGVkIG9iamVjdC4gSXQgaXMgbm90IGNsb25lZC5cbiAqIElmIG5vIGRhdGEgaXMgcHJvdmlkZWQsIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3Qgd2lsbCBiZSBlbXB0eSwgYnV0IHN0aWxsXG4gKiB2YWxpZC5cbiAqIEBleHRlbmRzIHtqc3BiLk1lc3NhZ2V9XG4gKiBAY29uc3RydWN0b3JcbiAqL1xucHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mbyA9IGZ1bmN0aW9uKG9wdF9kYXRhKSB7XG4gIGpzcGIuTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsIG9wdF9kYXRhLCAwLCAtMSwgbnVsbCwgbnVsbCk7XG59O1xuZ29vZy5pbmhlcml0cyhwcm90by5iYXNlLnYxLkdhbWVHcHNJbmZvLCBqc3BiLk1lc3NhZ2UpO1xuaWYgKGdvb2cuREVCVUcgJiYgIUNPTVBJTEVEKSB7XG4gIC8qKlxuICAgKiBAcHVibGljXG4gICAqIEBvdmVycmlkZVxuICAgKi9cbiAgcHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mby5kaXNwbGF5TmFtZSA9ICdwcm90by5iYXNlLnYxLkdhbWVHcHNJbmZvJztcbn1cbi8qKlxuICogR2VuZXJhdGVkIGJ5IEpzUGJDb2RlR2VuZXJhdG9yLlxuICogQHBhcmFtIHtBcnJheT19IG9wdF9kYXRhIE9wdGlvbmFsIGluaXRpYWwgZGF0YSBhcnJheSwgdHlwaWNhbGx5IGZyb20gYVxuICogc2VydmVyIHJlc3BvbnNlLCBvciBjb25zdHJ1Y3RlZCBkaXJlY3RseSBpbiBKYXZhc2NyaXB0LiBUaGUgYXJyYXkgaXMgdXNlZFxuICogaW4gcGxhY2UgYW5kIGJlY29tZXMgcGFydCBvZiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0LiBJdCBpcyBub3QgY2xvbmVkLlxuICogSWYgbm8gZGF0YSBpcyBwcm92aWRlZCwgdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlIGVtcHR5LCBidXQgc3RpbGxcbiAqIHZhbGlkLlxuICogQGV4dGVuZHMge2pzcGIuTWVzc2FnZX1cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5wcm90by5iYXNlLnYxLlNpZ25JblJlcGx5ID0gZnVuY3Rpb24ob3B0X2RhdGEpIHtcbiAganNwYi5NZXNzYWdlLmluaXRpYWxpemUodGhpcywgb3B0X2RhdGEsIDAsIC0xLCBudWxsLCBudWxsKTtcbn07XG5nb29nLmluaGVyaXRzKHByb3RvLmJhc2UudjEuU2lnbkluUmVwbHksIGpzcGIuTWVzc2FnZSk7XG5pZiAoZ29vZy5ERUJVRyAmJiAhQ09NUElMRUQpIHtcbiAgLyoqXG4gICAqIEBwdWJsaWNcbiAgICogQG92ZXJyaWRlXG4gICAqL1xuICBwcm90by5iYXNlLnYxLlNpZ25JblJlcGx5LmRpc3BsYXlOYW1lID0gJ3Byb3RvLmJhc2UudjEuU2lnbkluUmVwbHknO1xufVxuLyoqXG4gKiBHZW5lcmF0ZWQgYnkgSnNQYkNvZGVHZW5lcmF0b3IuXG4gKiBAcGFyYW0ge0FycmF5PX0gb3B0X2RhdGEgT3B0aW9uYWwgaW5pdGlhbCBkYXRhIGFycmF5LCB0eXBpY2FsbHkgZnJvbSBhXG4gKiBzZXJ2ZXIgcmVzcG9uc2UsIG9yIGNvbnN0cnVjdGVkIGRpcmVjdGx5IGluIEphdmFzY3JpcHQuIFRoZSBhcnJheSBpcyB1c2VkXG4gKiBpbiBwbGFjZSBhbmQgYmVjb21lcyBwYXJ0IG9mIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3QuIEl0IGlzIG5vdCBjbG9uZWQuXG4gKiBJZiBubyBkYXRhIGlzIHByb3ZpZGVkLCB0aGUgY29uc3RydWN0ZWQgb2JqZWN0IHdpbGwgYmUgZW1wdHksIGJ1dCBzdGlsbFxuICogdmFsaWQuXG4gKiBAZXh0ZW5kcyB7anNwYi5NZXNzYWdlfVxuICogQGNvbnN0cnVjdG9yXG4gKi9cbnByb3RvLmJhc2UudjEuTWFwUm91dGUgPSBmdW5jdGlvbihvcHRfZGF0YSkge1xuICBqc3BiLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLCBvcHRfZGF0YSwgMCwgLTEsIG51bGwsIG51bGwpO1xufTtcbmdvb2cuaW5oZXJpdHMocHJvdG8uYmFzZS52MS5NYXBSb3V0ZSwganNwYi5NZXNzYWdlKTtcbmlmIChnb29nLkRFQlVHICYmICFDT01QSUxFRCkge1xuICAvKipcbiAgICogQHB1YmxpY1xuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RvLmJhc2UudjEuTWFwUm91dGUuZGlzcGxheU5hbWUgPSAncHJvdG8uYmFzZS52MS5NYXBSb3V0ZSc7XG59XG4vKipcbiAqIEdlbmVyYXRlZCBieSBKc1BiQ29kZUdlbmVyYXRvci5cbiAqIEBwYXJhbSB7QXJyYXk9fSBvcHRfZGF0YSBPcHRpb25hbCBpbml0aWFsIGRhdGEgYXJyYXksIHR5cGljYWxseSBmcm9tIGFcbiAqIHNlcnZlciByZXNwb25zZSwgb3IgY29uc3RydWN0ZWQgZGlyZWN0bHkgaW4gSmF2YXNjcmlwdC4gVGhlIGFycmF5IGlzIHVzZWRcbiAqIGluIHBsYWNlIGFuZCBiZWNvbWVzIHBhcnQgb2YgdGhlIGNvbnN0cnVjdGVkIG9iamVjdC4gSXQgaXMgbm90IGNsb25lZC5cbiAqIElmIG5vIGRhdGEgaXMgcHJvdmlkZWQsIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3Qgd2lsbCBiZSBlbXB0eSwgYnV0IHN0aWxsXG4gKiB2YWxpZC5cbiAqIEBleHRlbmRzIHtqc3BiLk1lc3NhZ2V9XG4gKiBAY29uc3RydWN0b3JcbiAqL1xucHJvdG8uYmFzZS52MS5SZWdpb24gPSBmdW5jdGlvbihvcHRfZGF0YSkge1xuICBqc3BiLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLCBvcHRfZGF0YSwgMCwgLTEsIG51bGwsIG51bGwpO1xufTtcbmdvb2cuaW5oZXJpdHMocHJvdG8uYmFzZS52MS5SZWdpb24sIGpzcGIuTWVzc2FnZSk7XG5pZiAoZ29vZy5ERUJVRyAmJiAhQ09NUElMRUQpIHtcbiAgLyoqXG4gICAqIEBwdWJsaWNcbiAgICogQG92ZXJyaWRlXG4gICAqL1xuICBwcm90by5iYXNlLnYxLlJlZ2lvbi5kaXNwbGF5TmFtZSA9ICdwcm90by5iYXNlLnYxLlJlZ2lvbic7XG59XG4vKipcbiAqIEdlbmVyYXRlZCBieSBKc1BiQ29kZUdlbmVyYXRvci5cbiAqIEBwYXJhbSB7QXJyYXk9fSBvcHRfZGF0YSBPcHRpb25hbCBpbml0aWFsIGRhdGEgYXJyYXksIHR5cGljYWxseSBmcm9tIGFcbiAqIHNlcnZlciByZXNwb25zZSwgb3IgY29uc3RydWN0ZWQgZGlyZWN0bHkgaW4gSmF2YXNjcmlwdC4gVGhlIGFycmF5IGlzIHVzZWRcbiAqIGluIHBsYWNlIGFuZCBiZWNvbWVzIHBhcnQgb2YgdGhlIGNvbnN0cnVjdGVkIG9iamVjdC4gSXQgaXMgbm90IGNsb25lZC5cbiAqIElmIG5vIGRhdGEgaXMgcHJvdmlkZWQsIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3Qgd2lsbCBiZSBlbXB0eSwgYnV0IHN0aWxsXG4gKiB2YWxpZC5cbiAqIEBleHRlbmRzIHtqc3BiLk1lc3NhZ2V9XG4gKiBAY29uc3RydWN0b3JcbiAqL1xucHJvdG8uYmFzZS52MS5TaG9wTGlzdCA9IGZ1bmN0aW9uKG9wdF9kYXRhKSB7XG4gIGpzcGIuTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsIG9wdF9kYXRhLCAwLCAtMSwgbnVsbCwgbnVsbCk7XG59O1xuZ29vZy5pbmhlcml0cyhwcm90by5iYXNlLnYxLlNob3BMaXN0LCBqc3BiLk1lc3NhZ2UpO1xuaWYgKGdvb2cuREVCVUcgJiYgIUNPTVBJTEVEKSB7XG4gIC8qKlxuICAgKiBAcHVibGljXG4gICAqIEBvdmVycmlkZVxuICAgKi9cbiAgcHJvdG8uYmFzZS52MS5TaG9wTGlzdC5kaXNwbGF5TmFtZSA9ICdwcm90by5iYXNlLnYxLlNob3BMaXN0Jztcbn1cbi8qKlxuICogR2VuZXJhdGVkIGJ5IEpzUGJDb2RlR2VuZXJhdG9yLlxuICogQHBhcmFtIHtBcnJheT19IG9wdF9kYXRhIE9wdGlvbmFsIGluaXRpYWwgZGF0YSBhcnJheSwgdHlwaWNhbGx5IGZyb20gYVxuICogc2VydmVyIHJlc3BvbnNlLCBvciBjb25zdHJ1Y3RlZCBkaXJlY3RseSBpbiBKYXZhc2NyaXB0LiBUaGUgYXJyYXkgaXMgdXNlZFxuICogaW4gcGxhY2UgYW5kIGJlY29tZXMgcGFydCBvZiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0LiBJdCBpcyBub3QgY2xvbmVkLlxuICogSWYgbm8gZGF0YSBpcyBwcm92aWRlZCwgdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlIGVtcHR5LCBidXQgc3RpbGxcbiAqIHZhbGlkLlxuICogQGV4dGVuZHMge2pzcGIuTWVzc2FnZX1cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xJbmZvTGlzdCA9IGZ1bmN0aW9uKG9wdF9kYXRhKSB7XG4gIGpzcGIuTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsIG9wdF9kYXRhLCAwLCAtMSwgbnVsbCwgbnVsbCk7XG59O1xuZ29vZy5pbmhlcml0cyhwcm90by5iYXNlLnYxLkNvbnRyb2xJbmZvTGlzdCwganNwYi5NZXNzYWdlKTtcbmlmIChnb29nLkRFQlVHICYmICFDT01QSUxFRCkge1xuICAvKipcbiAgICogQHB1YmxpY1xuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RvLmJhc2UudjEuQ29udHJvbEluZm9MaXN0LmRpc3BsYXlOYW1lID0gJ3Byb3RvLmJhc2UudjEuQ29udHJvbEluZm9MaXN0Jztcbn1cbi8qKlxuICogR2VuZXJhdGVkIGJ5IEpzUGJDb2RlR2VuZXJhdG9yLlxuICogQHBhcmFtIHtBcnJheT19IG9wdF9kYXRhIE9wdGlvbmFsIGluaXRpYWwgZGF0YSBhcnJheSwgdHlwaWNhbGx5IGZyb20gYVxuICogc2VydmVyIHJlc3BvbnNlLCBvciBjb25zdHJ1Y3RlZCBkaXJlY3RseSBpbiBKYXZhc2NyaXB0LiBUaGUgYXJyYXkgaXMgdXNlZFxuICogaW4gcGxhY2UgYW5kIGJlY29tZXMgcGFydCBvZiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0LiBJdCBpcyBub3QgY2xvbmVkLlxuICogSWYgbm8gZGF0YSBpcyBwcm92aWRlZCwgdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlIGVtcHR5LCBidXQgc3RpbGxcbiAqIHZhbGlkLlxuICogQGV4dGVuZHMge2pzcGIuTWVzc2FnZX1cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5wcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseSA9IGZ1bmN0aW9uKG9wdF9kYXRhKSB7XG4gIGpzcGIuTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsIG9wdF9kYXRhLCAwLCAtMSwgbnVsbCwgbnVsbCk7XG59O1xuZ29vZy5pbmhlcml0cyhwcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseSwganNwYi5NZXNzYWdlKTtcbmlmIChnb29nLkRFQlVHICYmICFDT01QSUxFRCkge1xuICAvKipcbiAgICogQHB1YmxpY1xuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RvLmJhc2UudjEuRGVmYXVsdFJlcGx5LmRpc3BsYXlOYW1lID0gJ3Byb3RvLmJhc2UudjEuRGVmYXVsdFJlcGx5Jztcbn1cbi8qKlxuICogR2VuZXJhdGVkIGJ5IEpzUGJDb2RlR2VuZXJhdG9yLlxuICogQHBhcmFtIHtBcnJheT19IG9wdF9kYXRhIE9wdGlvbmFsIGluaXRpYWwgZGF0YSBhcnJheSwgdHlwaWNhbGx5IGZyb20gYVxuICogc2VydmVyIHJlc3BvbnNlLCBvciBjb25zdHJ1Y3RlZCBkaXJlY3RseSBpbiBKYXZhc2NyaXB0LiBUaGUgYXJyYXkgaXMgdXNlZFxuICogaW4gcGxhY2UgYW5kIGJlY29tZXMgcGFydCBvZiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0LiBJdCBpcyBub3QgY2xvbmVkLlxuICogSWYgbm8gZGF0YSBpcyBwcm92aWRlZCwgdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlIGVtcHR5LCBidXQgc3RpbGxcbiAqIHZhbGlkLlxuICogQGV4dGVuZHMge2pzcGIuTWVzc2FnZX1cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5wcm90by5iYXNlLnYxLklkUmVxdWVzdCA9IGZ1bmN0aW9uKG9wdF9kYXRhKSB7XG4gIGpzcGIuTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsIG9wdF9kYXRhLCAwLCAtMSwgbnVsbCwgbnVsbCk7XG59O1xuZ29vZy5pbmhlcml0cyhwcm90by5iYXNlLnYxLklkUmVxdWVzdCwganNwYi5NZXNzYWdlKTtcbmlmIChnb29nLkRFQlVHICYmICFDT01QSUxFRCkge1xuICAvKipcbiAgICogQHB1YmxpY1xuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RvLmJhc2UudjEuSWRSZXF1ZXN0LmRpc3BsYXlOYW1lID0gJ3Byb3RvLmJhc2UudjEuSWRSZXF1ZXN0Jztcbn1cbi8qKlxuICogR2VuZXJhdGVkIGJ5IEpzUGJDb2RlR2VuZXJhdG9yLlxuICogQHBhcmFtIHtBcnJheT19IG9wdF9kYXRhIE9wdGlvbmFsIGluaXRpYWwgZGF0YSBhcnJheSwgdHlwaWNhbGx5IGZyb20gYVxuICogc2VydmVyIHJlc3BvbnNlLCBvciBjb25zdHJ1Y3RlZCBkaXJlY3RseSBpbiBKYXZhc2NyaXB0LiBUaGUgYXJyYXkgaXMgdXNlZFxuICogaW4gcGxhY2UgYW5kIGJlY29tZXMgcGFydCBvZiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0LiBJdCBpcyBub3QgY2xvbmVkLlxuICogSWYgbm8gZGF0YSBpcyBwcm92aWRlZCwgdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlIGVtcHR5LCBidXQgc3RpbGxcbiAqIHZhbGlkLlxuICogQGV4dGVuZHMge2pzcGIuTWVzc2FnZX1cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5wcm90by5iYXNlLnYxLkRlZmF1bHRSZXF1ZXN0ID0gZnVuY3Rpb24ob3B0X2RhdGEpIHtcbiAganNwYi5NZXNzYWdlLmluaXRpYWxpemUodGhpcywgb3B0X2RhdGEsIDAsIC0xLCBudWxsLCBudWxsKTtcbn07XG5nb29nLmluaGVyaXRzKHByb3RvLmJhc2UudjEuRGVmYXVsdFJlcXVlc3QsIGpzcGIuTWVzc2FnZSk7XG5pZiAoZ29vZy5ERUJVRyAmJiAhQ09NUElMRUQpIHtcbiAgLyoqXG4gICAqIEBwdWJsaWNcbiAgICogQG92ZXJyaWRlXG4gICAqL1xuICBwcm90by5iYXNlLnYxLkRlZmF1bHRSZXF1ZXN0LmRpc3BsYXlOYW1lID0gJ3Byb3RvLmJhc2UudjEuRGVmYXVsdFJlcXVlc3QnO1xufVxuLyoqXG4gKiBHZW5lcmF0ZWQgYnkgSnNQYkNvZGVHZW5lcmF0b3IuXG4gKiBAcGFyYW0ge0FycmF5PX0gb3B0X2RhdGEgT3B0aW9uYWwgaW5pdGlhbCBkYXRhIGFycmF5LCB0eXBpY2FsbHkgZnJvbSBhXG4gKiBzZXJ2ZXIgcmVzcG9uc2UsIG9yIGNvbnN0cnVjdGVkIGRpcmVjdGx5IGluIEphdmFzY3JpcHQuIFRoZSBhcnJheSBpcyB1c2VkXG4gKiBpbiBwbGFjZSBhbmQgYmVjb21lcyBwYXJ0IG9mIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3QuIEl0IGlzIG5vdCBjbG9uZWQuXG4gKiBJZiBubyBkYXRhIGlzIHByb3ZpZGVkLCB0aGUgY29uc3RydWN0ZWQgb2JqZWN0IHdpbGwgYmUgZW1wdHksIGJ1dCBzdGlsbFxuICogdmFsaWQuXG4gKiBAZXh0ZW5kcyB7anNwYi5NZXNzYWdlfVxuICogQGNvbnN0cnVjdG9yXG4gKi9cbnByb3RvLmJhc2UudjEuUG9zaXRpb24gPSBmdW5jdGlvbihvcHRfZGF0YSkge1xuICBqc3BiLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLCBvcHRfZGF0YSwgMCwgLTEsIG51bGwsIG51bGwpO1xufTtcbmdvb2cuaW5oZXJpdHMocHJvdG8uYmFzZS52MS5Qb3NpdGlvbiwganNwYi5NZXNzYWdlKTtcbmlmIChnb29nLkRFQlVHICYmICFDT01QSUxFRCkge1xuICAvKipcbiAgICogQHB1YmxpY1xuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RvLmJhc2UudjEuUG9zaXRpb24uZGlzcGxheU5hbWUgPSAncHJvdG8uYmFzZS52MS5Qb3NpdGlvbic7XG59XG4vKipcbiAqIEdlbmVyYXRlZCBieSBKc1BiQ29kZUdlbmVyYXRvci5cbiAqIEBwYXJhbSB7QXJyYXk9fSBvcHRfZGF0YSBPcHRpb25hbCBpbml0aWFsIGRhdGEgYXJyYXksIHR5cGljYWxseSBmcm9tIGFcbiAqIHNlcnZlciByZXNwb25zZSwgb3IgY29uc3RydWN0ZWQgZGlyZWN0bHkgaW4gSmF2YXNjcmlwdC4gVGhlIGFycmF5IGlzIHVzZWRcbiAqIGluIHBsYWNlIGFuZCBiZWNvbWVzIHBhcnQgb2YgdGhlIGNvbnN0cnVjdGVkIG9iamVjdC4gSXQgaXMgbm90IGNsb25lZC5cbiAqIElmIG5vIGRhdGEgaXMgcHJvdmlkZWQsIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3Qgd2lsbCBiZSBlbXB0eSwgYnV0IHN0aWxsXG4gKiB2YWxpZC5cbiAqIEBleHRlbmRzIHtqc3BiLk1lc3NhZ2V9XG4gKiBAY29uc3RydWN0b3JcbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRJbmZvID0gZnVuY3Rpb24ob3B0X2RhdGEpIHtcbiAganNwYi5NZXNzYWdlLmluaXRpYWxpemUodGhpcywgb3B0X2RhdGEsIDAsIC0xLCBudWxsLCBudWxsKTtcbn07XG5nb29nLmluaGVyaXRzKHByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mbywganNwYi5NZXNzYWdlKTtcbmlmIChnb29nLkRFQlVHICYmICFDT01QSUxFRCkge1xuICAvKipcbiAgICogQHB1YmxpY1xuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mby5kaXNwbGF5TmFtZSA9ICdwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm8nO1xufVxuLyoqXG4gKiBHZW5lcmF0ZWQgYnkgSnNQYkNvZGVHZW5lcmF0b3IuXG4gKiBAcGFyYW0ge0FycmF5PX0gb3B0X2RhdGEgT3B0aW9uYWwgaW5pdGlhbCBkYXRhIGFycmF5LCB0eXBpY2FsbHkgZnJvbSBhXG4gKiBzZXJ2ZXIgcmVzcG9uc2UsIG9yIGNvbnN0cnVjdGVkIGRpcmVjdGx5IGluIEphdmFzY3JpcHQuIFRoZSBhcnJheSBpcyB1c2VkXG4gKiBpbiBwbGFjZSBhbmQgYmVjb21lcyBwYXJ0IG9mIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3QuIEl0IGlzIG5vdCBjbG9uZWQuXG4gKiBJZiBubyBkYXRhIGlzIHByb3ZpZGVkLCB0aGUgY29uc3RydWN0ZWQgb2JqZWN0IHdpbGwgYmUgZW1wdHksIGJ1dCBzdGlsbFxuICogdmFsaWQuXG4gKiBAZXh0ZW5kcyB7anNwYi5NZXNzYWdlfVxuICogQGNvbnN0cnVjdG9yXG4gKi9cbnByb3RvLmJhc2UudjEuSW1hZ2UgPSBmdW5jdGlvbihvcHRfZGF0YSkge1xuICBqc3BiLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLCBvcHRfZGF0YSwgMCwgLTEsIG51bGwsIG51bGwpO1xufTtcbmdvb2cuaW5oZXJpdHMocHJvdG8uYmFzZS52MS5JbWFnZSwganNwYi5NZXNzYWdlKTtcbmlmIChnb29nLkRFQlVHICYmICFDT01QSUxFRCkge1xuICAvKipcbiAgICogQHB1YmxpY1xuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RvLmJhc2UudjEuSW1hZ2UuZGlzcGxheU5hbWUgPSAncHJvdG8uYmFzZS52MS5JbWFnZSc7XG59XG4vKipcbiAqIEdlbmVyYXRlZCBieSBKc1BiQ29kZUdlbmVyYXRvci5cbiAqIEBwYXJhbSB7QXJyYXk9fSBvcHRfZGF0YSBPcHRpb25hbCBpbml0aWFsIGRhdGEgYXJyYXksIHR5cGljYWxseSBmcm9tIGFcbiAqIHNlcnZlciByZXNwb25zZSwgb3IgY29uc3RydWN0ZWQgZGlyZWN0bHkgaW4gSmF2YXNjcmlwdC4gVGhlIGFycmF5IGlzIHVzZWRcbiAqIGluIHBsYWNlIGFuZCBiZWNvbWVzIHBhcnQgb2YgdGhlIGNvbnN0cnVjdGVkIG9iamVjdC4gSXQgaXMgbm90IGNsb25lZC5cbiAqIElmIG5vIGRhdGEgaXMgcHJvdmlkZWQsIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3Qgd2lsbCBiZSBlbXB0eSwgYnV0IHN0aWxsXG4gKiB2YWxpZC5cbiAqIEBleHRlbmRzIHtqc3BiLk1lc3NhZ2V9XG4gKiBAY29uc3RydWN0b3JcbiAqL1xucHJvdG8uYmFzZS52MS5TdGF0dXNFZGl0UmVxdWVzdCA9IGZ1bmN0aW9uKG9wdF9kYXRhKSB7XG4gIGpzcGIuTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsIG9wdF9kYXRhLCAwLCAtMSwgbnVsbCwgbnVsbCk7XG59O1xuZ29vZy5pbmhlcml0cyhwcm90by5iYXNlLnYxLlN0YXR1c0VkaXRSZXF1ZXN0LCBqc3BiLk1lc3NhZ2UpO1xuaWYgKGdvb2cuREVCVUcgJiYgIUNPTVBJTEVEKSB7XG4gIC8qKlxuICAgKiBAcHVibGljXG4gICAqIEBvdmVycmlkZVxuICAgKi9cbiAgcHJvdG8uYmFzZS52MS5TdGF0dXNFZGl0UmVxdWVzdC5kaXNwbGF5TmFtZSA9ICdwcm90by5iYXNlLnYxLlN0YXR1c0VkaXRSZXF1ZXN0Jztcbn1cbi8qKlxuICogR2VuZXJhdGVkIGJ5IEpzUGJDb2RlR2VuZXJhdG9yLlxuICogQHBhcmFtIHtBcnJheT19IG9wdF9kYXRhIE9wdGlvbmFsIGluaXRpYWwgZGF0YSBhcnJheSwgdHlwaWNhbGx5IGZyb20gYVxuICogc2VydmVyIHJlc3BvbnNlLCBvciBjb25zdHJ1Y3RlZCBkaXJlY3RseSBpbiBKYXZhc2NyaXB0LiBUaGUgYXJyYXkgaXMgdXNlZFxuICogaW4gcGxhY2UgYW5kIGJlY29tZXMgcGFydCBvZiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0LiBJdCBpcyBub3QgY2xvbmVkLlxuICogSWYgbm8gZGF0YSBpcyBwcm92aWRlZCwgdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlIGVtcHR5LCBidXQgc3RpbGxcbiAqIHZhbGlkLlxuICogQGV4dGVuZHMge2pzcGIuTWVzc2FnZX1cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludCA9IGZ1bmN0aW9uKG9wdF9kYXRhKSB7XG4gIGpzcGIuTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsIG9wdF9kYXRhLCAwLCAtMSwgcHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQucmVwZWF0ZWRGaWVsZHNfLCBudWxsKTtcbn07XG5nb29nLmluaGVyaXRzKHByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50LCBqc3BiLk1lc3NhZ2UpO1xuaWYgKGdvb2cuREVCVUcgJiYgIUNPTVBJTEVEKSB7XG4gIC8qKlxuICAgKiBAcHVibGljXG4gICAqIEBvdmVycmlkZVxuICAgKi9cbiAgcHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQuZGlzcGxheU5hbWUgPSAncHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQnO1xufVxuLyoqXG4gKiBHZW5lcmF0ZWQgYnkgSnNQYkNvZGVHZW5lcmF0b3IuXG4gKiBAcGFyYW0ge0FycmF5PX0gb3B0X2RhdGEgT3B0aW9uYWwgaW5pdGlhbCBkYXRhIGFycmF5LCB0eXBpY2FsbHkgZnJvbSBhXG4gKiBzZXJ2ZXIgcmVzcG9uc2UsIG9yIGNvbnN0cnVjdGVkIGRpcmVjdGx5IGluIEphdmFzY3JpcHQuIFRoZSBhcnJheSBpcyB1c2VkXG4gKiBpbiBwbGFjZSBhbmQgYmVjb21lcyBwYXJ0IG9mIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3QuIEl0IGlzIG5vdCBjbG9uZWQuXG4gKiBJZiBubyBkYXRhIGlzIHByb3ZpZGVkLCB0aGUgY29uc3RydWN0ZWQgb2JqZWN0IHdpbGwgYmUgZW1wdHksIGJ1dCBzdGlsbFxuICogdmFsaWQuXG4gKiBAZXh0ZW5kcyB7anNwYi5NZXNzYWdlfVxuICogQGNvbnN0cnVjdG9yXG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50U2ltcGxlID0gZnVuY3Rpb24ob3B0X2RhdGEpIHtcbiAganNwYi5NZXNzYWdlLmluaXRpYWxpemUodGhpcywgb3B0X2RhdGEsIDAsIC0xLCBwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZS5yZXBlYXRlZEZpZWxkc18sIG51bGwpO1xufTtcbmdvb2cuaW5oZXJpdHMocHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRTaW1wbGUsIGpzcGIuTWVzc2FnZSk7XG5pZiAoZ29vZy5ERUJVRyAmJiAhQ09NUElMRUQpIHtcbiAgLyoqXG4gICAqIEBwdWJsaWNcbiAgICogQG92ZXJyaWRlXG4gICAqL1xuICBwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZS5kaXNwbGF5TmFtZSA9ICdwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZSc7XG59XG5cblxuXG5pZiAoanNwYi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCkge1xuLyoqXG4gKiBDcmVhdGVzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHByb3RvLlxuICogRmllbGQgbmFtZXMgdGhhdCBhcmUgcmVzZXJ2ZWQgaW4gSmF2YVNjcmlwdCBhbmQgd2lsbCBiZSByZW5hbWVkIHRvIHBiX25hbWUuXG4gKiBPcHRpb25hbCBmaWVsZHMgdGhhdCBhcmUgbm90IHNldCB3aWxsIGJlIHNldCB0byB1bmRlZmluZWQuXG4gKiBUbyBhY2Nlc3MgYSByZXNlcnZlZCBmaWVsZCB1c2UsIGZvby5wYl88bmFtZT4sIGVnLCBmb28ucGJfZGVmYXVsdC5cbiAqIEZvciB0aGUgbGlzdCBvZiByZXNlcnZlZCBuYW1lcyBwbGVhc2Ugc2VlOlxuICogICAgIG5ldC9wcm90bzIvY29tcGlsZXIvanMvaW50ZXJuYWwvZ2VuZXJhdG9yLmNjI2tLZXl3b3JkLlxuICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2luY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiB3aGV0aGVyIHRvIGluY2x1ZGUgdGhlXG4gKiAgICAgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKi9cbnByb3RvLmJhc2UudjEuTmV0SW1hZ2UucHJvdG90eXBlLnRvT2JqZWN0ID0gZnVuY3Rpb24ob3B0X2luY2x1ZGVJbnN0YW5jZSkge1xuICByZXR1cm4gcHJvdG8uYmFzZS52MS5OZXRJbWFnZS50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuTmV0SW1hZ2V9IG1zZyBUaGUgbXNnIGluc3RhbmNlIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuTmV0SW1hZ2UudG9PYmplY3QgPSBmdW5jdGlvbihpbmNsdWRlSW5zdGFuY2UsIG1zZykge1xuICB2YXIgZiwgb2JqID0ge1xuICAgIHVybDoganNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQobXNnLCAxLCBcIlwiKSxcbiAgICBtZDU6IG1zZy5nZXRNZDVfYXNCNjQoKVxuICB9O1xuXG4gIGlmIChpbmNsdWRlSW5zdGFuY2UpIHtcbiAgICBvYmouJGpzcGJNZXNzYWdlSW5zdGFuY2UgPSBtc2c7XG4gIH1cbiAgcmV0dXJuIG9iajtcbn07XG59XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEBwYXJhbSB7anNwYi5CeXRlU291cmNlfSBieXRlcyBUaGUgYnl0ZXMgdG8gZGVzZXJpYWxpemUuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5OZXRJbWFnZX1cbiAqL1xucHJvdG8uYmFzZS52MS5OZXRJbWFnZS5kZXNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcganNwYi5CaW5hcnlSZWFkZXIoYnl0ZXMpO1xuICB2YXIgbXNnID0gbmV3IHByb3RvLmJhc2UudjEuTmV0SW1hZ2U7XG4gIHJldHVybiBwcm90by5iYXNlLnYxLk5ldEltYWdlLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihtc2csIHJlYWRlcik7XG59O1xuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkgZnJvbSB0aGVcbiAqIGdpdmVuIHJlYWRlciBpbnRvIHRoZSBnaXZlbiBtZXNzYWdlIG9iamVjdC5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuTmV0SW1hZ2V9IG1zZyBUaGUgbWVzc2FnZSBvYmplY3QgdG8gZGVzZXJpYWxpemUgaW50by5cbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5UmVhZGVyfSByZWFkZXIgVGhlIEJpbmFyeVJlYWRlciB0byB1c2UuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5OZXRJbWFnZX1cbiAqL1xucHJvdG8uYmFzZS52MS5OZXRJbWFnZS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIgPSBmdW5jdGlvbihtc2csIHJlYWRlcikge1xuICB3aGlsZSAocmVhZGVyLm5leHRGaWVsZCgpKSB7XG4gICAgaWYgKHJlYWRlci5pc0VuZEdyb3VwKCkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB2YXIgZmllbGQgPSByZWFkZXIuZ2V0RmllbGROdW1iZXIoKTtcbiAgICBzd2l0Y2ggKGZpZWxkKSB7XG4gICAgY2FzZSAxOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChyZWFkZXIucmVhZFN0cmluZygpKTtcbiAgICAgIG1zZy5zZXRVcmwodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAyOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHshVWludDhBcnJheX0gKi8gKHJlYWRlci5yZWFkQnl0ZXMoKSk7XG4gICAgICBtc2cuc2V0TWQ1KHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZWFkZXIuc2tpcEZpZWxkKCk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1zZztcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcmV0dXJuIHshVWludDhBcnJheX1cbiAqL1xucHJvdG8uYmFzZS52MS5OZXRJbWFnZS5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oKSB7XG4gIHZhciB3cml0ZXIgPSBuZXcganNwYi5CaW5hcnlXcml0ZXIoKTtcbiAgcHJvdG8uYmFzZS52MS5OZXRJbWFnZS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLCB3cml0ZXIpO1xuICByZXR1cm4gd3JpdGVyLmdldFJlc3VsdEJ1ZmZlcigpO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIGdpdmVuIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmVcbiAqIGZvcm1hdCksIHdyaXRpbmcgdG8gdGhlIGdpdmVuIEJpbmFyeVdyaXRlci5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuTmV0SW1hZ2V9IG1lc3NhZ2VcbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5V3JpdGVyfSB3cml0ZXJcbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYmFzZS52MS5OZXRJbWFnZS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciA9IGZ1bmN0aW9uKG1lc3NhZ2UsIHdyaXRlcikge1xuICB2YXIgZiA9IHVuZGVmaW5lZDtcbiAgZiA9IG1lc3NhZ2UuZ2V0VXJsKCk7XG4gIGlmIChmLmxlbmd0aCA+IDApIHtcbiAgICB3cml0ZXIud3JpdGVTdHJpbmcoXG4gICAgICAxLFxuICAgICAgZlxuICAgICk7XG4gIH1cbiAgZiA9IG1lc3NhZ2UuZ2V0TWQ1X2FzVTgoKTtcbiAgaWYgKGYubGVuZ3RoID4gMCkge1xuICAgIHdyaXRlci53cml0ZUJ5dGVzKFxuICAgICAgMixcbiAgICAgIGZcbiAgICApO1xuICB9XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgc3RyaW5nIHVybCA9IDE7XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbnByb3RvLmJhc2UudjEuTmV0SW1hZ2UucHJvdG90eXBlLmdldFVybCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLCAxLCBcIlwiKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5OZXRJbWFnZX0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuTmV0SW1hZ2UucHJvdG90eXBlLnNldFVybCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zU3RyaW5nRmllbGQodGhpcywgMSwgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGJ5dGVzIG1kNSA9IDI7XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbnByb3RvLmJhc2UudjEuTmV0SW1hZ2UucHJvdG90eXBlLmdldE1kNSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLCAyLCBcIlwiKSk7XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgYnl0ZXMgbWQ1ID0gMjtcbiAqIFRoaXMgaXMgYSB0eXBlLWNvbnZlcnNpb24gd3JhcHBlciBhcm91bmQgYGdldE1kNSgpYFxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5wcm90by5iYXNlLnYxLk5ldEltYWdlLnByb3RvdHlwZS5nZXRNZDVfYXNCNjQgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAoanNwYi5NZXNzYWdlLmJ5dGVzQXNCNjQoXG4gICAgICB0aGlzLmdldE1kNSgpKSk7XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgYnl0ZXMgbWQ1ID0gMjtcbiAqIE5vdGUgdGhhdCBVaW50OEFycmF5IGlzIG5vdCBzdXBwb3J0ZWQgb24gYWxsIGJyb3dzZXJzLlxuICogQHNlZSBodHRwOi8vY2FuaXVzZS5jb20vVWludDhBcnJheVxuICogVGhpcyBpcyBhIHR5cGUtY29udmVyc2lvbiB3cmFwcGVyIGFyb3VuZCBgZ2V0TWQ1KClgXG4gKiBAcmV0dXJuIHshVWludDhBcnJheX1cbiAqL1xucHJvdG8uYmFzZS52MS5OZXRJbWFnZS5wcm90b3R5cGUuZ2V0TWQ1X2FzVTggPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7IVVpbnQ4QXJyYXl9ICovIChqc3BiLk1lc3NhZ2UuYnl0ZXNBc1U4KFxuICAgICAgdGhpcy5nZXRNZDUoKSkpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7IShzdHJpbmd8VWludDhBcnJheSl9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5OZXRJbWFnZX0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuTmV0SW1hZ2UucHJvdG90eXBlLnNldE1kNSA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLCAyLCB2YWx1ZSk7XG59O1xuXG5cblxuXG5cbmlmIChqc3BiLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUKSB7XG4vKipcbiAqIENyZWF0ZXMgYW4gb2JqZWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgcHJvdG8uXG4gKiBGaWVsZCBuYW1lcyB0aGF0IGFyZSByZXNlcnZlZCBpbiBKYXZhU2NyaXB0IGFuZCB3aWxsIGJlIHJlbmFtZWQgdG8gcGJfbmFtZS5cbiAqIE9wdGlvbmFsIGZpZWxkcyB0aGF0IGFyZSBub3Qgc2V0IHdpbGwgYmUgc2V0IHRvIHVuZGVmaW5lZC5cbiAqIFRvIGFjY2VzcyBhIHJlc2VydmVkIGZpZWxkIHVzZSwgZm9vLnBiXzxuYW1lPiwgZWcsIGZvby5wYl9kZWZhdWx0LlxuICogRm9yIHRoZSBsaXN0IG9mIHJlc2VydmVkIG5hbWVzIHBsZWFzZSBzZWU6XG4gKiAgICAgbmV0L3Byb3RvMi9jb21waWxlci9qcy9pbnRlcm5hbC9nZW5lcmF0b3IuY2Mja0tleXdvcmQuXG4gKiBAcGFyYW0ge2Jvb2xlYW49fSBvcHRfaW5jbHVkZUluc3RhbmNlIERlcHJlY2F0ZWQuIHdoZXRoZXIgdG8gaW5jbHVkZSB0aGVcbiAqICAgICBKU1BCIGluc3RhbmNlIGZvciB0cmFuc2l0aW9uYWwgc295IHByb3RvIHN1cHBvcnQ6XG4gKiAgICAgaHR0cDovL2dvdG8vc295LXBhcmFtLW1pZ3JhdGlvblxuICogQHJldHVybiB7IU9iamVjdH1cbiAqL1xucHJvdG8uYmFzZS52MS5Vc2VyLnByb3RvdHlwZS50b09iamVjdCA9IGZ1bmN0aW9uKG9wdF9pbmNsdWRlSW5zdGFuY2UpIHtcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuVXNlci50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuVXNlcn0gbXNnIFRoZSBtc2cgaW5zdGFuY2UgdG8gdHJhbnNmb3JtLlxuICogQHJldHVybiB7IU9iamVjdH1cbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYmFzZS52MS5Vc2VyLnRvT2JqZWN0ID0gZnVuY3Rpb24oaW5jbHVkZUluc3RhbmNlLCBtc2cpIHtcbiAgdmFyIGYsIG9iaiA9IHtcblxuICB9O1xuXG4gIGlmIChpbmNsdWRlSW5zdGFuY2UpIHtcbiAgICBvYmouJGpzcGJNZXNzYWdlSW5zdGFuY2UgPSBtc2c7XG4gIH1cbiAgcmV0dXJuIG9iajtcbn07XG59XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEBwYXJhbSB7anNwYi5CeXRlU291cmNlfSBieXRlcyBUaGUgYnl0ZXMgdG8gZGVzZXJpYWxpemUuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5Vc2VyfVxuICovXG5wcm90by5iYXNlLnYxLlVzZXIuZGVzZXJpYWxpemVCaW5hcnkgPSBmdW5jdGlvbihieXRlcykge1xuICB2YXIgcmVhZGVyID0gbmV3IGpzcGIuQmluYXJ5UmVhZGVyKGJ5dGVzKTtcbiAgdmFyIG1zZyA9IG5ldyBwcm90by5iYXNlLnYxLlVzZXI7XG4gIHJldHVybiBwcm90by5iYXNlLnYxLlVzZXIuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG1zZywgcmVhZGVyKTtcbn07XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KSBmcm9tIHRoZVxuICogZ2l2ZW4gcmVhZGVyIGludG8gdGhlIGdpdmVuIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5Vc2VyfSBtc2cgVGhlIG1lc3NhZ2Ugb2JqZWN0IHRvIGRlc2VyaWFsaXplIGludG8uXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVJlYWRlcn0gcmVhZGVyIFRoZSBCaW5hcnlSZWFkZXIgdG8gdXNlLlxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuVXNlcn1cbiAqL1xucHJvdG8uYmFzZS52MS5Vc2VyLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciA9IGZ1bmN0aW9uKG1zZywgcmVhZGVyKSB7XG4gIHdoaWxlIChyZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICBpZiAocmVhZGVyLmlzRW5kR3JvdXAoKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBmaWVsZCA9IHJlYWRlci5nZXRGaWVsZE51bWJlcigpO1xuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICBkZWZhdWx0OlxuICAgICAgcmVhZGVyLnNraXBGaWVsZCgpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBtc2c7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHJldHVybiB7IVVpbnQ4QXJyYXl9XG4gKi9cbnByb3RvLmJhc2UudjEuVXNlci5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oKSB7XG4gIHZhciB3cml0ZXIgPSBuZXcganNwYi5CaW5hcnlXcml0ZXIoKTtcbiAgcHJvdG8uYmFzZS52MS5Vc2VyLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsIHdyaXRlcik7XG4gIHJldHVybiB3cml0ZXIuZ2V0UmVzdWx0QnVmZmVyKCk7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgZ2l2ZW4gbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZVxuICogZm9ybWF0KSwgd3JpdGluZyB0byB0aGUgZ2l2ZW4gQmluYXJ5V3JpdGVyLlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5Vc2VyfSBtZXNzYWdlXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVdyaXRlcn0gd3JpdGVyXG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuVXNlci5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciA9IGZ1bmN0aW9uKG1lc3NhZ2UsIHdyaXRlcikge1xuICB2YXIgZiA9IHVuZGVmaW5lZDtcbn07XG5cblxuLyoqXG4gKiBAZW51bSB7bnVtYmVyfVxuICovXG5wcm90by5iYXNlLnYxLlVzZXIuU2V4ID0ge1xuICBVTkRFRklORTogMCxcbiAgTUFMRTogMSxcbiAgRkVNQUxFOiAyXG59O1xuXG5cblxuXG5pZiAoanNwYi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCkge1xuLyoqXG4gKiBDcmVhdGVzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHByb3RvLlxuICogRmllbGQgbmFtZXMgdGhhdCBhcmUgcmVzZXJ2ZWQgaW4gSmF2YVNjcmlwdCBhbmQgd2lsbCBiZSByZW5hbWVkIHRvIHBiX25hbWUuXG4gKiBPcHRpb25hbCBmaWVsZHMgdGhhdCBhcmUgbm90IHNldCB3aWxsIGJlIHNldCB0byB1bmRlZmluZWQuXG4gKiBUbyBhY2Nlc3MgYSByZXNlcnZlZCBmaWVsZCB1c2UsIGZvby5wYl88bmFtZT4sIGVnLCBmb28ucGJfZGVmYXVsdC5cbiAqIEZvciB0aGUgbGlzdCBvZiByZXNlcnZlZCBuYW1lcyBwbGVhc2Ugc2VlOlxuICogICAgIG5ldC9wcm90bzIvY29tcGlsZXIvanMvaW50ZXJuYWwvZ2VuZXJhdG9yLmNjI2tLZXl3b3JkLlxuICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2luY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiB3aGV0aGVyIHRvIGluY2x1ZGUgdGhlXG4gKiAgICAgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKi9cbnByb3RvLmJhc2UudjEuR2FtZUdwc0luZm8ucHJvdG90eXBlLnRvT2JqZWN0ID0gZnVuY3Rpb24ob3B0X2luY2x1ZGVJbnN0YW5jZSkge1xuICByZXR1cm4gcHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mby50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuR2FtZUdwc0luZm99IG1zZyBUaGUgbXNnIGluc3RhbmNlIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuR2FtZUdwc0luZm8udG9PYmplY3QgPSBmdW5jdGlvbihpbmNsdWRlSW5zdGFuY2UsIG1zZykge1xuICB2YXIgZiwgb2JqID0ge1xuICAgIHVwdGltZTogKGYgPSBtc2cuZ2V0VXB0aW1lKCkpICYmIGdvb2dsZV9wcm90b2J1Zl90aW1lc3RhbXBfcGIuVGltZXN0YW1wLnRvT2JqZWN0KGluY2x1ZGVJbnN0YW5jZSwgZiksXG4gICAgbG9uZ2l0dWRlOiBqc3BiLk1lc3NhZ2UuZ2V0RmxvYXRpbmdQb2ludEZpZWxkV2l0aERlZmF1bHQobXNnLCAyLCAwLjApLFxuICAgIGxhdGl0dWRlOiBqc3BiLk1lc3NhZ2UuZ2V0RmxvYXRpbmdQb2ludEZpZWxkV2l0aERlZmF1bHQobXNnLCAzLCAwLjApLFxuICAgIGRpcmVjdGlvbnJhZGlhbjoganNwYi5NZXNzYWdlLmdldEZsb2F0aW5nUG9pbnRGaWVsZFdpdGhEZWZhdWx0KG1zZywgNCwgMC4wKVxuICB9O1xuXG4gIGlmIChpbmNsdWRlSW5zdGFuY2UpIHtcbiAgICBvYmouJGpzcGJNZXNzYWdlSW5zdGFuY2UgPSBtc2c7XG4gIH1cbiAgcmV0dXJuIG9iajtcbn07XG59XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEBwYXJhbSB7anNwYi5CeXRlU291cmNlfSBieXRlcyBUaGUgYnl0ZXMgdG8gZGVzZXJpYWxpemUuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mb31cbiAqL1xucHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mby5kZXNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcganNwYi5CaW5hcnlSZWFkZXIoYnl0ZXMpO1xuICB2YXIgbXNnID0gbmV3IHByb3RvLmJhc2UudjEuR2FtZUdwc0luZm87XG4gIHJldHVybiBwcm90by5iYXNlLnYxLkdhbWVHcHNJbmZvLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihtc2csIHJlYWRlcik7XG59O1xuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkgZnJvbSB0aGVcbiAqIGdpdmVuIHJlYWRlciBpbnRvIHRoZSBnaXZlbiBtZXNzYWdlIG9iamVjdC5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuR2FtZUdwc0luZm99IG1zZyBUaGUgbWVzc2FnZSBvYmplY3QgdG8gZGVzZXJpYWxpemUgaW50by5cbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5UmVhZGVyfSByZWFkZXIgVGhlIEJpbmFyeVJlYWRlciB0byB1c2UuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mb31cbiAqL1xucHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mby5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIgPSBmdW5jdGlvbihtc2csIHJlYWRlcikge1xuICB3aGlsZSAocmVhZGVyLm5leHRGaWVsZCgpKSB7XG4gICAgaWYgKHJlYWRlci5pc0VuZEdyb3VwKCkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB2YXIgZmllbGQgPSByZWFkZXIuZ2V0RmllbGROdW1iZXIoKTtcbiAgICBzd2l0Y2ggKGZpZWxkKSB7XG4gICAgY2FzZSAxOlxuICAgICAgdmFyIHZhbHVlID0gbmV3IGdvb2dsZV9wcm90b2J1Zl90aW1lc3RhbXBfcGIuVGltZXN0YW1wO1xuICAgICAgcmVhZGVyLnJlYWRNZXNzYWdlKHZhbHVlLGdvb2dsZV9wcm90b2J1Zl90aW1lc3RhbXBfcGIuVGltZXN0YW1wLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcik7XG4gICAgICBtc2cuc2V0VXB0aW1lKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMjpcbiAgICAgIHZhciB2YWx1ZSA9IC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAocmVhZGVyLnJlYWREb3VibGUoKSk7XG4gICAgICBtc2cuc2V0TG9uZ2l0dWRlKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMzpcbiAgICAgIHZhciB2YWx1ZSA9IC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAocmVhZGVyLnJlYWREb3VibGUoKSk7XG4gICAgICBtc2cuc2V0TGF0aXR1ZGUodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSA0OlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtudW1iZXJ9ICovIChyZWFkZXIucmVhZERvdWJsZSgpKTtcbiAgICAgIG1zZy5zZXREaXJlY3Rpb25yYWRpYW4odmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJlYWRlci5za2lwRmllbGQoKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbXNnO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEByZXR1cm4geyFVaW50OEFycmF5fVxuICovXG5wcm90by5iYXNlLnYxLkdhbWVHcHNJbmZvLnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnkgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHdyaXRlciA9IG5ldyBqc3BiLkJpbmFyeVdyaXRlcigpO1xuICBwcm90by5iYXNlLnYxLkdhbWVHcHNJbmZvLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsIHdyaXRlcik7XG4gIHJldHVybiB3cml0ZXIuZ2V0UmVzdWx0QnVmZmVyKCk7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgZ2l2ZW4gbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZVxuICogZm9ybWF0KSwgd3JpdGluZyB0byB0aGUgZ2l2ZW4gQmluYXJ5V3JpdGVyLlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mb30gbWVzc2FnZVxuICogQHBhcmFtIHshanNwYi5CaW5hcnlXcml0ZXJ9IHdyaXRlclxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5iYXNlLnYxLkdhbWVHcHNJbmZvLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyID0gZnVuY3Rpb24obWVzc2FnZSwgd3JpdGVyKSB7XG4gIHZhciBmID0gdW5kZWZpbmVkO1xuICBmID0gbWVzc2FnZS5nZXRVcHRpbWUoKTtcbiAgaWYgKGYgIT0gbnVsbCkge1xuICAgIHdyaXRlci53cml0ZU1lc3NhZ2UoXG4gICAgICAxLFxuICAgICAgZixcbiAgICAgIGdvb2dsZV9wcm90b2J1Zl90aW1lc3RhbXBfcGIuVGltZXN0YW1wLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyXG4gICAgKTtcbiAgfVxuICBmID0gbWVzc2FnZS5nZXRMb25naXR1ZGUoKTtcbiAgaWYgKGYgIT09IDAuMCkge1xuICAgIHdyaXRlci53cml0ZURvdWJsZShcbiAgICAgIDIsXG4gICAgICBmXG4gICAgKTtcbiAgfVxuICBmID0gbWVzc2FnZS5nZXRMYXRpdHVkZSgpO1xuICBpZiAoZiAhPT0gMC4wKSB7XG4gICAgd3JpdGVyLndyaXRlRG91YmxlKFxuICAgICAgMyxcbiAgICAgIGZcbiAgICApO1xuICB9XG4gIGYgPSBtZXNzYWdlLmdldERpcmVjdGlvbnJhZGlhbigpO1xuICBpZiAoZiAhPT0gMC4wKSB7XG4gICAgd3JpdGVyLndyaXRlRG91YmxlKFxuICAgICAgNCxcbiAgICAgIGZcbiAgICApO1xuICB9XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCB1cFRpbWUgPSAxO1xuICogQHJldHVybiB7P3Byb3RvLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXB9XG4gKi9cbnByb3RvLmJhc2UudjEuR2FtZUdwc0luZm8ucHJvdG90eXBlLmdldFVwdGltZSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlez9wcm90by5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wfSAqLyAoXG4gICAganNwYi5NZXNzYWdlLmdldFdyYXBwZXJGaWVsZCh0aGlzLCBnb29nbGVfcHJvdG9idWZfdGltZXN0YW1wX3BiLlRpbWVzdGFtcCwgMSkpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7P3Byb3RvLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXB8dW5kZWZpbmVkfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuR2FtZUdwc0luZm99IHJldHVybnMgdGhpc1xuKi9cbnByb3RvLmJhc2UudjEuR2FtZUdwc0luZm8ucHJvdG90eXBlLnNldFVwdGltZSA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0V3JhcHBlckZpZWxkKHRoaXMsIDEsIHZhbHVlKTtcbn07XG5cblxuLyoqXG4gKiBDbGVhcnMgdGhlIG1lc3NhZ2UgZmllbGQgbWFraW5nIGl0IHVuZGVmaW5lZC5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkdhbWVHcHNJbmZvfSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mby5wcm90b3R5cGUuY2xlYXJVcHRpbWUgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHRoaXMuc2V0VXB0aW1lKHVuZGVmaW5lZCk7XG59O1xuXG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIHRoaXMgZmllbGQgaXMgc2V0LlxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xucHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mby5wcm90b3R5cGUuaGFzVXB0aW1lID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGQodGhpcywgMSkgIT0gbnVsbDtcbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBkb3VibGUgbG9uZ2l0dWRlID0gMjtcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xucHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mby5wcm90b3R5cGUuZ2V0TG9uZ2l0dWRlID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge251bWJlcn0gKi8gKGpzcGIuTWVzc2FnZS5nZXRGbG9hdGluZ1BvaW50RmllbGRXaXRoRGVmYXVsdCh0aGlzLCAyLCAwLjApKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkdhbWVHcHNJbmZvfSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mby5wcm90b3R5cGUuc2V0TG9uZ2l0dWRlID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNGbG9hdEZpZWxkKHRoaXMsIDIsIHZhbHVlKTtcbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBkb3VibGUgbGF0aXR1ZGUgPSAzO1xuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5wcm90by5iYXNlLnYxLkdhbWVHcHNJbmZvLnByb3RvdHlwZS5nZXRMYXRpdHVkZSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtudW1iZXJ9ICovIChqc3BiLk1lc3NhZ2UuZ2V0RmxvYXRpbmdQb2ludEZpZWxkV2l0aERlZmF1bHQodGhpcywgMywgMC4wKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mb30gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuR2FtZUdwc0luZm8ucHJvdG90eXBlLnNldExhdGl0dWRlID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNGbG9hdEZpZWxkKHRoaXMsIDMsIHZhbHVlKTtcbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBkb3VibGUgZGlyZWN0aW9uUmFkaWFuID0gNDtcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xucHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mby5wcm90b3R5cGUuZ2V0RGlyZWN0aW9ucmFkaWFuID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge251bWJlcn0gKi8gKGpzcGIuTWVzc2FnZS5nZXRGbG9hdGluZ1BvaW50RmllbGRXaXRoRGVmYXVsdCh0aGlzLCA0LCAwLjApKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkdhbWVHcHNJbmZvfSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYmFzZS52MS5HYW1lR3BzSW5mby5wcm90b3R5cGUuc2V0RGlyZWN0aW9ucmFkaWFuID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNGbG9hdEZpZWxkKHRoaXMsIDQsIHZhbHVlKTtcbn07XG5cblxuXG5cblxuaWYgKGpzcGIuTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QpIHtcbi8qKlxuICogQ3JlYXRlcyBhbiBvYmplY3QgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBwcm90by5cbiAqIEZpZWxkIG5hbWVzIHRoYXQgYXJlIHJlc2VydmVkIGluIEphdmFTY3JpcHQgYW5kIHdpbGwgYmUgcmVuYW1lZCB0byBwYl9uYW1lLlxuICogT3B0aW9uYWwgZmllbGRzIHRoYXQgYXJlIG5vdCBzZXQgd2lsbCBiZSBzZXQgdG8gdW5kZWZpbmVkLlxuICogVG8gYWNjZXNzIGEgcmVzZXJ2ZWQgZmllbGQgdXNlLCBmb28ucGJfPG5hbWU+LCBlZywgZm9vLnBiX2RlZmF1bHQuXG4gKiBGb3IgdGhlIGxpc3Qgb2YgcmVzZXJ2ZWQgbmFtZXMgcGxlYXNlIHNlZTpcbiAqICAgICBuZXQvcHJvdG8yL2NvbXBpbGVyL2pzL2ludGVybmFsL2dlbmVyYXRvci5jYyNrS2V5d29yZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbj19IG9wdF9pbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gd2hldGhlciB0byBpbmNsdWRlIHRoZVxuICogICAgIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICovXG5wcm90by5iYXNlLnYxLlNpZ25JblJlcGx5LnByb3RvdHlwZS50b09iamVjdCA9IGZ1bmN0aW9uKG9wdF9pbmNsdWRlSW5zdGFuY2UpIHtcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuU2lnbkluUmVwbHkudG9PYmplY3Qob3B0X2luY2x1ZGVJbnN0YW5jZSwgdGhpcyk7XG59O1xuXG5cbi8qKlxuICogU3RhdGljIHZlcnNpb24gb2YgdGhlIHtAc2VlIHRvT2JqZWN0fSBtZXRob2QuXG4gKiBAcGFyYW0ge2Jvb2xlYW58dW5kZWZpbmVkfSBpbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gV2hldGhlciB0byBpbmNsdWRlXG4gKiAgICAgdGhlIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLlNpZ25JblJlcGx5fSBtc2cgVGhlIG1zZyBpbnN0YW5jZSB0byB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5iYXNlLnYxLlNpZ25JblJlcGx5LnRvT2JqZWN0ID0gZnVuY3Rpb24oaW5jbHVkZUluc3RhbmNlLCBtc2cpIHtcbiAgdmFyIGYsIG9iaiA9IHtcbiAgICB0b2tlbjoganNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQobXNnLCAxLCBcIlwiKVxuICB9O1xuXG4gIGlmIChpbmNsdWRlSW5zdGFuY2UpIHtcbiAgICBvYmouJGpzcGJNZXNzYWdlSW5zdGFuY2UgPSBtc2c7XG4gIH1cbiAgcmV0dXJuIG9iajtcbn07XG59XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEBwYXJhbSB7anNwYi5CeXRlU291cmNlfSBieXRlcyBUaGUgYnl0ZXMgdG8gZGVzZXJpYWxpemUuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5TaWduSW5SZXBseX1cbiAqL1xucHJvdG8uYmFzZS52MS5TaWduSW5SZXBseS5kZXNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcganNwYi5CaW5hcnlSZWFkZXIoYnl0ZXMpO1xuICB2YXIgbXNnID0gbmV3IHByb3RvLmJhc2UudjEuU2lnbkluUmVwbHk7XG4gIHJldHVybiBwcm90by5iYXNlLnYxLlNpZ25JblJlcGx5LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihtc2csIHJlYWRlcik7XG59O1xuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkgZnJvbSB0aGVcbiAqIGdpdmVuIHJlYWRlciBpbnRvIHRoZSBnaXZlbiBtZXNzYWdlIG9iamVjdC5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuU2lnbkluUmVwbHl9IG1zZyBUaGUgbWVzc2FnZSBvYmplY3QgdG8gZGVzZXJpYWxpemUgaW50by5cbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5UmVhZGVyfSByZWFkZXIgVGhlIEJpbmFyeVJlYWRlciB0byB1c2UuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5TaWduSW5SZXBseX1cbiAqL1xucHJvdG8uYmFzZS52MS5TaWduSW5SZXBseS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIgPSBmdW5jdGlvbihtc2csIHJlYWRlcikge1xuICB3aGlsZSAocmVhZGVyLm5leHRGaWVsZCgpKSB7XG4gICAgaWYgKHJlYWRlci5pc0VuZEdyb3VwKCkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB2YXIgZmllbGQgPSByZWFkZXIuZ2V0RmllbGROdW1iZXIoKTtcbiAgICBzd2l0Y2ggKGZpZWxkKSB7XG4gICAgY2FzZSAxOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChyZWFkZXIucmVhZFN0cmluZygpKTtcbiAgICAgIG1zZy5zZXRUb2tlbih2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgcmVhZGVyLnNraXBGaWVsZCgpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBtc2c7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHJldHVybiB7IVVpbnQ4QXJyYXl9XG4gKi9cbnByb3RvLmJhc2UudjEuU2lnbkluUmVwbHkucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgd3JpdGVyID0gbmV3IGpzcGIuQmluYXJ5V3JpdGVyKCk7XG4gIHByb3RvLmJhc2UudjEuU2lnbkluUmVwbHkuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlXG4gKiBmb3JtYXQpLCB3cml0aW5nIHRvIHRoZSBnaXZlbiBCaW5hcnlXcml0ZXIuXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLlNpZ25JblJlcGx5fSBtZXNzYWdlXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVdyaXRlcn0gd3JpdGVyXG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuU2lnbkluUmVwbHkuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIgPSBmdW5jdGlvbihtZXNzYWdlLCB3cml0ZXIpIHtcbiAgdmFyIGYgPSB1bmRlZmluZWQ7XG4gIGYgPSBtZXNzYWdlLmdldFRva2VuKCk7XG4gIGlmIChmLmxlbmd0aCA+IDApIHtcbiAgICB3cml0ZXIud3JpdGVTdHJpbmcoXG4gICAgICAxLFxuICAgICAgZlxuICAgICk7XG4gIH1cbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBzdHJpbmcgdG9rZW4gPSAxO1xuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5wcm90by5iYXNlLnYxLlNpZ25JblJlcGx5LnByb3RvdHlwZS5nZXRUb2tlbiA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLCAxLCBcIlwiKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5TaWduSW5SZXBseX0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuU2lnbkluUmVwbHkucHJvdG90eXBlLnNldFRva2VuID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNTdHJpbmdGaWVsZCh0aGlzLCAxLCB2YWx1ZSk7XG59O1xuXG5cblxuXG5cbmlmIChqc3BiLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUKSB7XG4vKipcbiAqIENyZWF0ZXMgYW4gb2JqZWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgcHJvdG8uXG4gKiBGaWVsZCBuYW1lcyB0aGF0IGFyZSByZXNlcnZlZCBpbiBKYXZhU2NyaXB0IGFuZCB3aWxsIGJlIHJlbmFtZWQgdG8gcGJfbmFtZS5cbiAqIE9wdGlvbmFsIGZpZWxkcyB0aGF0IGFyZSBub3Qgc2V0IHdpbGwgYmUgc2V0IHRvIHVuZGVmaW5lZC5cbiAqIFRvIGFjY2VzcyBhIHJlc2VydmVkIGZpZWxkIHVzZSwgZm9vLnBiXzxuYW1lPiwgZWcsIGZvby5wYl9kZWZhdWx0LlxuICogRm9yIHRoZSBsaXN0IG9mIHJlc2VydmVkIG5hbWVzIHBsZWFzZSBzZWU6XG4gKiAgICAgbmV0L3Byb3RvMi9jb21waWxlci9qcy9pbnRlcm5hbC9nZW5lcmF0b3IuY2Mja0tleXdvcmQuXG4gKiBAcGFyYW0ge2Jvb2xlYW49fSBvcHRfaW5jbHVkZUluc3RhbmNlIERlcHJlY2F0ZWQuIHdoZXRoZXIgdG8gaW5jbHVkZSB0aGVcbiAqICAgICBKU1BCIGluc3RhbmNlIGZvciB0cmFuc2l0aW9uYWwgc295IHByb3RvIHN1cHBvcnQ6XG4gKiAgICAgaHR0cDovL2dvdG8vc295LXBhcmFtLW1pZ3JhdGlvblxuICogQHJldHVybiB7IU9iamVjdH1cbiAqL1xucHJvdG8uYmFzZS52MS5NYXBSb3V0ZS5wcm90b3R5cGUudG9PYmplY3QgPSBmdW5jdGlvbihvcHRfaW5jbHVkZUluc3RhbmNlKSB7XG4gIHJldHVybiBwcm90by5iYXNlLnYxLk1hcFJvdXRlLnRvT2JqZWN0KG9wdF9pbmNsdWRlSW5zdGFuY2UsIHRoaXMpO1xufTtcblxuXG4vKipcbiAqIFN0YXRpYyB2ZXJzaW9uIG9mIHRoZSB7QHNlZSB0b09iamVjdH0gbWV0aG9kLlxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gaW5jbHVkZUluc3RhbmNlIERlcHJlY2F0ZWQuIFdoZXRoZXIgdG8gaW5jbHVkZVxuICogICAgIHRoZSBKU1BCIGluc3RhbmNlIGZvciB0cmFuc2l0aW9uYWwgc295IHByb3RvIHN1cHBvcnQ6XG4gKiAgICAgaHR0cDovL2dvdG8vc295LXBhcmFtLW1pZ3JhdGlvblxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5NYXBSb3V0ZX0gbXNnIFRoZSBtc2cgaW5zdGFuY2UgdG8gdHJhbnNmb3JtLlxuICogQHJldHVybiB7IU9iamVjdH1cbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYmFzZS52MS5NYXBSb3V0ZS50b09iamVjdCA9IGZ1bmN0aW9uKGluY2x1ZGVJbnN0YW5jZSwgbXNnKSB7XG4gIHZhciBmLCBvYmogPSB7XG4gICAgaWQ6IGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KG1zZywgMSwgMCksXG4gICAgbmFtZToganNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQobXNnLCAyLCBcIlwiKSxcbiAgICBpbWFnZTogKGYgPSBtc2cuZ2V0SW1hZ2UoKSkgJiYgcHJvdG8uYmFzZS52MS5OZXRJbWFnZS50b09iamVjdChpbmNsdWRlSW5zdGFuY2UsIGYpXG4gIH07XG5cbiAgaWYgKGluY2x1ZGVJbnN0YW5jZSkge1xuICAgIG9iai4kanNwYk1lc3NhZ2VJbnN0YW5jZSA9IG1zZztcbiAgfVxuICByZXR1cm4gb2JqO1xufTtcbn1cblxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHBhcmFtIHtqc3BiLkJ5dGVTb3VyY2V9IGJ5dGVzIFRoZSBieXRlcyB0byBkZXNlcmlhbGl6ZS5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLk1hcFJvdXRlfVxuICovXG5wcm90by5iYXNlLnYxLk1hcFJvdXRlLmRlc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oYnl0ZXMpIHtcbiAgdmFyIHJlYWRlciA9IG5ldyBqc3BiLkJpbmFyeVJlYWRlcihieXRlcyk7XG4gIHZhciBtc2cgPSBuZXcgcHJvdG8uYmFzZS52MS5NYXBSb3V0ZTtcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuTWFwUm91dGUuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG1zZywgcmVhZGVyKTtcbn07XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KSBmcm9tIHRoZVxuICogZ2l2ZW4gcmVhZGVyIGludG8gdGhlIGdpdmVuIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5NYXBSb3V0ZX0gbXNnIFRoZSBtZXNzYWdlIG9iamVjdCB0byBkZXNlcmlhbGl6ZSBpbnRvLlxuICogQHBhcmFtIHshanNwYi5CaW5hcnlSZWFkZXJ9IHJlYWRlciBUaGUgQmluYXJ5UmVhZGVyIHRvIHVzZS5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLk1hcFJvdXRlfVxuICovXG5wcm90by5iYXNlLnYxLk1hcFJvdXRlLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciA9IGZ1bmN0aW9uKG1zZywgcmVhZGVyKSB7XG4gIHdoaWxlIChyZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICBpZiAocmVhZGVyLmlzRW5kR3JvdXAoKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBmaWVsZCA9IHJlYWRlci5nZXRGaWVsZE51bWJlcigpO1xuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICBjYXNlIDE6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge251bWJlcn0gKi8gKHJlYWRlci5yZWFkSW50NjQoKSk7XG4gICAgICBtc2cuc2V0SWQodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAyOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChyZWFkZXIucmVhZFN0cmluZygpKTtcbiAgICAgIG1zZy5zZXROYW1lKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMzpcbiAgICAgIHZhciB2YWx1ZSA9IG5ldyBwcm90by5iYXNlLnYxLk5ldEltYWdlO1xuICAgICAgcmVhZGVyLnJlYWRNZXNzYWdlKHZhbHVlLHByb3RvLmJhc2UudjEuTmV0SW1hZ2UuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKTtcbiAgICAgIG1zZy5zZXRJbWFnZSh2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgcmVhZGVyLnNraXBGaWVsZCgpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBtc2c7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHJldHVybiB7IVVpbnQ4QXJyYXl9XG4gKi9cbnByb3RvLmJhc2UudjEuTWFwUm91dGUucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgd3JpdGVyID0gbmV3IGpzcGIuQmluYXJ5V3JpdGVyKCk7XG4gIHByb3RvLmJhc2UudjEuTWFwUm91dGUuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlXG4gKiBmb3JtYXQpLCB3cml0aW5nIHRvIHRoZSBnaXZlbiBCaW5hcnlXcml0ZXIuXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLk1hcFJvdXRlfSBtZXNzYWdlXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVdyaXRlcn0gd3JpdGVyXG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuTWFwUm91dGUuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIgPSBmdW5jdGlvbihtZXNzYWdlLCB3cml0ZXIpIHtcbiAgdmFyIGYgPSB1bmRlZmluZWQ7XG4gIGYgPSBtZXNzYWdlLmdldElkKCk7XG4gIGlmIChmICE9PSAwKSB7XG4gICAgd3JpdGVyLndyaXRlSW50NjQoXG4gICAgICAxLFxuICAgICAgZlxuICAgICk7XG4gIH1cbiAgZiA9IG1lc3NhZ2UuZ2V0TmFtZSgpO1xuICBpZiAoZi5sZW5ndGggPiAwKSB7XG4gICAgd3JpdGVyLndyaXRlU3RyaW5nKFxuICAgICAgMixcbiAgICAgIGZcbiAgICApO1xuICB9XG4gIGYgPSBtZXNzYWdlLmdldEltYWdlKCk7XG4gIGlmIChmICE9IG51bGwpIHtcbiAgICB3cml0ZXIud3JpdGVNZXNzYWdlKFxuICAgICAgMyxcbiAgICAgIGYsXG4gICAgICBwcm90by5iYXNlLnYxLk5ldEltYWdlLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyXG4gICAgKTtcbiAgfVxufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGludDY0IGlkID0gMTtcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xucHJvdG8uYmFzZS52MS5NYXBSb3V0ZS5wcm90b3R5cGUuZ2V0SWQgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAoanNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywgMSwgMCkpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuTWFwUm91dGV9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5iYXNlLnYxLk1hcFJvdXRlLnByb3RvdHlwZS5zZXRJZCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywgMSwgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIHN0cmluZyBuYW1lID0gMjtcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xucHJvdG8uYmFzZS52MS5NYXBSb3V0ZS5wcm90b3R5cGUuZ2V0TmFtZSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLCAyLCBcIlwiKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5NYXBSb3V0ZX0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuTWFwUm91dGUucHJvdG90eXBlLnNldE5hbWUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLnNldFByb3RvM1N0cmluZ0ZpZWxkKHRoaXMsIDIsIHZhbHVlKTtcbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBOZXRJbWFnZSBpbWFnZSA9IDM7XG4gKiBAcmV0dXJuIHs/cHJvdG8uYmFzZS52MS5OZXRJbWFnZX1cbiAqL1xucHJvdG8uYmFzZS52MS5NYXBSb3V0ZS5wcm90b3R5cGUuZ2V0SW1hZ2UgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZXs/cHJvdG8uYmFzZS52MS5OZXRJbWFnZX0gKi8gKFxuICAgIGpzcGIuTWVzc2FnZS5nZXRXcmFwcGVyRmllbGQodGhpcywgcHJvdG8uYmFzZS52MS5OZXRJbWFnZSwgMykpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7P3Byb3RvLmJhc2UudjEuTmV0SW1hZ2V8dW5kZWZpbmVkfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuTWFwUm91dGV9IHJldHVybnMgdGhpc1xuKi9cbnByb3RvLmJhc2UudjEuTWFwUm91dGUucHJvdG90eXBlLnNldEltYWdlID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRXcmFwcGVyRmllbGQodGhpcywgMywgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIENsZWFycyB0aGUgbWVzc2FnZSBmaWVsZCBtYWtpbmcgaXQgdW5kZWZpbmVkLlxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuTWFwUm91dGV9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5iYXNlLnYxLk1hcFJvdXRlLnByb3RvdHlwZS5jbGVhckltYWdlID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB0aGlzLnNldEltYWdlKHVuZGVmaW5lZCk7XG59O1xuXG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIHRoaXMgZmllbGQgaXMgc2V0LlxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xucHJvdG8uYmFzZS52MS5NYXBSb3V0ZS5wcm90b3R5cGUuaGFzSW1hZ2UgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5nZXRGaWVsZCh0aGlzLCAzKSAhPSBudWxsO1xufTtcblxuXG5cblxuXG5pZiAoanNwYi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCkge1xuLyoqXG4gKiBDcmVhdGVzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHByb3RvLlxuICogRmllbGQgbmFtZXMgdGhhdCBhcmUgcmVzZXJ2ZWQgaW4gSmF2YVNjcmlwdCBhbmQgd2lsbCBiZSByZW5hbWVkIHRvIHBiX25hbWUuXG4gKiBPcHRpb25hbCBmaWVsZHMgdGhhdCBhcmUgbm90IHNldCB3aWxsIGJlIHNldCB0byB1bmRlZmluZWQuXG4gKiBUbyBhY2Nlc3MgYSByZXNlcnZlZCBmaWVsZCB1c2UsIGZvby5wYl88bmFtZT4sIGVnLCBmb28ucGJfZGVmYXVsdC5cbiAqIEZvciB0aGUgbGlzdCBvZiByZXNlcnZlZCBuYW1lcyBwbGVhc2Ugc2VlOlxuICogICAgIG5ldC9wcm90bzIvY29tcGlsZXIvanMvaW50ZXJuYWwvZ2VuZXJhdG9yLmNjI2tLZXl3b3JkLlxuICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2luY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiB3aGV0aGVyIHRvIGluY2x1ZGUgdGhlXG4gKiAgICAgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKi9cbnByb3RvLmJhc2UudjEuUmVnaW9uLnByb3RvdHlwZS50b09iamVjdCA9IGZ1bmN0aW9uKG9wdF9pbmNsdWRlSW5zdGFuY2UpIHtcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuUmVnaW9uLnRvT2JqZWN0KG9wdF9pbmNsdWRlSW5zdGFuY2UsIHRoaXMpO1xufTtcblxuXG4vKipcbiAqIFN0YXRpYyB2ZXJzaW9uIG9mIHRoZSB7QHNlZSB0b09iamVjdH0gbWV0aG9kLlxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gaW5jbHVkZUluc3RhbmNlIERlcHJlY2F0ZWQuIFdoZXRoZXIgdG8gaW5jbHVkZVxuICogICAgIHRoZSBKU1BCIGluc3RhbmNlIGZvciB0cmFuc2l0aW9uYWwgc295IHByb3RvIHN1cHBvcnQ6XG4gKiAgICAgaHR0cDovL2dvdG8vc295LXBhcmFtLW1pZ3JhdGlvblxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5SZWdpb259IG1zZyBUaGUgbXNnIGluc3RhbmNlIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuUmVnaW9uLnRvT2JqZWN0ID0gZnVuY3Rpb24oaW5jbHVkZUluc3RhbmNlLCBtc2cpIHtcbiAgdmFyIGYsIG9iaiA9IHtcbiAgICBjb2RlOiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdChtc2csIDEsIFwiXCIpLFxuICAgIG5hbWU6IGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KG1zZywgMiwgXCJcIilcbiAgfTtcblxuICBpZiAoaW5jbHVkZUluc3RhbmNlKSB7XG4gICAgb2JqLiRqc3BiTWVzc2FnZUluc3RhbmNlID0gbXNnO1xuICB9XG4gIHJldHVybiBvYmo7XG59O1xufVxuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcGFyYW0ge2pzcGIuQnl0ZVNvdXJjZX0gYnl0ZXMgVGhlIGJ5dGVzIHRvIGRlc2VyaWFsaXplLlxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuUmVnaW9ufVxuICovXG5wcm90by5iYXNlLnYxLlJlZ2lvbi5kZXNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcganNwYi5CaW5hcnlSZWFkZXIoYnl0ZXMpO1xuICB2YXIgbXNnID0gbmV3IHByb3RvLmJhc2UudjEuUmVnaW9uO1xuICByZXR1cm4gcHJvdG8uYmFzZS52MS5SZWdpb24uZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG1zZywgcmVhZGVyKTtcbn07XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KSBmcm9tIHRoZVxuICogZ2l2ZW4gcmVhZGVyIGludG8gdGhlIGdpdmVuIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5SZWdpb259IG1zZyBUaGUgbWVzc2FnZSBvYmplY3QgdG8gZGVzZXJpYWxpemUgaW50by5cbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5UmVhZGVyfSByZWFkZXIgVGhlIEJpbmFyeVJlYWRlciB0byB1c2UuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5SZWdpb259XG4gKi9cbnByb3RvLmJhc2UudjEuUmVnaW9uLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciA9IGZ1bmN0aW9uKG1zZywgcmVhZGVyKSB7XG4gIHdoaWxlIChyZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICBpZiAocmVhZGVyLmlzRW5kR3JvdXAoKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBmaWVsZCA9IHJlYWRlci5nZXRGaWVsZE51bWJlcigpO1xuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICBjYXNlIDE6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge3N0cmluZ30gKi8gKHJlYWRlci5yZWFkU3RyaW5nKCkpO1xuICAgICAgbXNnLnNldENvZGUodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAyOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChyZWFkZXIucmVhZFN0cmluZygpKTtcbiAgICAgIG1zZy5zZXROYW1lKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZWFkZXIuc2tpcEZpZWxkKCk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1zZztcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcmV0dXJuIHshVWludDhBcnJheX1cbiAqL1xucHJvdG8uYmFzZS52MS5SZWdpb24ucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgd3JpdGVyID0gbmV3IGpzcGIuQmluYXJ5V3JpdGVyKCk7XG4gIHByb3RvLmJhc2UudjEuUmVnaW9uLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsIHdyaXRlcik7XG4gIHJldHVybiB3cml0ZXIuZ2V0UmVzdWx0QnVmZmVyKCk7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgZ2l2ZW4gbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZVxuICogZm9ybWF0KSwgd3JpdGluZyB0byB0aGUgZ2l2ZW4gQmluYXJ5V3JpdGVyLlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5SZWdpb259IG1lc3NhZ2VcbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5V3JpdGVyfSB3cml0ZXJcbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYmFzZS52MS5SZWdpb24uc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIgPSBmdW5jdGlvbihtZXNzYWdlLCB3cml0ZXIpIHtcbiAgdmFyIGYgPSB1bmRlZmluZWQ7XG4gIGYgPSBtZXNzYWdlLmdldENvZGUoKTtcbiAgaWYgKGYubGVuZ3RoID4gMCkge1xuICAgIHdyaXRlci53cml0ZVN0cmluZyhcbiAgICAgIDEsXG4gICAgICBmXG4gICAgKTtcbiAgfVxuICBmID0gbWVzc2FnZS5nZXROYW1lKCk7XG4gIGlmIChmLmxlbmd0aCA+IDApIHtcbiAgICB3cml0ZXIud3JpdGVTdHJpbmcoXG4gICAgICAyLFxuICAgICAgZlxuICAgICk7XG4gIH1cbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBzdHJpbmcgY29kZSA9IDE7XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbnByb3RvLmJhc2UudjEuUmVnaW9uLnByb3RvdHlwZS5nZXRDb2RlID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge3N0cmluZ30gKi8gKGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsIDEsIFwiXCIpKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLlJlZ2lvbn0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuUmVnaW9uLnByb3RvdHlwZS5zZXRDb2RlID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNTdHJpbmdGaWVsZCh0aGlzLCAxLCB2YWx1ZSk7XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgc3RyaW5nIG5hbWUgPSAyO1xuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5wcm90by5iYXNlLnYxLlJlZ2lvbi5wcm90b3R5cGUuZ2V0TmFtZSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLCAyLCBcIlwiKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5SZWdpb259IHJldHVybnMgdGhpc1xuICovXG5wcm90by5iYXNlLnYxLlJlZ2lvbi5wcm90b3R5cGUuc2V0TmFtZSA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zU3RyaW5nRmllbGQodGhpcywgMiwgdmFsdWUpO1xufTtcblxuXG5cblxuXG5pZiAoanNwYi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCkge1xuLyoqXG4gKiBDcmVhdGVzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHByb3RvLlxuICogRmllbGQgbmFtZXMgdGhhdCBhcmUgcmVzZXJ2ZWQgaW4gSmF2YVNjcmlwdCBhbmQgd2lsbCBiZSByZW5hbWVkIHRvIHBiX25hbWUuXG4gKiBPcHRpb25hbCBmaWVsZHMgdGhhdCBhcmUgbm90IHNldCB3aWxsIGJlIHNldCB0byB1bmRlZmluZWQuXG4gKiBUbyBhY2Nlc3MgYSByZXNlcnZlZCBmaWVsZCB1c2UsIGZvby5wYl88bmFtZT4sIGVnLCBmb28ucGJfZGVmYXVsdC5cbiAqIEZvciB0aGUgbGlzdCBvZiByZXNlcnZlZCBuYW1lcyBwbGVhc2Ugc2VlOlxuICogICAgIG5ldC9wcm90bzIvY29tcGlsZXIvanMvaW50ZXJuYWwvZ2VuZXJhdG9yLmNjI2tLZXl3b3JkLlxuICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2luY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiB3aGV0aGVyIHRvIGluY2x1ZGUgdGhlXG4gKiAgICAgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKi9cbnByb3RvLmJhc2UudjEuU2hvcExpc3QucHJvdG90eXBlLnRvT2JqZWN0ID0gZnVuY3Rpb24ob3B0X2luY2x1ZGVJbnN0YW5jZSkge1xuICByZXR1cm4gcHJvdG8uYmFzZS52MS5TaG9wTGlzdC50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuU2hvcExpc3R9IG1zZyBUaGUgbXNnIGluc3RhbmNlIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuU2hvcExpc3QudG9PYmplY3QgPSBmdW5jdGlvbihpbmNsdWRlSW5zdGFuY2UsIG1zZykge1xuICB2YXIgZiwgb2JqID0ge1xuICAgIHNob3BpZDoganNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQobXNnLCAxLCAwKSxcbiAgICBuYW1lOiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdChtc2csIDIsIFwiXCIpXG4gIH07XG5cbiAgaWYgKGluY2x1ZGVJbnN0YW5jZSkge1xuICAgIG9iai4kanNwYk1lc3NhZ2VJbnN0YW5jZSA9IG1zZztcbiAgfVxuICByZXR1cm4gb2JqO1xufTtcbn1cblxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHBhcmFtIHtqc3BiLkJ5dGVTb3VyY2V9IGJ5dGVzIFRoZSBieXRlcyB0byBkZXNlcmlhbGl6ZS5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLlNob3BMaXN0fVxuICovXG5wcm90by5iYXNlLnYxLlNob3BMaXN0LmRlc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oYnl0ZXMpIHtcbiAgdmFyIHJlYWRlciA9IG5ldyBqc3BiLkJpbmFyeVJlYWRlcihieXRlcyk7XG4gIHZhciBtc2cgPSBuZXcgcHJvdG8uYmFzZS52MS5TaG9wTGlzdDtcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuU2hvcExpc3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG1zZywgcmVhZGVyKTtcbn07XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KSBmcm9tIHRoZVxuICogZ2l2ZW4gcmVhZGVyIGludG8gdGhlIGdpdmVuIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5TaG9wTGlzdH0gbXNnIFRoZSBtZXNzYWdlIG9iamVjdCB0byBkZXNlcmlhbGl6ZSBpbnRvLlxuICogQHBhcmFtIHshanNwYi5CaW5hcnlSZWFkZXJ9IHJlYWRlciBUaGUgQmluYXJ5UmVhZGVyIHRvIHVzZS5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLlNob3BMaXN0fVxuICovXG5wcm90by5iYXNlLnYxLlNob3BMaXN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciA9IGZ1bmN0aW9uKG1zZywgcmVhZGVyKSB7XG4gIHdoaWxlIChyZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICBpZiAocmVhZGVyLmlzRW5kR3JvdXAoKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBmaWVsZCA9IHJlYWRlci5nZXRGaWVsZE51bWJlcigpO1xuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICBjYXNlIDE6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge251bWJlcn0gKi8gKHJlYWRlci5yZWFkSW50MzIoKSk7XG4gICAgICBtc2cuc2V0U2hvcGlkKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMjpcbiAgICAgIHZhciB2YWx1ZSA9IC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAocmVhZGVyLnJlYWRTdHJpbmcoKSk7XG4gICAgICBtc2cuc2V0TmFtZSh2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgcmVhZGVyLnNraXBGaWVsZCgpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBtc2c7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHJldHVybiB7IVVpbnQ4QXJyYXl9XG4gKi9cbnByb3RvLmJhc2UudjEuU2hvcExpc3QucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgd3JpdGVyID0gbmV3IGpzcGIuQmluYXJ5V3JpdGVyKCk7XG4gIHByb3RvLmJhc2UudjEuU2hvcExpc3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlXG4gKiBmb3JtYXQpLCB3cml0aW5nIHRvIHRoZSBnaXZlbiBCaW5hcnlXcml0ZXIuXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLlNob3BMaXN0fSBtZXNzYWdlXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVdyaXRlcn0gd3JpdGVyXG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuU2hvcExpc3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIgPSBmdW5jdGlvbihtZXNzYWdlLCB3cml0ZXIpIHtcbiAgdmFyIGYgPSB1bmRlZmluZWQ7XG4gIGYgPSBtZXNzYWdlLmdldFNob3BpZCgpO1xuICBpZiAoZiAhPT0gMCkge1xuICAgIHdyaXRlci53cml0ZUludDMyKFxuICAgICAgMSxcbiAgICAgIGZcbiAgICApO1xuICB9XG4gIGYgPSBtZXNzYWdlLmdldE5hbWUoKTtcbiAgaWYgKGYubGVuZ3RoID4gMCkge1xuICAgIHdyaXRlci53cml0ZVN0cmluZyhcbiAgICAgIDIsXG4gICAgICBmXG4gICAgKTtcbiAgfVxufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGludDMyIHNob3BJZCA9IDE7XG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbnByb3RvLmJhc2UudjEuU2hvcExpc3QucHJvdG90eXBlLmdldFNob3BpZCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtudW1iZXJ9ICovIChqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLCAxLCAwKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5TaG9wTGlzdH0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuU2hvcExpc3QucHJvdG90eXBlLnNldFNob3BpZCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywgMSwgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIHN0cmluZyBuYW1lID0gMjtcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xucHJvdG8uYmFzZS52MS5TaG9wTGlzdC5wcm90b3R5cGUuZ2V0TmFtZSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLCAyLCBcIlwiKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5TaG9wTGlzdH0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuU2hvcExpc3QucHJvdG90eXBlLnNldE5hbWUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLnNldFByb3RvM1N0cmluZ0ZpZWxkKHRoaXMsIDIsIHZhbHVlKTtcbn07XG5cblxuXG5cblxuaWYgKGpzcGIuTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QpIHtcbi8qKlxuICogQ3JlYXRlcyBhbiBvYmplY3QgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBwcm90by5cbiAqIEZpZWxkIG5hbWVzIHRoYXQgYXJlIHJlc2VydmVkIGluIEphdmFTY3JpcHQgYW5kIHdpbGwgYmUgcmVuYW1lZCB0byBwYl9uYW1lLlxuICogT3B0aW9uYWwgZmllbGRzIHRoYXQgYXJlIG5vdCBzZXQgd2lsbCBiZSBzZXQgdG8gdW5kZWZpbmVkLlxuICogVG8gYWNjZXNzIGEgcmVzZXJ2ZWQgZmllbGQgdXNlLCBmb28ucGJfPG5hbWU+LCBlZywgZm9vLnBiX2RlZmF1bHQuXG4gKiBGb3IgdGhlIGxpc3Qgb2YgcmVzZXJ2ZWQgbmFtZXMgcGxlYXNlIHNlZTpcbiAqICAgICBuZXQvcHJvdG8yL2NvbXBpbGVyL2pzL2ludGVybmFsL2dlbmVyYXRvci5jYyNrS2V5d29yZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbj19IG9wdF9pbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gd2hldGhlciB0byBpbmNsdWRlIHRoZVxuICogICAgIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xJbmZvTGlzdC5wcm90b3R5cGUudG9PYmplY3QgPSBmdW5jdGlvbihvcHRfaW5jbHVkZUluc3RhbmNlKSB7XG4gIHJldHVybiBwcm90by5iYXNlLnYxLkNvbnRyb2xJbmZvTGlzdC50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuQ29udHJvbEluZm9MaXN0fSBtc2cgVGhlIG1zZyBpbnN0YW5jZSB0byB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xJbmZvTGlzdC50b09iamVjdCA9IGZ1bmN0aW9uKGluY2x1ZGVJbnN0YW5jZSwgbXNnKSB7XG4gIHZhciBmLCBvYmogPSB7XG4gICAgY2lpZDoganNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQobXNnLCAxLCAwKSxcbiAgICBjaWNvZGU6IGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KG1zZywgMiwgXCJcIilcbiAgfTtcblxuICBpZiAoaW5jbHVkZUluc3RhbmNlKSB7XG4gICAgb2JqLiRqc3BiTWVzc2FnZUluc3RhbmNlID0gbXNnO1xuICB9XG4gIHJldHVybiBvYmo7XG59O1xufVxuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcGFyYW0ge2pzcGIuQnl0ZVNvdXJjZX0gYnl0ZXMgVGhlIGJ5dGVzIHRvIGRlc2VyaWFsaXplLlxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuQ29udHJvbEluZm9MaXN0fVxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xJbmZvTGlzdC5kZXNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcganNwYi5CaW5hcnlSZWFkZXIoYnl0ZXMpO1xuICB2YXIgbXNnID0gbmV3IHByb3RvLmJhc2UudjEuQ29udHJvbEluZm9MaXN0O1xuICByZXR1cm4gcHJvdG8uYmFzZS52MS5Db250cm9sSW5mb0xpc3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG1zZywgcmVhZGVyKTtcbn07XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KSBmcm9tIHRoZVxuICogZ2l2ZW4gcmVhZGVyIGludG8gdGhlIGdpdmVuIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5Db250cm9sSW5mb0xpc3R9IG1zZyBUaGUgbWVzc2FnZSBvYmplY3QgdG8gZGVzZXJpYWxpemUgaW50by5cbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5UmVhZGVyfSByZWFkZXIgVGhlIEJpbmFyeVJlYWRlciB0byB1c2UuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5Db250cm9sSW5mb0xpc3R9XG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbEluZm9MaXN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciA9IGZ1bmN0aW9uKG1zZywgcmVhZGVyKSB7XG4gIHdoaWxlIChyZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICBpZiAocmVhZGVyLmlzRW5kR3JvdXAoKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBmaWVsZCA9IHJlYWRlci5nZXRGaWVsZE51bWJlcigpO1xuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICBjYXNlIDE6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge251bWJlcn0gKi8gKHJlYWRlci5yZWFkSW50MzIoKSk7XG4gICAgICBtc2cuc2V0Q2lpZCh2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDI6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge3N0cmluZ30gKi8gKHJlYWRlci5yZWFkU3RyaW5nKCkpO1xuICAgICAgbXNnLnNldENpY29kZSh2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgcmVhZGVyLnNraXBGaWVsZCgpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBtc2c7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHJldHVybiB7IVVpbnQ4QXJyYXl9XG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbEluZm9MaXN0LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnkgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHdyaXRlciA9IG5ldyBqc3BiLkJpbmFyeVdyaXRlcigpO1xuICBwcm90by5iYXNlLnYxLkNvbnRyb2xJbmZvTGlzdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLCB3cml0ZXIpO1xuICByZXR1cm4gd3JpdGVyLmdldFJlc3VsdEJ1ZmZlcigpO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIGdpdmVuIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmVcbiAqIGZvcm1hdCksIHdyaXRpbmcgdG8gdGhlIGdpdmVuIEJpbmFyeVdyaXRlci5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuQ29udHJvbEluZm9MaXN0fSBtZXNzYWdlXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVdyaXRlcn0gd3JpdGVyXG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbEluZm9MaXN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyID0gZnVuY3Rpb24obWVzc2FnZSwgd3JpdGVyKSB7XG4gIHZhciBmID0gdW5kZWZpbmVkO1xuICBmID0gbWVzc2FnZS5nZXRDaWlkKCk7XG4gIGlmIChmICE9PSAwKSB7XG4gICAgd3JpdGVyLndyaXRlSW50MzIoXG4gICAgICAxLFxuICAgICAgZlxuICAgICk7XG4gIH1cbiAgZiA9IG1lc3NhZ2UuZ2V0Q2ljb2RlKCk7XG4gIGlmIChmLmxlbmd0aCA+IDApIHtcbiAgICB3cml0ZXIud3JpdGVTdHJpbmcoXG4gICAgICAyLFxuICAgICAgZlxuICAgICk7XG4gIH1cbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBpbnQzMiBjaUlkID0gMTtcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sSW5mb0xpc3QucHJvdG90eXBlLmdldENpaWQgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAoanNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywgMSwgMCkpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuQ29udHJvbEluZm9MaXN0fSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sSW5mb0xpc3QucHJvdG90eXBlLnNldENpaWQgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsIDEsIHZhbHVlKTtcbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBzdHJpbmcgY2lDb2RlID0gMjtcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sSW5mb0xpc3QucHJvdG90eXBlLmdldENpY29kZSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLCAyLCBcIlwiKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5Db250cm9sSW5mb0xpc3R9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xJbmZvTGlzdC5wcm90b3R5cGUuc2V0Q2ljb2RlID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNTdHJpbmdGaWVsZCh0aGlzLCAyLCB2YWx1ZSk7XG59O1xuXG5cblxuXG5cbmlmIChqc3BiLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUKSB7XG4vKipcbiAqIENyZWF0ZXMgYW4gb2JqZWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgcHJvdG8uXG4gKiBGaWVsZCBuYW1lcyB0aGF0IGFyZSByZXNlcnZlZCBpbiBKYXZhU2NyaXB0IGFuZCB3aWxsIGJlIHJlbmFtZWQgdG8gcGJfbmFtZS5cbiAqIE9wdGlvbmFsIGZpZWxkcyB0aGF0IGFyZSBub3Qgc2V0IHdpbGwgYmUgc2V0IHRvIHVuZGVmaW5lZC5cbiAqIFRvIGFjY2VzcyBhIHJlc2VydmVkIGZpZWxkIHVzZSwgZm9vLnBiXzxuYW1lPiwgZWcsIGZvby5wYl9kZWZhdWx0LlxuICogRm9yIHRoZSBsaXN0IG9mIHJlc2VydmVkIG5hbWVzIHBsZWFzZSBzZWU6XG4gKiAgICAgbmV0L3Byb3RvMi9jb21waWxlci9qcy9pbnRlcm5hbC9nZW5lcmF0b3IuY2Mja0tleXdvcmQuXG4gKiBAcGFyYW0ge2Jvb2xlYW49fSBvcHRfaW5jbHVkZUluc3RhbmNlIERlcHJlY2F0ZWQuIHdoZXRoZXIgdG8gaW5jbHVkZSB0aGVcbiAqICAgICBKU1BCIGluc3RhbmNlIGZvciB0cmFuc2l0aW9uYWwgc295IHByb3RvIHN1cHBvcnQ6XG4gKiAgICAgaHR0cDovL2dvdG8vc295LXBhcmFtLW1pZ3JhdGlvblxuICogQHJldHVybiB7IU9iamVjdH1cbiAqL1xucHJvdG8uYmFzZS52MS5EZWZhdWx0UmVwbHkucHJvdG90eXBlLnRvT2JqZWN0ID0gZnVuY3Rpb24ob3B0X2luY2x1ZGVJbnN0YW5jZSkge1xuICByZXR1cm4gcHJvdG8uYmFzZS52MS5EZWZhdWx0UmVwbHkudG9PYmplY3Qob3B0X2luY2x1ZGVJbnN0YW5jZSwgdGhpcyk7XG59O1xuXG5cbi8qKlxuICogU3RhdGljIHZlcnNpb24gb2YgdGhlIHtAc2VlIHRvT2JqZWN0fSBtZXRob2QuXG4gKiBAcGFyYW0ge2Jvb2xlYW58dW5kZWZpbmVkfSBpbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gV2hldGhlciB0byBpbmNsdWRlXG4gKiAgICAgdGhlIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseX0gbXNnIFRoZSBtc2cgaW5zdGFuY2UgdG8gdHJhbnNmb3JtLlxuICogQHJldHVybiB7IU9iamVjdH1cbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYmFzZS52MS5EZWZhdWx0UmVwbHkudG9PYmplY3QgPSBmdW5jdGlvbihpbmNsdWRlSW5zdGFuY2UsIG1zZykge1xuICB2YXIgZiwgb2JqID0ge1xuXG4gIH07XG5cbiAgaWYgKGluY2x1ZGVJbnN0YW5jZSkge1xuICAgIG9iai4kanNwYk1lc3NhZ2VJbnN0YW5jZSA9IG1zZztcbiAgfVxuICByZXR1cm4gb2JqO1xufTtcbn1cblxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHBhcmFtIHtqc3BiLkJ5dGVTb3VyY2V9IGJ5dGVzIFRoZSBieXRlcyB0byBkZXNlcmlhbGl6ZS5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseX1cbiAqL1xucHJvdG8uYmFzZS52MS5EZWZhdWx0UmVwbHkuZGVzZXJpYWxpemVCaW5hcnkgPSBmdW5jdGlvbihieXRlcykge1xuICB2YXIgcmVhZGVyID0gbmV3IGpzcGIuQmluYXJ5UmVhZGVyKGJ5dGVzKTtcbiAgdmFyIG1zZyA9IG5ldyBwcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseTtcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuRGVmYXVsdFJlcGx5LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihtc2csIHJlYWRlcik7XG59O1xuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkgZnJvbSB0aGVcbiAqIGdpdmVuIHJlYWRlciBpbnRvIHRoZSBnaXZlbiBtZXNzYWdlIG9iamVjdC5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuRGVmYXVsdFJlcGx5fSBtc2cgVGhlIG1lc3NhZ2Ugb2JqZWN0IHRvIGRlc2VyaWFsaXplIGludG8uXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVJlYWRlcn0gcmVhZGVyIFRoZSBCaW5hcnlSZWFkZXIgdG8gdXNlLlxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuRGVmYXVsdFJlcGx5fVxuICovXG5wcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIgPSBmdW5jdGlvbihtc2csIHJlYWRlcikge1xuICB3aGlsZSAocmVhZGVyLm5leHRGaWVsZCgpKSB7XG4gICAgaWYgKHJlYWRlci5pc0VuZEdyb3VwKCkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB2YXIgZmllbGQgPSByZWFkZXIuZ2V0RmllbGROdW1iZXIoKTtcbiAgICBzd2l0Y2ggKGZpZWxkKSB7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJlYWRlci5za2lwRmllbGQoKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbXNnO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEByZXR1cm4geyFVaW50OEFycmF5fVxuICovXG5wcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseS5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oKSB7XG4gIHZhciB3cml0ZXIgPSBuZXcganNwYi5CaW5hcnlXcml0ZXIoKTtcbiAgcHJvdG8uYmFzZS52MS5EZWZhdWx0UmVwbHkuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlXG4gKiBmb3JtYXQpLCB3cml0aW5nIHRvIHRoZSBnaXZlbiBCaW5hcnlXcml0ZXIuXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseX0gbWVzc2FnZVxuICogQHBhcmFtIHshanNwYi5CaW5hcnlXcml0ZXJ9IHdyaXRlclxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciA9IGZ1bmN0aW9uKG1lc3NhZ2UsIHdyaXRlcikge1xuICB2YXIgZiA9IHVuZGVmaW5lZDtcbn07XG5cblxuXG5cblxuaWYgKGpzcGIuTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QpIHtcbi8qKlxuICogQ3JlYXRlcyBhbiBvYmplY3QgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBwcm90by5cbiAqIEZpZWxkIG5hbWVzIHRoYXQgYXJlIHJlc2VydmVkIGluIEphdmFTY3JpcHQgYW5kIHdpbGwgYmUgcmVuYW1lZCB0byBwYl9uYW1lLlxuICogT3B0aW9uYWwgZmllbGRzIHRoYXQgYXJlIG5vdCBzZXQgd2lsbCBiZSBzZXQgdG8gdW5kZWZpbmVkLlxuICogVG8gYWNjZXNzIGEgcmVzZXJ2ZWQgZmllbGQgdXNlLCBmb28ucGJfPG5hbWU+LCBlZywgZm9vLnBiX2RlZmF1bHQuXG4gKiBGb3IgdGhlIGxpc3Qgb2YgcmVzZXJ2ZWQgbmFtZXMgcGxlYXNlIHNlZTpcbiAqICAgICBuZXQvcHJvdG8yL2NvbXBpbGVyL2pzL2ludGVybmFsL2dlbmVyYXRvci5jYyNrS2V5d29yZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbj19IG9wdF9pbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gd2hldGhlciB0byBpbmNsdWRlIHRoZVxuICogICAgIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICovXG5wcm90by5iYXNlLnYxLklkUmVxdWVzdC5wcm90b3R5cGUudG9PYmplY3QgPSBmdW5jdGlvbihvcHRfaW5jbHVkZUluc3RhbmNlKSB7XG4gIHJldHVybiBwcm90by5iYXNlLnYxLklkUmVxdWVzdC50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuSWRSZXF1ZXN0fSBtc2cgVGhlIG1zZyBpbnN0YW5jZSB0byB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5iYXNlLnYxLklkUmVxdWVzdC50b09iamVjdCA9IGZ1bmN0aW9uKGluY2x1ZGVJbnN0YW5jZSwgbXNnKSB7XG4gIHZhciBmLCBvYmogPSB7XG4gICAgaWQ6IGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KG1zZywgMSwgMClcbiAgfTtcblxuICBpZiAoaW5jbHVkZUluc3RhbmNlKSB7XG4gICAgb2JqLiRqc3BiTWVzc2FnZUluc3RhbmNlID0gbXNnO1xuICB9XG4gIHJldHVybiBvYmo7XG59O1xufVxuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcGFyYW0ge2pzcGIuQnl0ZVNvdXJjZX0gYnl0ZXMgVGhlIGJ5dGVzIHRvIGRlc2VyaWFsaXplLlxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuSWRSZXF1ZXN0fVxuICovXG5wcm90by5iYXNlLnYxLklkUmVxdWVzdC5kZXNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcganNwYi5CaW5hcnlSZWFkZXIoYnl0ZXMpO1xuICB2YXIgbXNnID0gbmV3IHByb3RvLmJhc2UudjEuSWRSZXF1ZXN0O1xuICByZXR1cm4gcHJvdG8uYmFzZS52MS5JZFJlcXVlc3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG1zZywgcmVhZGVyKTtcbn07XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KSBmcm9tIHRoZVxuICogZ2l2ZW4gcmVhZGVyIGludG8gdGhlIGdpdmVuIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5JZFJlcXVlc3R9IG1zZyBUaGUgbWVzc2FnZSBvYmplY3QgdG8gZGVzZXJpYWxpemUgaW50by5cbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5UmVhZGVyfSByZWFkZXIgVGhlIEJpbmFyeVJlYWRlciB0byB1c2UuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5JZFJlcXVlc3R9XG4gKi9cbnByb3RvLmJhc2UudjEuSWRSZXF1ZXN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciA9IGZ1bmN0aW9uKG1zZywgcmVhZGVyKSB7XG4gIHdoaWxlIChyZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICBpZiAocmVhZGVyLmlzRW5kR3JvdXAoKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBmaWVsZCA9IHJlYWRlci5nZXRGaWVsZE51bWJlcigpO1xuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICBjYXNlIDE6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge251bWJlcn0gKi8gKHJlYWRlci5yZWFkSW50NjQoKSk7XG4gICAgICBtc2cuc2V0SWQodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJlYWRlci5za2lwRmllbGQoKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbXNnO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEByZXR1cm4geyFVaW50OEFycmF5fVxuICovXG5wcm90by5iYXNlLnYxLklkUmVxdWVzdC5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oKSB7XG4gIHZhciB3cml0ZXIgPSBuZXcganNwYi5CaW5hcnlXcml0ZXIoKTtcbiAgcHJvdG8uYmFzZS52MS5JZFJlcXVlc3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlXG4gKiBmb3JtYXQpLCB3cml0aW5nIHRvIHRoZSBnaXZlbiBCaW5hcnlXcml0ZXIuXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLklkUmVxdWVzdH0gbWVzc2FnZVxuICogQHBhcmFtIHshanNwYi5CaW5hcnlXcml0ZXJ9IHdyaXRlclxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5iYXNlLnYxLklkUmVxdWVzdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciA9IGZ1bmN0aW9uKG1lc3NhZ2UsIHdyaXRlcikge1xuICB2YXIgZiA9IHVuZGVmaW5lZDtcbiAgZiA9IG1lc3NhZ2UuZ2V0SWQoKTtcbiAgaWYgKGYgIT09IDApIHtcbiAgICB3cml0ZXIud3JpdGVJbnQ2NChcbiAgICAgIDEsXG4gICAgICBmXG4gICAgKTtcbiAgfVxufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGludDY0IGlkID0gMTtcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xucHJvdG8uYmFzZS52MS5JZFJlcXVlc3QucHJvdG90eXBlLmdldElkID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge251bWJlcn0gKi8gKGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsIDEsIDApKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLklkUmVxdWVzdH0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuSWRSZXF1ZXN0LnByb3RvdHlwZS5zZXRJZCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywgMSwgdmFsdWUpO1xufTtcblxuXG5cblxuXG5pZiAoanNwYi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCkge1xuLyoqXG4gKiBDcmVhdGVzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHByb3RvLlxuICogRmllbGQgbmFtZXMgdGhhdCBhcmUgcmVzZXJ2ZWQgaW4gSmF2YVNjcmlwdCBhbmQgd2lsbCBiZSByZW5hbWVkIHRvIHBiX25hbWUuXG4gKiBPcHRpb25hbCBmaWVsZHMgdGhhdCBhcmUgbm90IHNldCB3aWxsIGJlIHNldCB0byB1bmRlZmluZWQuXG4gKiBUbyBhY2Nlc3MgYSByZXNlcnZlZCBmaWVsZCB1c2UsIGZvby5wYl88bmFtZT4sIGVnLCBmb28ucGJfZGVmYXVsdC5cbiAqIEZvciB0aGUgbGlzdCBvZiByZXNlcnZlZCBuYW1lcyBwbGVhc2Ugc2VlOlxuICogICAgIG5ldC9wcm90bzIvY29tcGlsZXIvanMvaW50ZXJuYWwvZ2VuZXJhdG9yLmNjI2tLZXl3b3JkLlxuICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2luY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiB3aGV0aGVyIHRvIGluY2x1ZGUgdGhlXG4gKiAgICAgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKi9cbnByb3RvLmJhc2UudjEuRGVmYXVsdFJlcXVlc3QucHJvdG90eXBlLnRvT2JqZWN0ID0gZnVuY3Rpb24ob3B0X2luY2x1ZGVJbnN0YW5jZSkge1xuICByZXR1cm4gcHJvdG8uYmFzZS52MS5EZWZhdWx0UmVxdWVzdC50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuRGVmYXVsdFJlcXVlc3R9IG1zZyBUaGUgbXNnIGluc3RhbmNlIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuRGVmYXVsdFJlcXVlc3QudG9PYmplY3QgPSBmdW5jdGlvbihpbmNsdWRlSW5zdGFuY2UsIG1zZykge1xuICB2YXIgZiwgb2JqID0ge1xuXG4gIH07XG5cbiAgaWYgKGluY2x1ZGVJbnN0YW5jZSkge1xuICAgIG9iai4kanNwYk1lc3NhZ2VJbnN0YW5jZSA9IG1zZztcbiAgfVxuICByZXR1cm4gb2JqO1xufTtcbn1cblxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHBhcmFtIHtqc3BiLkJ5dGVTb3VyY2V9IGJ5dGVzIFRoZSBieXRlcyB0byBkZXNlcmlhbGl6ZS5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkRlZmF1bHRSZXF1ZXN0fVxuICovXG5wcm90by5iYXNlLnYxLkRlZmF1bHRSZXF1ZXN0LmRlc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oYnl0ZXMpIHtcbiAgdmFyIHJlYWRlciA9IG5ldyBqc3BiLkJpbmFyeVJlYWRlcihieXRlcyk7XG4gIHZhciBtc2cgPSBuZXcgcHJvdG8uYmFzZS52MS5EZWZhdWx0UmVxdWVzdDtcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuRGVmYXVsdFJlcXVlc3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG1zZywgcmVhZGVyKTtcbn07XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KSBmcm9tIHRoZVxuICogZ2l2ZW4gcmVhZGVyIGludG8gdGhlIGdpdmVuIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5EZWZhdWx0UmVxdWVzdH0gbXNnIFRoZSBtZXNzYWdlIG9iamVjdCB0byBkZXNlcmlhbGl6ZSBpbnRvLlxuICogQHBhcmFtIHshanNwYi5CaW5hcnlSZWFkZXJ9IHJlYWRlciBUaGUgQmluYXJ5UmVhZGVyIHRvIHVzZS5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkRlZmF1bHRSZXF1ZXN0fVxuICovXG5wcm90by5iYXNlLnYxLkRlZmF1bHRSZXF1ZXN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciA9IGZ1bmN0aW9uKG1zZywgcmVhZGVyKSB7XG4gIHdoaWxlIChyZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICBpZiAocmVhZGVyLmlzRW5kR3JvdXAoKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBmaWVsZCA9IHJlYWRlci5nZXRGaWVsZE51bWJlcigpO1xuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICBkZWZhdWx0OlxuICAgICAgcmVhZGVyLnNraXBGaWVsZCgpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBtc2c7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHJldHVybiB7IVVpbnQ4QXJyYXl9XG4gKi9cbnByb3RvLmJhc2UudjEuRGVmYXVsdFJlcXVlc3QucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgd3JpdGVyID0gbmV3IGpzcGIuQmluYXJ5V3JpdGVyKCk7XG4gIHByb3RvLmJhc2UudjEuRGVmYXVsdFJlcXVlc3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlXG4gKiBmb3JtYXQpLCB3cml0aW5nIHRvIHRoZSBnaXZlbiBCaW5hcnlXcml0ZXIuXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLkRlZmF1bHRSZXF1ZXN0fSBtZXNzYWdlXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVdyaXRlcn0gd3JpdGVyXG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuRGVmYXVsdFJlcXVlc3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIgPSBmdW5jdGlvbihtZXNzYWdlLCB3cml0ZXIpIHtcbiAgdmFyIGYgPSB1bmRlZmluZWQ7XG59O1xuXG5cblxuXG5cbmlmIChqc3BiLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUKSB7XG4vKipcbiAqIENyZWF0ZXMgYW4gb2JqZWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgcHJvdG8uXG4gKiBGaWVsZCBuYW1lcyB0aGF0IGFyZSByZXNlcnZlZCBpbiBKYXZhU2NyaXB0IGFuZCB3aWxsIGJlIHJlbmFtZWQgdG8gcGJfbmFtZS5cbiAqIE9wdGlvbmFsIGZpZWxkcyB0aGF0IGFyZSBub3Qgc2V0IHdpbGwgYmUgc2V0IHRvIHVuZGVmaW5lZC5cbiAqIFRvIGFjY2VzcyBhIHJlc2VydmVkIGZpZWxkIHVzZSwgZm9vLnBiXzxuYW1lPiwgZWcsIGZvby5wYl9kZWZhdWx0LlxuICogRm9yIHRoZSBsaXN0IG9mIHJlc2VydmVkIG5hbWVzIHBsZWFzZSBzZWU6XG4gKiAgICAgbmV0L3Byb3RvMi9jb21waWxlci9qcy9pbnRlcm5hbC9nZW5lcmF0b3IuY2Mja0tleXdvcmQuXG4gKiBAcGFyYW0ge2Jvb2xlYW49fSBvcHRfaW5jbHVkZUluc3RhbmNlIERlcHJlY2F0ZWQuIHdoZXRoZXIgdG8gaW5jbHVkZSB0aGVcbiAqICAgICBKU1BCIGluc3RhbmNlIGZvciB0cmFuc2l0aW9uYWwgc295IHByb3RvIHN1cHBvcnQ6XG4gKiAgICAgaHR0cDovL2dvdG8vc295LXBhcmFtLW1pZ3JhdGlvblxuICogQHJldHVybiB7IU9iamVjdH1cbiAqL1xucHJvdG8uYmFzZS52MS5Qb3NpdGlvbi5wcm90b3R5cGUudG9PYmplY3QgPSBmdW5jdGlvbihvcHRfaW5jbHVkZUluc3RhbmNlKSB7XG4gIHJldHVybiBwcm90by5iYXNlLnYxLlBvc2l0aW9uLnRvT2JqZWN0KG9wdF9pbmNsdWRlSW5zdGFuY2UsIHRoaXMpO1xufTtcblxuXG4vKipcbiAqIFN0YXRpYyB2ZXJzaW9uIG9mIHRoZSB7QHNlZSB0b09iamVjdH0gbWV0aG9kLlxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gaW5jbHVkZUluc3RhbmNlIERlcHJlY2F0ZWQuIFdoZXRoZXIgdG8gaW5jbHVkZVxuICogICAgIHRoZSBKU1BCIGluc3RhbmNlIGZvciB0cmFuc2l0aW9uYWwgc295IHByb3RvIHN1cHBvcnQ6XG4gKiAgICAgaHR0cDovL2dvdG8vc295LXBhcmFtLW1pZ3JhdGlvblxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5Qb3NpdGlvbn0gbXNnIFRoZSBtc2cgaW5zdGFuY2UgdG8gdHJhbnNmb3JtLlxuICogQHJldHVybiB7IU9iamVjdH1cbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYmFzZS52MS5Qb3NpdGlvbi50b09iamVjdCA9IGZ1bmN0aW9uKGluY2x1ZGVJbnN0YW5jZSwgbXNnKSB7XG4gIHZhciBmLCBvYmogPSB7XG4gICAgbG9uZ2l0dWRlOiBqc3BiLk1lc3NhZ2UuZ2V0RmxvYXRpbmdQb2ludEZpZWxkV2l0aERlZmF1bHQobXNnLCAxLCAwLjApLFxuICAgIGxhdGl0dWRlOiBqc3BiLk1lc3NhZ2UuZ2V0RmxvYXRpbmdQb2ludEZpZWxkV2l0aERlZmF1bHQobXNnLCAyLCAwLjApXG4gIH07XG5cbiAgaWYgKGluY2x1ZGVJbnN0YW5jZSkge1xuICAgIG9iai4kanNwYk1lc3NhZ2VJbnN0YW5jZSA9IG1zZztcbiAgfVxuICByZXR1cm4gb2JqO1xufTtcbn1cblxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHBhcmFtIHtqc3BiLkJ5dGVTb3VyY2V9IGJ5dGVzIFRoZSBieXRlcyB0byBkZXNlcmlhbGl6ZS5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLlBvc2l0aW9ufVxuICovXG5wcm90by5iYXNlLnYxLlBvc2l0aW9uLmRlc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oYnl0ZXMpIHtcbiAgdmFyIHJlYWRlciA9IG5ldyBqc3BiLkJpbmFyeVJlYWRlcihieXRlcyk7XG4gIHZhciBtc2cgPSBuZXcgcHJvdG8uYmFzZS52MS5Qb3NpdGlvbjtcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuUG9zaXRpb24uZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG1zZywgcmVhZGVyKTtcbn07XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KSBmcm9tIHRoZVxuICogZ2l2ZW4gcmVhZGVyIGludG8gdGhlIGdpdmVuIG1lc3NhZ2Ugb2JqZWN0LlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5Qb3NpdGlvbn0gbXNnIFRoZSBtZXNzYWdlIG9iamVjdCB0byBkZXNlcmlhbGl6ZSBpbnRvLlxuICogQHBhcmFtIHshanNwYi5CaW5hcnlSZWFkZXJ9IHJlYWRlciBUaGUgQmluYXJ5UmVhZGVyIHRvIHVzZS5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLlBvc2l0aW9ufVxuICovXG5wcm90by5iYXNlLnYxLlBvc2l0aW9uLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciA9IGZ1bmN0aW9uKG1zZywgcmVhZGVyKSB7XG4gIHdoaWxlIChyZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICBpZiAocmVhZGVyLmlzRW5kR3JvdXAoKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHZhciBmaWVsZCA9IHJlYWRlci5nZXRGaWVsZE51bWJlcigpO1xuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICBjYXNlIDE6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge251bWJlcn0gKi8gKHJlYWRlci5yZWFkRG91YmxlKCkpO1xuICAgICAgbXNnLnNldExvbmdpdHVkZSh2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDI6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge251bWJlcn0gKi8gKHJlYWRlci5yZWFkRG91YmxlKCkpO1xuICAgICAgbXNnLnNldExhdGl0dWRlKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZWFkZXIuc2tpcEZpZWxkKCk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1zZztcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkuXG4gKiBAcmV0dXJuIHshVWludDhBcnJheX1cbiAqL1xucHJvdG8uYmFzZS52MS5Qb3NpdGlvbi5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oKSB7XG4gIHZhciB3cml0ZXIgPSBuZXcganNwYi5CaW5hcnlXcml0ZXIoKTtcbiAgcHJvdG8uYmFzZS52MS5Qb3NpdGlvbi5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLCB3cml0ZXIpO1xuICByZXR1cm4gd3JpdGVyLmdldFJlc3VsdEJ1ZmZlcigpO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIGdpdmVuIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmVcbiAqIGZvcm1hdCksIHdyaXRpbmcgdG8gdGhlIGdpdmVuIEJpbmFyeVdyaXRlci5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuUG9zaXRpb259IG1lc3NhZ2VcbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5V3JpdGVyfSB3cml0ZXJcbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYmFzZS52MS5Qb3NpdGlvbi5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciA9IGZ1bmN0aW9uKG1lc3NhZ2UsIHdyaXRlcikge1xuICB2YXIgZiA9IHVuZGVmaW5lZDtcbiAgZiA9IG1lc3NhZ2UuZ2V0TG9uZ2l0dWRlKCk7XG4gIGlmIChmICE9PSAwLjApIHtcbiAgICB3cml0ZXIud3JpdGVEb3VibGUoXG4gICAgICAxLFxuICAgICAgZlxuICAgICk7XG4gIH1cbiAgZiA9IG1lc3NhZ2UuZ2V0TGF0aXR1ZGUoKTtcbiAgaWYgKGYgIT09IDAuMCkge1xuICAgIHdyaXRlci53cml0ZURvdWJsZShcbiAgICAgIDIsXG4gICAgICBmXG4gICAgKTtcbiAgfVxufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGRvdWJsZSBsb25naXR1ZGUgPSAxO1xuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5wcm90by5iYXNlLnYxLlBvc2l0aW9uLnByb3RvdHlwZS5nZXRMb25naXR1ZGUgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAoanNwYi5NZXNzYWdlLmdldEZsb2F0aW5nUG9pbnRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsIDEsIDAuMCkpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuUG9zaXRpb259IHJldHVybnMgdGhpc1xuICovXG5wcm90by5iYXNlLnYxLlBvc2l0aW9uLnByb3RvdHlwZS5zZXRMb25naXR1ZGUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLnNldFByb3RvM0Zsb2F0RmllbGQodGhpcywgMSwgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGRvdWJsZSBsYXRpdHVkZSA9IDI7XG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbnByb3RvLmJhc2UudjEuUG9zaXRpb24ucHJvdG90eXBlLmdldExhdGl0dWRlID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge251bWJlcn0gKi8gKGpzcGIuTWVzc2FnZS5nZXRGbG9hdGluZ1BvaW50RmllbGRXaXRoRGVmYXVsdCh0aGlzLCAyLCAwLjApKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLlBvc2l0aW9ufSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYmFzZS52MS5Qb3NpdGlvbi5wcm90b3R5cGUuc2V0TGF0aXR1ZGUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLnNldFByb3RvM0Zsb2F0RmllbGQodGhpcywgMiwgdmFsdWUpO1xufTtcblxuXG5cblxuXG5pZiAoanNwYi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCkge1xuLyoqXG4gKiBDcmVhdGVzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHByb3RvLlxuICogRmllbGQgbmFtZXMgdGhhdCBhcmUgcmVzZXJ2ZWQgaW4gSmF2YVNjcmlwdCBhbmQgd2lsbCBiZSByZW5hbWVkIHRvIHBiX25hbWUuXG4gKiBPcHRpb25hbCBmaWVsZHMgdGhhdCBhcmUgbm90IHNldCB3aWxsIGJlIHNldCB0byB1bmRlZmluZWQuXG4gKiBUbyBhY2Nlc3MgYSByZXNlcnZlZCBmaWVsZCB1c2UsIGZvby5wYl88bmFtZT4sIGVnLCBmb28ucGJfZGVmYXVsdC5cbiAqIEZvciB0aGUgbGlzdCBvZiByZXNlcnZlZCBuYW1lcyBwbGVhc2Ugc2VlOlxuICogICAgIG5ldC9wcm90bzIvY29tcGlsZXIvanMvaW50ZXJuYWwvZ2VuZXJhdG9yLmNjI2tLZXl3b3JkLlxuICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2luY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiB3aGV0aGVyIHRvIGluY2x1ZGUgdGhlXG4gKiAgICAgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mby5wcm90b3R5cGUudG9PYmplY3QgPSBmdW5jdGlvbihvcHRfaW5jbHVkZUluc3RhbmNlKSB7XG4gIHJldHVybiBwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm8udG9PYmplY3Qob3B0X2luY2x1ZGVJbnN0YW5jZSwgdGhpcyk7XG59O1xuXG5cbi8qKlxuICogU3RhdGljIHZlcnNpb24gb2YgdGhlIHtAc2VlIHRvT2JqZWN0fSBtZXRob2QuXG4gKiBAcGFyYW0ge2Jvb2xlYW58dW5kZWZpbmVkfSBpbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gV2hldGhlciB0byBpbmNsdWRlXG4gKiAgICAgdGhlIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm99IG1zZyBUaGUgbXNnIGluc3RhbmNlIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mby50b09iamVjdCA9IGZ1bmN0aW9uKGluY2x1ZGVJbnN0YW5jZSwgbXNnKSB7XG4gIHZhciBmLCBvYmogPSB7XG4gICAgaW1hZ2U6IChmID0gbXNnLmdldEltYWdlKCkpICYmIHByb3RvLmJhc2UudjEuTmV0SW1hZ2UudG9PYmplY3QoaW5jbHVkZUluc3RhbmNlLCBmKSxcbiAgICBjb250ZW50OiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdChtc2csIDIsIFwiXCIpXG4gIH07XG5cbiAgaWYgKGluY2x1ZGVJbnN0YW5jZSkge1xuICAgIG9iai4kanNwYk1lc3NhZ2VJbnN0YW5jZSA9IG1zZztcbiAgfVxuICByZXR1cm4gb2JqO1xufTtcbn1cblxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHBhcmFtIHtqc3BiLkJ5dGVTb3VyY2V9IGJ5dGVzIFRoZSBieXRlcyB0byBkZXNlcmlhbGl6ZS5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm99XG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mby5kZXNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcganNwYi5CaW5hcnlSZWFkZXIoYnl0ZXMpO1xuICB2YXIgbXNnID0gbmV3IHByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mbztcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mby5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIobXNnLCByZWFkZXIpO1xufTtcblxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpIGZyb20gdGhlXG4gKiBnaXZlbiByZWFkZXIgaW50byB0aGUgZ2l2ZW4gbWVzc2FnZSBvYmplY3QuXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm99IG1zZyBUaGUgbWVzc2FnZSBvYmplY3QgdG8gZGVzZXJpYWxpemUgaW50by5cbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5UmVhZGVyfSByZWFkZXIgVGhlIEJpbmFyeVJlYWRlciB0byB1c2UuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRJbmZvfVxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm8uZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyID0gZnVuY3Rpb24obXNnLCByZWFkZXIpIHtcbiAgd2hpbGUgKHJlYWRlci5uZXh0RmllbGQoKSkge1xuICAgIGlmIChyZWFkZXIuaXNFbmRHcm91cCgpKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgdmFyIGZpZWxkID0gcmVhZGVyLmdldEZpZWxkTnVtYmVyKCk7XG4gICAgc3dpdGNoIChmaWVsZCkge1xuICAgIGNhc2UgMTpcbiAgICAgIHZhciB2YWx1ZSA9IG5ldyBwcm90by5iYXNlLnYxLk5ldEltYWdlO1xuICAgICAgcmVhZGVyLnJlYWRNZXNzYWdlKHZhbHVlLHByb3RvLmJhc2UudjEuTmV0SW1hZ2UuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKTtcbiAgICAgIG1zZy5zZXRJbWFnZSh2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDI6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge3N0cmluZ30gKi8gKHJlYWRlci5yZWFkU3RyaW5nKCkpO1xuICAgICAgbXNnLnNldENvbnRlbnQodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJlYWRlci5za2lwRmllbGQoKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbXNnO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEByZXR1cm4geyFVaW50OEFycmF5fVxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm8ucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgd3JpdGVyID0gbmV3IGpzcGIuQmluYXJ5V3JpdGVyKCk7XG4gIHByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mby5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLCB3cml0ZXIpO1xuICByZXR1cm4gd3JpdGVyLmdldFJlc3VsdEJ1ZmZlcigpO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIGdpdmVuIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmVcbiAqIGZvcm1hdCksIHdyaXRpbmcgdG8gdGhlIGdpdmVuIEJpbmFyeVdyaXRlci5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mb30gbWVzc2FnZVxuICogQHBhcmFtIHshanNwYi5CaW5hcnlXcml0ZXJ9IHdyaXRlclxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm8uc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIgPSBmdW5jdGlvbihtZXNzYWdlLCB3cml0ZXIpIHtcbiAgdmFyIGYgPSB1bmRlZmluZWQ7XG4gIGYgPSBtZXNzYWdlLmdldEltYWdlKCk7XG4gIGlmIChmICE9IG51bGwpIHtcbiAgICB3cml0ZXIud3JpdGVNZXNzYWdlKFxuICAgICAgMSxcbiAgICAgIGYsXG4gICAgICBwcm90by5iYXNlLnYxLk5ldEltYWdlLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyXG4gICAgKTtcbiAgfVxuICBmID0gbWVzc2FnZS5nZXRDb250ZW50KCk7XG4gIGlmIChmLmxlbmd0aCA+IDApIHtcbiAgICB3cml0ZXIud3JpdGVTdHJpbmcoXG4gICAgICAyLFxuICAgICAgZlxuICAgICk7XG4gIH1cbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBOZXRJbWFnZSBpbWFnZSA9IDE7XG4gKiBAcmV0dXJuIHs/cHJvdG8uYmFzZS52MS5OZXRJbWFnZX1cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRJbmZvLnByb3RvdHlwZS5nZXRJbWFnZSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlez9wcm90by5iYXNlLnYxLk5ldEltYWdlfSAqLyAoXG4gICAganNwYi5NZXNzYWdlLmdldFdyYXBwZXJGaWVsZCh0aGlzLCBwcm90by5iYXNlLnYxLk5ldEltYWdlLCAxKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHs/cHJvdG8uYmFzZS52MS5OZXRJbWFnZXx1bmRlZmluZWR9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRJbmZvfSByZXR1cm5zIHRoaXNcbiovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm8ucHJvdG90eXBlLnNldEltYWdlID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRXcmFwcGVyRmllbGQodGhpcywgMSwgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIENsZWFycyB0aGUgbWVzc2FnZSBmaWVsZCBtYWtpbmcgaXQgdW5kZWZpbmVkLlxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mb30gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mby5wcm90b3R5cGUuY2xlYXJJbWFnZSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gdGhpcy5zZXRJbWFnZSh1bmRlZmluZWQpO1xufTtcblxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciB0aGlzIGZpZWxkIGlzIHNldC5cbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mby5wcm90b3R5cGUuaGFzSW1hZ2UgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5nZXRGaWVsZCh0aGlzLCAxKSAhPSBudWxsO1xufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIHN0cmluZyBjb250ZW50ID0gMjtcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRJbmZvLnByb3RvdHlwZS5nZXRDb250ZW50ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge3N0cmluZ30gKi8gKGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsIDIsIFwiXCIpKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm99IHJldHVybnMgdGhpc1xuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm8ucHJvdG90eXBlLnNldENvbnRlbnQgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLnNldFByb3RvM1N0cmluZ0ZpZWxkKHRoaXMsIDIsIHZhbHVlKTtcbn07XG5cblxuXG5cblxuaWYgKGpzcGIuTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QpIHtcbi8qKlxuICogQ3JlYXRlcyBhbiBvYmplY3QgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBwcm90by5cbiAqIEZpZWxkIG5hbWVzIHRoYXQgYXJlIHJlc2VydmVkIGluIEphdmFTY3JpcHQgYW5kIHdpbGwgYmUgcmVuYW1lZCB0byBwYl9uYW1lLlxuICogT3B0aW9uYWwgZmllbGRzIHRoYXQgYXJlIG5vdCBzZXQgd2lsbCBiZSBzZXQgdG8gdW5kZWZpbmVkLlxuICogVG8gYWNjZXNzIGEgcmVzZXJ2ZWQgZmllbGQgdXNlLCBmb28ucGJfPG5hbWU+LCBlZywgZm9vLnBiX2RlZmF1bHQuXG4gKiBGb3IgdGhlIGxpc3Qgb2YgcmVzZXJ2ZWQgbmFtZXMgcGxlYXNlIHNlZTpcbiAqICAgICBuZXQvcHJvdG8yL2NvbXBpbGVyL2pzL2ludGVybmFsL2dlbmVyYXRvci5jYyNrS2V5d29yZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbj19IG9wdF9pbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gd2hldGhlciB0byBpbmNsdWRlIHRoZVxuICogICAgIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICovXG5wcm90by5iYXNlLnYxLkltYWdlLnByb3RvdHlwZS50b09iamVjdCA9IGZ1bmN0aW9uKG9wdF9pbmNsdWRlSW5zdGFuY2UpIHtcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuSW1hZ2UudG9PYmplY3Qob3B0X2luY2x1ZGVJbnN0YW5jZSwgdGhpcyk7XG59O1xuXG5cbi8qKlxuICogU3RhdGljIHZlcnNpb24gb2YgdGhlIHtAc2VlIHRvT2JqZWN0fSBtZXRob2QuXG4gKiBAcGFyYW0ge2Jvb2xlYW58dW5kZWZpbmVkfSBpbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gV2hldGhlciB0byBpbmNsdWRlXG4gKiAgICAgdGhlIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLkltYWdlfSBtc2cgVGhlIG1zZyBpbnN0YW5jZSB0byB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJuIHshT2JqZWN0fVxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5iYXNlLnYxLkltYWdlLnRvT2JqZWN0ID0gZnVuY3Rpb24oaW5jbHVkZUluc3RhbmNlLCBtc2cpIHtcbiAgdmFyIGYsIG9iaiA9IHtcbiAgICBleHQ6IGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KG1zZywgMSwgXCJcIiksXG4gICAgZGF0YTogbXNnLmdldERhdGFfYXNCNjQoKVxuICB9O1xuXG4gIGlmIChpbmNsdWRlSW5zdGFuY2UpIHtcbiAgICBvYmouJGpzcGJNZXNzYWdlSW5zdGFuY2UgPSBtc2c7XG4gIH1cbiAgcmV0dXJuIG9iajtcbn07XG59XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEBwYXJhbSB7anNwYi5CeXRlU291cmNlfSBieXRlcyBUaGUgYnl0ZXMgdG8gZGVzZXJpYWxpemUuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5JbWFnZX1cbiAqL1xucHJvdG8uYmFzZS52MS5JbWFnZS5kZXNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcganNwYi5CaW5hcnlSZWFkZXIoYnl0ZXMpO1xuICB2YXIgbXNnID0gbmV3IHByb3RvLmJhc2UudjEuSW1hZ2U7XG4gIHJldHVybiBwcm90by5iYXNlLnYxLkltYWdlLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihtc2csIHJlYWRlcik7XG59O1xuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkgZnJvbSB0aGVcbiAqIGdpdmVuIHJlYWRlciBpbnRvIHRoZSBnaXZlbiBtZXNzYWdlIG9iamVjdC5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuSW1hZ2V9IG1zZyBUaGUgbWVzc2FnZSBvYmplY3QgdG8gZGVzZXJpYWxpemUgaW50by5cbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5UmVhZGVyfSByZWFkZXIgVGhlIEJpbmFyeVJlYWRlciB0byB1c2UuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5JbWFnZX1cbiAqL1xucHJvdG8uYmFzZS52MS5JbWFnZS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIgPSBmdW5jdGlvbihtc2csIHJlYWRlcikge1xuICB3aGlsZSAocmVhZGVyLm5leHRGaWVsZCgpKSB7XG4gICAgaWYgKHJlYWRlci5pc0VuZEdyb3VwKCkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB2YXIgZmllbGQgPSByZWFkZXIuZ2V0RmllbGROdW1iZXIoKTtcbiAgICBzd2l0Y2ggKGZpZWxkKSB7XG4gICAgY2FzZSAxOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChyZWFkZXIucmVhZFN0cmluZygpKTtcbiAgICAgIG1zZy5zZXRFeHQodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAyOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHshVWludDhBcnJheX0gKi8gKHJlYWRlci5yZWFkQnl0ZXMoKSk7XG4gICAgICBtc2cuc2V0RGF0YSh2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgcmVhZGVyLnNraXBGaWVsZCgpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBtc2c7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHJldHVybiB7IVVpbnQ4QXJyYXl9XG4gKi9cbnByb3RvLmJhc2UudjEuSW1hZ2UucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgd3JpdGVyID0gbmV3IGpzcGIuQmluYXJ5V3JpdGVyKCk7XG4gIHByb3RvLmJhc2UudjEuSW1hZ2Uuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlXG4gKiBmb3JtYXQpLCB3cml0aW5nIHRvIHRoZSBnaXZlbiBCaW5hcnlXcml0ZXIuXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLkltYWdlfSBtZXNzYWdlXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVdyaXRlcn0gd3JpdGVyXG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuSW1hZ2Uuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIgPSBmdW5jdGlvbihtZXNzYWdlLCB3cml0ZXIpIHtcbiAgdmFyIGYgPSB1bmRlZmluZWQ7XG4gIGYgPSBtZXNzYWdlLmdldEV4dCgpO1xuICBpZiAoZi5sZW5ndGggPiAwKSB7XG4gICAgd3JpdGVyLndyaXRlU3RyaW5nKFxuICAgICAgMSxcbiAgICAgIGZcbiAgICApO1xuICB9XG4gIGYgPSBtZXNzYWdlLmdldERhdGFfYXNVOCgpO1xuICBpZiAoZi5sZW5ndGggPiAwKSB7XG4gICAgd3JpdGVyLndyaXRlQnl0ZXMoXG4gICAgICAyLFxuICAgICAgZlxuICAgICk7XG4gIH1cbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBzdHJpbmcgZXh0ID0gMTtcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xucHJvdG8uYmFzZS52MS5JbWFnZS5wcm90b3R5cGUuZ2V0RXh0ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge3N0cmluZ30gKi8gKGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsIDEsIFwiXCIpKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkltYWdlfSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYmFzZS52MS5JbWFnZS5wcm90b3R5cGUuc2V0RXh0ID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNTdHJpbmdGaWVsZCh0aGlzLCAxLCB2YWx1ZSk7XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgYnl0ZXMgZGF0YSA9IDI7XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbnByb3RvLmJhc2UudjEuSW1hZ2UucHJvdG90eXBlLmdldERhdGEgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAoanNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywgMiwgXCJcIikpO1xufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGJ5dGVzIGRhdGEgPSAyO1xuICogVGhpcyBpcyBhIHR5cGUtY29udmVyc2lvbiB3cmFwcGVyIGFyb3VuZCBgZ2V0RGF0YSgpYFxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5wcm90by5iYXNlLnYxLkltYWdlLnByb3RvdHlwZS5nZXREYXRhX2FzQjY0ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge3N0cmluZ30gKi8gKGpzcGIuTWVzc2FnZS5ieXRlc0FzQjY0KFxuICAgICAgdGhpcy5nZXREYXRhKCkpKTtcbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBieXRlcyBkYXRhID0gMjtcbiAqIE5vdGUgdGhhdCBVaW50OEFycmF5IGlzIG5vdCBzdXBwb3J0ZWQgb24gYWxsIGJyb3dzZXJzLlxuICogQHNlZSBodHRwOi8vY2FuaXVzZS5jb20vVWludDhBcnJheVxuICogVGhpcyBpcyBhIHR5cGUtY29udmVyc2lvbiB3cmFwcGVyIGFyb3VuZCBgZ2V0RGF0YSgpYFxuICogQHJldHVybiB7IVVpbnQ4QXJyYXl9XG4gKi9cbnByb3RvLmJhc2UudjEuSW1hZ2UucHJvdG90eXBlLmdldERhdGFfYXNVOCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHshVWludDhBcnJheX0gKi8gKGpzcGIuTWVzc2FnZS5ieXRlc0FzVTgoXG4gICAgICB0aGlzLmdldERhdGEoKSkpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7IShzdHJpbmd8VWludDhBcnJheSl9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5JbWFnZX0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuSW1hZ2UucHJvdG90eXBlLnNldERhdGEgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywgMiwgdmFsdWUpO1xufTtcblxuXG5cblxuXG5pZiAoanNwYi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCkge1xuLyoqXG4gKiBDcmVhdGVzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHByb3RvLlxuICogRmllbGQgbmFtZXMgdGhhdCBhcmUgcmVzZXJ2ZWQgaW4gSmF2YVNjcmlwdCBhbmQgd2lsbCBiZSByZW5hbWVkIHRvIHBiX25hbWUuXG4gKiBPcHRpb25hbCBmaWVsZHMgdGhhdCBhcmUgbm90IHNldCB3aWxsIGJlIHNldCB0byB1bmRlZmluZWQuXG4gKiBUbyBhY2Nlc3MgYSByZXNlcnZlZCBmaWVsZCB1c2UsIGZvby5wYl88bmFtZT4sIGVnLCBmb28ucGJfZGVmYXVsdC5cbiAqIEZvciB0aGUgbGlzdCBvZiByZXNlcnZlZCBuYW1lcyBwbGVhc2Ugc2VlOlxuICogICAgIG5ldC9wcm90bzIvY29tcGlsZXIvanMvaW50ZXJuYWwvZ2VuZXJhdG9yLmNjI2tLZXl3b3JkLlxuICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2luY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiB3aGV0aGVyIHRvIGluY2x1ZGUgdGhlXG4gKiAgICAgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKi9cbnByb3RvLmJhc2UudjEuU3RhdHVzRWRpdFJlcXVlc3QucHJvdG90eXBlLnRvT2JqZWN0ID0gZnVuY3Rpb24ob3B0X2luY2x1ZGVJbnN0YW5jZSkge1xuICByZXR1cm4gcHJvdG8uYmFzZS52MS5TdGF0dXNFZGl0UmVxdWVzdC50b09iamVjdChvcHRfaW5jbHVkZUluc3RhbmNlLCB0aGlzKTtcbn07XG5cblxuLyoqXG4gKiBTdGF0aWMgdmVyc2lvbiBvZiB0aGUge0BzZWUgdG9PYmplY3R9IG1ldGhvZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbnx1bmRlZmluZWR9IGluY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiBXaGV0aGVyIHRvIGluY2x1ZGVcbiAqICAgICB0aGUgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuU3RhdHVzRWRpdFJlcXVlc3R9IG1zZyBUaGUgbXNnIGluc3RhbmNlIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuU3RhdHVzRWRpdFJlcXVlc3QudG9PYmplY3QgPSBmdW5jdGlvbihpbmNsdWRlSW5zdGFuY2UsIG1zZykge1xuICB2YXIgZiwgb2JqID0ge1xuICAgIGlkOiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdChtc2csIDEsIDApLFxuICAgIHN0YXR1czoganNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQobXNnLCAyLCAwKVxuICB9O1xuXG4gIGlmIChpbmNsdWRlSW5zdGFuY2UpIHtcbiAgICBvYmouJGpzcGJNZXNzYWdlSW5zdGFuY2UgPSBtc2c7XG4gIH1cbiAgcmV0dXJuIG9iajtcbn07XG59XG5cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEBwYXJhbSB7anNwYi5CeXRlU291cmNlfSBieXRlcyBUaGUgYnl0ZXMgdG8gZGVzZXJpYWxpemUuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5TdGF0dXNFZGl0UmVxdWVzdH1cbiAqL1xucHJvdG8uYmFzZS52MS5TdGF0dXNFZGl0UmVxdWVzdC5kZXNlcmlhbGl6ZUJpbmFyeSA9IGZ1bmN0aW9uKGJ5dGVzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcganNwYi5CaW5hcnlSZWFkZXIoYnl0ZXMpO1xuICB2YXIgbXNnID0gbmV3IHByb3RvLmJhc2UudjEuU3RhdHVzRWRpdFJlcXVlc3Q7XG4gIHJldHVybiBwcm90by5iYXNlLnYxLlN0YXR1c0VkaXRSZXF1ZXN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihtc2csIHJlYWRlcik7XG59O1xuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkgZnJvbSB0aGVcbiAqIGdpdmVuIHJlYWRlciBpbnRvIHRoZSBnaXZlbiBtZXNzYWdlIG9iamVjdC5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuU3RhdHVzRWRpdFJlcXVlc3R9IG1zZyBUaGUgbWVzc2FnZSBvYmplY3QgdG8gZGVzZXJpYWxpemUgaW50by5cbiAqIEBwYXJhbSB7IWpzcGIuQmluYXJ5UmVhZGVyfSByZWFkZXIgVGhlIEJpbmFyeVJlYWRlciB0byB1c2UuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5TdGF0dXNFZGl0UmVxdWVzdH1cbiAqL1xucHJvdG8uYmFzZS52MS5TdGF0dXNFZGl0UmVxdWVzdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIgPSBmdW5jdGlvbihtc2csIHJlYWRlcikge1xuICB3aGlsZSAocmVhZGVyLm5leHRGaWVsZCgpKSB7XG4gICAgaWYgKHJlYWRlci5pc0VuZEdyb3VwKCkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB2YXIgZmllbGQgPSByZWFkZXIuZ2V0RmllbGROdW1iZXIoKTtcbiAgICBzd2l0Y2ggKGZpZWxkKSB7XG4gICAgY2FzZSAxOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtudW1iZXJ9ICovIChyZWFkZXIucmVhZEludDY0KCkpO1xuICAgICAgbXNnLnNldElkKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMjpcbiAgICAgIHZhciB2YWx1ZSA9IC8qKiBAdHlwZSB7IXByb3RvLmJhc2UudjEuU3RhdHVzVHlwZX0gKi8gKHJlYWRlci5yZWFkRW51bSgpKTtcbiAgICAgIG1zZy5zZXRTdGF0dXModmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJlYWRlci5za2lwRmllbGQoKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbXNnO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEByZXR1cm4geyFVaW50OEFycmF5fVxuICovXG5wcm90by5iYXNlLnYxLlN0YXR1c0VkaXRSZXF1ZXN0LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnkgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHdyaXRlciA9IG5ldyBqc3BiLkJpbmFyeVdyaXRlcigpO1xuICBwcm90by5iYXNlLnYxLlN0YXR1c0VkaXRSZXF1ZXN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsIHdyaXRlcik7XG4gIHJldHVybiB3cml0ZXIuZ2V0UmVzdWx0QnVmZmVyKCk7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgZ2l2ZW4gbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZVxuICogZm9ybWF0KSwgd3JpdGluZyB0byB0aGUgZ2l2ZW4gQmluYXJ5V3JpdGVyLlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5TdGF0dXNFZGl0UmVxdWVzdH0gbWVzc2FnZVxuICogQHBhcmFtIHshanNwYi5CaW5hcnlXcml0ZXJ9IHdyaXRlclxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5iYXNlLnYxLlN0YXR1c0VkaXRSZXF1ZXN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyID0gZnVuY3Rpb24obWVzc2FnZSwgd3JpdGVyKSB7XG4gIHZhciBmID0gdW5kZWZpbmVkO1xuICBmID0gbWVzc2FnZS5nZXRJZCgpO1xuICBpZiAoZiAhPT0gMCkge1xuICAgIHdyaXRlci53cml0ZUludDY0KFxuICAgICAgMSxcbiAgICAgIGZcbiAgICApO1xuICB9XG4gIGYgPSBtZXNzYWdlLmdldFN0YXR1cygpO1xuICBpZiAoZiAhPT0gMC4wKSB7XG4gICAgd3JpdGVyLndyaXRlRW51bShcbiAgICAgIDIsXG4gICAgICBmXG4gICAgKTtcbiAgfVxufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGludDY0IGlkID0gMTtcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xucHJvdG8uYmFzZS52MS5TdGF0dXNFZGl0UmVxdWVzdC5wcm90b3R5cGUuZ2V0SWQgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAoanNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywgMSwgMCkpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuU3RhdHVzRWRpdFJlcXVlc3R9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5iYXNlLnYxLlN0YXR1c0VkaXRSZXF1ZXN0LnByb3RvdHlwZS5zZXRJZCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywgMSwgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIFN0YXR1c1R5cGUgc3RhdHVzID0gMjtcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLlN0YXR1c1R5cGV9XG4gKi9cbnByb3RvLmJhc2UudjEuU3RhdHVzRWRpdFJlcXVlc3QucHJvdG90eXBlLmdldFN0YXR1cyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHshcHJvdG8uYmFzZS52MS5TdGF0dXNUeXBlfSAqLyAoanNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywgMiwgMCkpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuU3RhdHVzVHlwZX0gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLlN0YXR1c0VkaXRSZXF1ZXN0fSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYmFzZS52MS5TdGF0dXNFZGl0UmVxdWVzdC5wcm90b3R5cGUuc2V0U3RhdHVzID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNFbnVtRmllbGQodGhpcywgMiwgdmFsdWUpO1xufTtcblxuXG5cbi8qKlxuICogTGlzdCBvZiByZXBlYXRlZCBmaWVsZHMgd2l0aGluIHRoaXMgbWVzc2FnZSB0eXBlLlxuICogQHByaXZhdGUgeyFBcnJheTxudW1iZXI+fVxuICogQGNvbnN0XG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50LnJlcGVhdGVkRmllbGRzXyA9IFszXTtcblxuXG5cbmlmIChqc3BiLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUKSB7XG4vKipcbiAqIENyZWF0ZXMgYW4gb2JqZWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgcHJvdG8uXG4gKiBGaWVsZCBuYW1lcyB0aGF0IGFyZSByZXNlcnZlZCBpbiBKYXZhU2NyaXB0IGFuZCB3aWxsIGJlIHJlbmFtZWQgdG8gcGJfbmFtZS5cbiAqIE9wdGlvbmFsIGZpZWxkcyB0aGF0IGFyZSBub3Qgc2V0IHdpbGwgYmUgc2V0IHRvIHVuZGVmaW5lZC5cbiAqIFRvIGFjY2VzcyBhIHJlc2VydmVkIGZpZWxkIHVzZSwgZm9vLnBiXzxuYW1lPiwgZWcsIGZvby5wYl9kZWZhdWx0LlxuICogRm9yIHRoZSBsaXN0IG9mIHJlc2VydmVkIG5hbWVzIHBsZWFzZSBzZWU6XG4gKiAgICAgbmV0L3Byb3RvMi9jb21waWxlci9qcy9pbnRlcm5hbC9nZW5lcmF0b3IuY2Mja0tleXdvcmQuXG4gKiBAcGFyYW0ge2Jvb2xlYW49fSBvcHRfaW5jbHVkZUluc3RhbmNlIERlcHJlY2F0ZWQuIHdoZXRoZXIgdG8gaW5jbHVkZSB0aGVcbiAqICAgICBKU1BCIGluc3RhbmNlIGZvciB0cmFuc2l0aW9uYWwgc295IHByb3RvIHN1cHBvcnQ6XG4gKiAgICAgaHR0cDovL2dvdG8vc295LXBhcmFtLW1pZ3JhdGlvblxuICogQHJldHVybiB7IU9iamVjdH1cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQucHJvdG90eXBlLnRvT2JqZWN0ID0gZnVuY3Rpb24ob3B0X2luY2x1ZGVJbnN0YW5jZSkge1xuICByZXR1cm4gcHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQudG9PYmplY3Qob3B0X2luY2x1ZGVJbnN0YW5jZSwgdGhpcyk7XG59O1xuXG5cbi8qKlxuICogU3RhdGljIHZlcnNpb24gb2YgdGhlIHtAc2VlIHRvT2JqZWN0fSBtZXRob2QuXG4gKiBAcGFyYW0ge2Jvb2xlYW58dW5kZWZpbmVkfSBpbmNsdWRlSW5zdGFuY2UgRGVwcmVjYXRlZC4gV2hldGhlciB0byBpbmNsdWRlXG4gKiAgICAgdGhlIEpTUEIgaW5zdGFuY2UgZm9yIHRyYW5zaXRpb25hbCBzb3kgcHJvdG8gc3VwcG9ydDpcbiAqICAgICBodHRwOi8vZ290by9zb3ktcGFyYW0tbWlncmF0aW9uXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludH0gbXNnIFRoZSBtc2cgaW5zdGFuY2UgdG8gdHJhbnNmb3JtLlxuICogQHJldHVybiB7IU9iamVjdH1cbiAqIEBzdXBwcmVzcyB7dW51c2VkTG9jYWxWYXJpYWJsZXN9IGYgaXMgb25seSB1c2VkIGZvciBuZXN0ZWQgbWVzc2FnZXNcbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQudG9PYmplY3QgPSBmdW5jdGlvbihpbmNsdWRlSW5zdGFuY2UsIG1zZykge1xuICB2YXIgZiwgb2JqID0ge1xuICAgIGlkOiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdChtc2csIDEsIDApLFxuICAgIGluZm86IChmID0gbXNnLmdldEluZm8oKSkgJiYgcHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRJbmZvLnRvT2JqZWN0KGluY2x1ZGVJbnN0YW5jZSwgZiksXG4gICAgbmZjSWRMaXN0TGlzdDogKGYgPSBqc3BiLk1lc3NhZ2UuZ2V0UmVwZWF0ZWRGaWVsZChtc2csIDMpKSA9PSBudWxsID8gdW5kZWZpbmVkIDogZixcbiAgICBvbk1hcFg6IGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KG1zZywgNCwgMCksXG4gICAgb25NYXBZOiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdChtc2csIDUsIDApLFxuICAgIHNuOiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdChtc2csIDYsIFwiXCIpLFxuICAgIGNpcG9zaXRpb246IChmID0gbXNnLmdldENpcG9zaXRpb24oKSkgJiYgcHJvdG8uYmFzZS52MS5Qb3NpdGlvbi50b09iamVjdChpbmNsdWRlSW5zdGFuY2UsIGYpXG4gIH07XG5cbiAgaWYgKGluY2x1ZGVJbnN0YW5jZSkge1xuICAgIG9iai4kanNwYk1lc3NhZ2VJbnN0YW5jZSA9IG1zZztcbiAgfVxuICByZXR1cm4gb2JqO1xufTtcbn1cblxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHBhcmFtIHtqc3BiLkJ5dGVTb3VyY2V9IGJ5dGVzIFRoZSBieXRlcyB0byBkZXNlcmlhbGl6ZS5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludH1cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQuZGVzZXJpYWxpemVCaW5hcnkgPSBmdW5jdGlvbihieXRlcykge1xuICB2YXIgcmVhZGVyID0gbmV3IGpzcGIuQmluYXJ5UmVhZGVyKGJ5dGVzKTtcbiAgdmFyIG1zZyA9IG5ldyBwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludDtcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihtc2csIHJlYWRlcik7XG59O1xuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkgZnJvbSB0aGVcbiAqIGdpdmVuIHJlYWRlciBpbnRvIHRoZSBnaXZlbiBtZXNzYWdlIG9iamVjdC5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50fSBtc2cgVGhlIG1lc3NhZ2Ugb2JqZWN0IHRvIGRlc2VyaWFsaXplIGludG8uXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVJlYWRlcn0gcmVhZGVyIFRoZSBCaW5hcnlSZWFkZXIgdG8gdXNlLlxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50fVxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIgPSBmdW5jdGlvbihtc2csIHJlYWRlcikge1xuICB3aGlsZSAocmVhZGVyLm5leHRGaWVsZCgpKSB7XG4gICAgaWYgKHJlYWRlci5pc0VuZEdyb3VwKCkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB2YXIgZmllbGQgPSByZWFkZXIuZ2V0RmllbGROdW1iZXIoKTtcbiAgICBzd2l0Y2ggKGZpZWxkKSB7XG4gICAgY2FzZSAxOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtudW1iZXJ9ICovIChyZWFkZXIucmVhZEludDY0KCkpO1xuICAgICAgbXNnLnNldElkKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMjpcbiAgICAgIHZhciB2YWx1ZSA9IG5ldyBwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm87XG4gICAgICByZWFkZXIucmVhZE1lc3NhZ2UodmFsdWUscHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRJbmZvLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcik7XG4gICAgICBtc2cuc2V0SW5mbyh2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDM6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge3N0cmluZ30gKi8gKHJlYWRlci5yZWFkU3RyaW5nKCkpO1xuICAgICAgbXNnLmFkZE5mY0lkTGlzdCh2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDQ6XG4gICAgICB2YXIgdmFsdWUgPSAvKiogQHR5cGUge251bWJlcn0gKi8gKHJlYWRlci5yZWFkSW50NjQoKSk7XG4gICAgICBtc2cuc2V0T25NYXBYKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgNTpcbiAgICAgIHZhciB2YWx1ZSA9IC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAocmVhZGVyLnJlYWRJbnQ2NCgpKTtcbiAgICAgIG1zZy5zZXRPbk1hcFkodmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSA2OlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChyZWFkZXIucmVhZFN0cmluZygpKTtcbiAgICAgIG1zZy5zZXRTbih2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDc6XG4gICAgICB2YXIgdmFsdWUgPSBuZXcgcHJvdG8uYmFzZS52MS5Qb3NpdGlvbjtcbiAgICAgIHJlYWRlci5yZWFkTWVzc2FnZSh2YWx1ZSxwcm90by5iYXNlLnYxLlBvc2l0aW9uLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcik7XG4gICAgICBtc2cuc2V0Q2lwb3NpdGlvbih2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgcmVhZGVyLnNraXBGaWVsZCgpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBtc2c7XG59O1xuXG5cbi8qKlxuICogU2VyaWFsaXplcyB0aGUgbWVzc2FnZSB0byBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHJldHVybiB7IVVpbnQ4QXJyYXl9XG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnkgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHdyaXRlciA9IG5ldyBqc3BiLkJpbmFyeVdyaXRlcigpO1xuICBwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLCB3cml0ZXIpO1xuICByZXR1cm4gd3JpdGVyLmdldFJlc3VsdEJ1ZmZlcigpO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIGdpdmVuIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmVcbiAqIGZvcm1hdCksIHdyaXRpbmcgdG8gdGhlIGdpdmVuIEJpbmFyeVdyaXRlci5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50fSBtZXNzYWdlXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVdyaXRlcn0gd3JpdGVyXG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyID0gZnVuY3Rpb24obWVzc2FnZSwgd3JpdGVyKSB7XG4gIHZhciBmID0gdW5kZWZpbmVkO1xuICBmID0gbWVzc2FnZS5nZXRJZCgpO1xuICBpZiAoZiAhPT0gMCkge1xuICAgIHdyaXRlci53cml0ZUludDY0KFxuICAgICAgMSxcbiAgICAgIGZcbiAgICApO1xuICB9XG4gIGYgPSBtZXNzYWdlLmdldEluZm8oKTtcbiAgaWYgKGYgIT0gbnVsbCkge1xuICAgIHdyaXRlci53cml0ZU1lc3NhZ2UoXG4gICAgICAyLFxuICAgICAgZixcbiAgICAgIHByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mby5zZXJpYWxpemVCaW5hcnlUb1dyaXRlclxuICAgICk7XG4gIH1cbiAgZiA9IG1lc3NhZ2UuZ2V0TmZjSWRMaXN0TGlzdCgpO1xuICBpZiAoZi5sZW5ndGggPiAwKSB7XG4gICAgd3JpdGVyLndyaXRlUmVwZWF0ZWRTdHJpbmcoXG4gICAgICAzLFxuICAgICAgZlxuICAgICk7XG4gIH1cbiAgZiA9IG1lc3NhZ2UuZ2V0T25NYXBYKCk7XG4gIGlmIChmICE9PSAwKSB7XG4gICAgd3JpdGVyLndyaXRlSW50NjQoXG4gICAgICA0LFxuICAgICAgZlxuICAgICk7XG4gIH1cbiAgZiA9IG1lc3NhZ2UuZ2V0T25NYXBZKCk7XG4gIGlmIChmICE9PSAwKSB7XG4gICAgd3JpdGVyLndyaXRlSW50NjQoXG4gICAgICA1LFxuICAgICAgZlxuICAgICk7XG4gIH1cbiAgZiA9IG1lc3NhZ2UuZ2V0U24oKTtcbiAgaWYgKGYubGVuZ3RoID4gMCkge1xuICAgIHdyaXRlci53cml0ZVN0cmluZyhcbiAgICAgIDYsXG4gICAgICBmXG4gICAgKTtcbiAgfVxuICBmID0gbWVzc2FnZS5nZXRDaXBvc2l0aW9uKCk7XG4gIGlmIChmICE9IG51bGwpIHtcbiAgICB3cml0ZXIud3JpdGVNZXNzYWdlKFxuICAgICAgNyxcbiAgICAgIGYsXG4gICAgICBwcm90by5iYXNlLnYxLlBvc2l0aW9uLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyXG4gICAgKTtcbiAgfVxufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGludDY0IGlkID0gMTtcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQucHJvdG90eXBlLmdldElkID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge251bWJlcn0gKi8gKGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsIDEsIDApKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludH0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50LnByb3RvdHlwZS5zZXRJZCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywgMSwgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIENvbnRyb2xQb2ludEluZm8gaW5mbyA9IDI7XG4gKiBAcmV0dXJuIHs/cHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRJbmZvfVxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludC5wcm90b3R5cGUuZ2V0SW5mbyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlez9wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludEluZm99ICovIChcbiAgICBqc3BiLk1lc3NhZ2UuZ2V0V3JhcHBlckZpZWxkKHRoaXMsIHByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mbywgMikpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7P3Byb3RvLmJhc2UudjEuQ29udHJvbFBvaW50SW5mb3x1bmRlZmluZWR9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnR9IHJldHVybnMgdGhpc1xuKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50LnByb3RvdHlwZS5zZXRJbmZvID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRXcmFwcGVyRmllbGQodGhpcywgMiwgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIENsZWFycyB0aGUgbWVzc2FnZSBmaWVsZCBtYWtpbmcgaXQgdW5kZWZpbmVkLlxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50fSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQucHJvdG90eXBlLmNsZWFySW5mbyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gdGhpcy5zZXRJbmZvKHVuZGVmaW5lZCk7XG59O1xuXG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIHRoaXMgZmllbGQgaXMgc2V0LlxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQucHJvdG90eXBlLmhhc0luZm8gPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5nZXRGaWVsZCh0aGlzLCAyKSAhPSBudWxsO1xufTtcblxuXG4vKipcbiAqIHJlcGVhdGVkIHN0cmluZyBuZmNfaWRfbGlzdCA9IDM7XG4gKiBAcmV0dXJuIHshQXJyYXk8c3RyaW5nPn1cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQucHJvdG90eXBlLmdldE5mY0lkTGlzdExpc3QgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7IUFycmF5PHN0cmluZz59ICovIChqc3BiLk1lc3NhZ2UuZ2V0UmVwZWF0ZWRGaWVsZCh0aGlzLCAzKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHshQXJyYXk8c3RyaW5nPn0gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludH0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50LnByb3RvdHlwZS5zZXROZmNJZExpc3RMaXN0ID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRGaWVsZCh0aGlzLCAzLCB2YWx1ZSB8fCBbXSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge251bWJlcj19IG9wdF9pbmRleFxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50fSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQucHJvdG90eXBlLmFkZE5mY0lkTGlzdCA9IGZ1bmN0aW9uKHZhbHVlLCBvcHRfaW5kZXgpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5hZGRUb1JlcGVhdGVkRmllbGQodGhpcywgMywgdmFsdWUsIG9wdF9pbmRleCk7XG59O1xuXG5cbi8qKlxuICogQ2xlYXJzIHRoZSBsaXN0IG1ha2luZyBpdCBlbXB0eSBidXQgbm9uLW51bGwuXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnR9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludC5wcm90b3R5cGUuY2xlYXJOZmNJZExpc3RMaXN0ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB0aGlzLnNldE5mY0lkTGlzdExpc3QoW10pO1xufTtcblxuXG4vKipcbiAqIG9wdGlvbmFsIGludDY0IG9uX21hcF94ID0gNDtcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQucHJvdG90eXBlLmdldE9uTWFwWCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtudW1iZXJ9ICovIChqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLCA0LCAwKSk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlXG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnR9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludC5wcm90b3R5cGUuc2V0T25NYXBYID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLCA0LCB2YWx1ZSk7XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgaW50NjQgb25fbWFwX3kgPSA1O1xuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludC5wcm90b3R5cGUuZ2V0T25NYXBZID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge251bWJlcn0gKi8gKGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsIDUsIDApKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludH0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50LnByb3RvdHlwZS5zZXRPbk1hcFkgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsIDUsIHZhbHVlKTtcbn07XG5cblxuLyoqXG4gKiBvcHRpb25hbCBzdHJpbmcgc24gPSA2O1xuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludC5wcm90b3R5cGUuZ2V0U24gPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAoanNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywgNiwgXCJcIikpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50fSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQucHJvdG90eXBlLnNldFNuID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNTdHJpbmdGaWVsZCh0aGlzLCA2LCB2YWx1ZSk7XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgUG9zaXRpb24gY2lQb3NpdGlvbiA9IDc7XG4gKiBAcmV0dXJuIHs/cHJvdG8uYmFzZS52MS5Qb3NpdGlvbn1cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnQucHJvdG90eXBlLmdldENpcG9zaXRpb24gPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZXs/cHJvdG8uYmFzZS52MS5Qb3NpdGlvbn0gKi8gKFxuICAgIGpzcGIuTWVzc2FnZS5nZXRXcmFwcGVyRmllbGQodGhpcywgcHJvdG8uYmFzZS52MS5Qb3NpdGlvbiwgNykpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7P3Byb3RvLmJhc2UudjEuUG9zaXRpb258dW5kZWZpbmVkfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50fSByZXR1cm5zIHRoaXNcbiovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludC5wcm90b3R5cGUuc2V0Q2lwb3NpdGlvbiA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0V3JhcHBlckZpZWxkKHRoaXMsIDcsIHZhbHVlKTtcbn07XG5cblxuLyoqXG4gKiBDbGVhcnMgdGhlIG1lc3NhZ2UgZmllbGQgbWFraW5nIGl0IHVuZGVmaW5lZC5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludH0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50LnByb3RvdHlwZS5jbGVhckNpcG9zaXRpb24gPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHRoaXMuc2V0Q2lwb3NpdGlvbih1bmRlZmluZWQpO1xufTtcblxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciB0aGlzIGZpZWxkIGlzIHNldC5cbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50LnByb3RvdHlwZS5oYXNDaXBvc2l0aW9uID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGQodGhpcywgNykgIT0gbnVsbDtcbn07XG5cblxuXG4vKipcbiAqIExpc3Qgb2YgcmVwZWF0ZWQgZmllbGRzIHdpdGhpbiB0aGlzIG1lc3NhZ2UgdHlwZS5cbiAqIEBwcml2YXRlIHshQXJyYXk8bnVtYmVyPn1cbiAqIEBjb25zdFxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZS5yZXBlYXRlZEZpZWxkc18gPSBbMl07XG5cblxuXG5pZiAoanNwYi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCkge1xuLyoqXG4gKiBDcmVhdGVzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHByb3RvLlxuICogRmllbGQgbmFtZXMgdGhhdCBhcmUgcmVzZXJ2ZWQgaW4gSmF2YVNjcmlwdCBhbmQgd2lsbCBiZSByZW5hbWVkIHRvIHBiX25hbWUuXG4gKiBPcHRpb25hbCBmaWVsZHMgdGhhdCBhcmUgbm90IHNldCB3aWxsIGJlIHNldCB0byB1bmRlZmluZWQuXG4gKiBUbyBhY2Nlc3MgYSByZXNlcnZlZCBmaWVsZCB1c2UsIGZvby5wYl88bmFtZT4sIGVnLCBmb28ucGJfZGVmYXVsdC5cbiAqIEZvciB0aGUgbGlzdCBvZiByZXNlcnZlZCBuYW1lcyBwbGVhc2Ugc2VlOlxuICogICAgIG5ldC9wcm90bzIvY29tcGlsZXIvanMvaW50ZXJuYWwvZ2VuZXJhdG9yLmNjI2tLZXl3b3JkLlxuICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2luY2x1ZGVJbnN0YW5jZSBEZXByZWNhdGVkLiB3aGV0aGVyIHRvIGluY2x1ZGUgdGhlXG4gKiAgICAgSlNQQiBpbnN0YW5jZSBmb3IgdHJhbnNpdGlvbmFsIHNveSBwcm90byBzdXBwb3J0OlxuICogICAgIGh0dHA6Ly9nb3RvL3NveS1wYXJhbS1taWdyYXRpb25cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50U2ltcGxlLnByb3RvdHlwZS50b09iamVjdCA9IGZ1bmN0aW9uKG9wdF9pbmNsdWRlSW5zdGFuY2UpIHtcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50U2ltcGxlLnRvT2JqZWN0KG9wdF9pbmNsdWRlSW5zdGFuY2UsIHRoaXMpO1xufTtcblxuXG4vKipcbiAqIFN0YXRpYyB2ZXJzaW9uIG9mIHRoZSB7QHNlZSB0b09iamVjdH0gbWV0aG9kLlxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gaW5jbHVkZUluc3RhbmNlIERlcHJlY2F0ZWQuIFdoZXRoZXIgdG8gaW5jbHVkZVxuICogICAgIHRoZSBKU1BCIGluc3RhbmNlIGZvciB0cmFuc2l0aW9uYWwgc295IHByb3RvIHN1cHBvcnQ6XG4gKiAgICAgaHR0cDovL2dvdG8vc295LXBhcmFtLW1pZ3JhdGlvblxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRTaW1wbGV9IG1zZyBUaGUgbXNnIGluc3RhbmNlIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm4geyFPYmplY3R9XG4gKiBAc3VwcHJlc3Mge3VudXNlZExvY2FsVmFyaWFibGVzfSBmIGlzIG9ubHkgdXNlZCBmb3IgbmVzdGVkIG1lc3NhZ2VzXG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50U2ltcGxlLnRvT2JqZWN0ID0gZnVuY3Rpb24oaW5jbHVkZUluc3RhbmNlLCBtc2cpIHtcbiAgdmFyIGYsIG9iaiA9IHtcbiAgICBpZDoganNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQobXNnLCAxLCAwKSxcbiAgICBuZmNJZExpc3RMaXN0OiAoZiA9IGpzcGIuTWVzc2FnZS5nZXRSZXBlYXRlZEZpZWxkKG1zZywgMikpID09IG51bGwgPyB1bmRlZmluZWQgOiBmLFxuICAgIHNuOiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdChtc2csIDMsIFwiXCIpXG4gIH07XG5cbiAgaWYgKGluY2x1ZGVJbnN0YW5jZSkge1xuICAgIG9iai4kanNwYk1lc3NhZ2VJbnN0YW5jZSA9IG1zZztcbiAgfVxuICByZXR1cm4gb2JqO1xufTtcbn1cblxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBiaW5hcnkgZGF0YSAoaW4gcHJvdG9idWYgd2lyZSBmb3JtYXQpLlxuICogQHBhcmFtIHtqc3BiLkJ5dGVTb3VyY2V9IGJ5dGVzIFRoZSBieXRlcyB0byBkZXNlcmlhbGl6ZS5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZX1cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRTaW1wbGUuZGVzZXJpYWxpemVCaW5hcnkgPSBmdW5jdGlvbihieXRlcykge1xuICB2YXIgcmVhZGVyID0gbmV3IGpzcGIuQmluYXJ5UmVhZGVyKGJ5dGVzKTtcbiAgdmFyIG1zZyA9IG5ldyBwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZTtcbiAgcmV0dXJuIHByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50U2ltcGxlLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihtc2csIHJlYWRlcik7XG59O1xuXG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlIGZvcm1hdCkgZnJvbSB0aGVcbiAqIGdpdmVuIHJlYWRlciBpbnRvIHRoZSBnaXZlbiBtZXNzYWdlIG9iamVjdC5cbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50U2ltcGxlfSBtc2cgVGhlIG1lc3NhZ2Ugb2JqZWN0IHRvIGRlc2VyaWFsaXplIGludG8uXG4gKiBAcGFyYW0geyFqc3BiLkJpbmFyeVJlYWRlcn0gcmVhZGVyIFRoZSBCaW5hcnlSZWFkZXIgdG8gdXNlLlxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50U2ltcGxlfVxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIgPSBmdW5jdGlvbihtc2csIHJlYWRlcikge1xuICB3aGlsZSAocmVhZGVyLm5leHRGaWVsZCgpKSB7XG4gICAgaWYgKHJlYWRlci5pc0VuZEdyb3VwKCkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB2YXIgZmllbGQgPSByZWFkZXIuZ2V0RmllbGROdW1iZXIoKTtcbiAgICBzd2l0Y2ggKGZpZWxkKSB7XG4gICAgY2FzZSAxOlxuICAgICAgdmFyIHZhbHVlID0gLyoqIEB0eXBlIHtudW1iZXJ9ICovIChyZWFkZXIucmVhZEludDY0KCkpO1xuICAgICAgbXNnLnNldElkKHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMjpcbiAgICAgIHZhciB2YWx1ZSA9IC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAocmVhZGVyLnJlYWRTdHJpbmcoKSk7XG4gICAgICBtc2cuYWRkTmZjSWRMaXN0KHZhbHVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMzpcbiAgICAgIHZhciB2YWx1ZSA9IC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAocmVhZGVyLnJlYWRTdHJpbmcoKSk7XG4gICAgICBtc2cuc2V0U24odmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJlYWRlci5za2lwRmllbGQoKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbXNnO1xufTtcblxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGEgKGluIHByb3RvYnVmIHdpcmUgZm9ybWF0KS5cbiAqIEByZXR1cm4geyFVaW50OEFycmF5fVxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZS5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5ID0gZnVuY3Rpb24oKSB7XG4gIHZhciB3cml0ZXIgPSBuZXcganNwYi5CaW5hcnlXcml0ZXIoKTtcbiAgcHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRTaW1wbGUuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbn07XG5cblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBnaXZlbiBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhIChpbiBwcm90b2J1ZiB3aXJlXG4gKiBmb3JtYXQpLCB3cml0aW5nIHRvIHRoZSBnaXZlbiBCaW5hcnlXcml0ZXIuXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZX0gbWVzc2FnZVxuICogQHBhcmFtIHshanNwYi5CaW5hcnlXcml0ZXJ9IHdyaXRlclxuICogQHN1cHByZXNzIHt1bnVzZWRMb2NhbFZhcmlhYmxlc30gZiBpcyBvbmx5IHVzZWQgZm9yIG5lc3RlZCBtZXNzYWdlc1xuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciA9IGZ1bmN0aW9uKG1lc3NhZ2UsIHdyaXRlcikge1xuICB2YXIgZiA9IHVuZGVmaW5lZDtcbiAgZiA9IG1lc3NhZ2UuZ2V0SWQoKTtcbiAgaWYgKGYgIT09IDApIHtcbiAgICB3cml0ZXIud3JpdGVJbnQ2NChcbiAgICAgIDEsXG4gICAgICBmXG4gICAgKTtcbiAgfVxuICBmID0gbWVzc2FnZS5nZXROZmNJZExpc3RMaXN0KCk7XG4gIGlmIChmLmxlbmd0aCA+IDApIHtcbiAgICB3cml0ZXIud3JpdGVSZXBlYXRlZFN0cmluZyhcbiAgICAgIDIsXG4gICAgICBmXG4gICAgKTtcbiAgfVxuICBmID0gbWVzc2FnZS5nZXRTbigpO1xuICBpZiAoZi5sZW5ndGggPiAwKSB7XG4gICAgd3JpdGVyLndyaXRlU3RyaW5nKFxuICAgICAgMyxcbiAgICAgIGZcbiAgICApO1xuICB9XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgaW50NjQgaWQgPSAxO1xuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZS5wcm90b3R5cGUuZ2V0SWQgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAoanNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywgMSwgMCkpO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50U2ltcGxlfSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRTaW1wbGUucHJvdG90eXBlLnNldElkID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLCAxLCB2YWx1ZSk7XG59O1xuXG5cbi8qKlxuICogcmVwZWF0ZWQgc3RyaW5nIG5mY19pZF9saXN0ID0gMjtcbiAqIEByZXR1cm4geyFBcnJheTxzdHJpbmc+fVxuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZS5wcm90b3R5cGUuZ2V0TmZjSWRMaXN0TGlzdCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHshQXJyYXk8c3RyaW5nPn0gKi8gKGpzcGIuTWVzc2FnZS5nZXRSZXBlYXRlZEZpZWxkKHRoaXMsIDIpKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0geyFBcnJheTxzdHJpbmc+fSB2YWx1ZVxuICogQHJldHVybiB7IXByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50U2ltcGxlfSByZXR1cm5zIHRoaXNcbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRTaW1wbGUucHJvdG90eXBlLnNldE5mY0lkTGlzdExpc3QgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLnNldEZpZWxkKHRoaXMsIDIsIHZhbHVlIHx8IFtdKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7bnVtYmVyPX0gb3B0X2luZGV4XG4gKiBAcmV0dXJuIHshcHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRTaW1wbGV9IHJldHVybnMgdGhpc1xuICovXG5wcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZS5wcm90b3R5cGUuYWRkTmZjSWRMaXN0ID0gZnVuY3Rpb24odmFsdWUsIG9wdF9pbmRleCkge1xuICByZXR1cm4ganNwYi5NZXNzYWdlLmFkZFRvUmVwZWF0ZWRGaWVsZCh0aGlzLCAyLCB2YWx1ZSwgb3B0X2luZGV4KTtcbn07XG5cblxuLyoqXG4gKiBDbGVhcnMgdGhlIGxpc3QgbWFraW5nIGl0IGVtcHR5IGJ1dCBub24tbnVsbC5cbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZX0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50U2ltcGxlLnByb3RvdHlwZS5jbGVhck5mY0lkTGlzdExpc3QgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHRoaXMuc2V0TmZjSWRMaXN0TGlzdChbXSk7XG59O1xuXG5cbi8qKlxuICogb3B0aW9uYWwgc3RyaW5nIHNuID0gMztcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xucHJvdG8uYmFzZS52MS5Db250cm9sUG9pbnRTaW1wbGUucHJvdG90eXBlLmdldFNuID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAvKiogQHR5cGUge3N0cmluZ30gKi8gKGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsIDMsIFwiXCIpKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm4geyFwcm90by5iYXNlLnYxLkNvbnRyb2xQb2ludFNpbXBsZX0gcmV0dXJucyB0aGlzXG4gKi9cbnByb3RvLmJhc2UudjEuQ29udHJvbFBvaW50U2ltcGxlLnByb3RvdHlwZS5zZXRTbiA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zU3RyaW5nRmllbGQodGhpcywgMywgdmFsdWUpO1xufTtcblxuXG4vKipcbiAqIEBlbnVtIHtudW1iZXJ9XG4gKi9cbnByb3RvLmJhc2UudjEuRXJyb3JDb2RlID0ge1xuICBPSzogMCxcbiAgVE9LRU5FWFBJUkU6IDEwMDAsXG4gIFVTRVJCQU46IDEwMDEsXG4gIFZGQ09ERUVYUElSRTogMTAwMixcbiAgU01TU0VOREZBSUw6IDEwMDMsXG4gIFVTRVJTVEFUVVNFUlI6IDEwMDgsXG4gIFNUQVRVU0VSUjogMTAwOSxcbiAgUEhPTkVOT1RFWElTVDogMjAwMSxcbiAgVU5LTk9XTkVSUjogMjAwMixcbiAgUEFSQU1FUlI6IDUwMDAsXG4gIEhFQURTT1VSQ0VFUlI6IDUwMDEsXG4gIERBVEFCQVNFOiA5MDAwLFxuICBOT1JFQ09SRDogOTAwMVxufTtcblxuLyoqXG4gKiBAZW51bSB7bnVtYmVyfVxuICovXG5wcm90by5iYXNlLnYxLlNob3BUeXBlID0ge1xuICBVTktOT1dTSE9QOiAwLFxuICBQQVJLU0hPUDogMSxcbiAgSVBTSE9QOiAyLFxuICBBRE1JTlNIT1A6IDNcbn07XG5cbi8qKlxuICogQGVudW0ge251bWJlcn1cbiAqL1xucHJvdG8uYmFzZS52MS5Vc2VyVHlwZSA9IHtcbiAgVU5ERUZJTkU6IDAsXG4gIEFQUFVTRVI6IDEsXG4gIFBBUktBRE1JTjogMixcbiAgSVBBRE1JTjogMyxcbiAgU1lTQURNSU46IDRcbn07XG5cbi8qKlxuICogQGVudW0ge251bWJlcn1cbiAqL1xucHJvdG8uYmFzZS52MS5Mb2dpblNvdXJjZSA9IHtcbiAgVU5ERUY6IDAsXG4gIFVTRVJBUFA6IDEsXG4gIFdFQkFETUlOOiAyLFxuICBTSE9QQVBQOiAzXG59O1xuXG4vKipcbiAqIEBlbnVtIHtudW1iZXJ9XG4gKi9cbnByb3RvLmJhc2UudjEuU21zVHlwZSA9IHtcbiAgVU5LTk9XOiAwLFxuICBMT0dJTjogMSxcbiAgU0lHTlVQOiAyXG59O1xuXG4vKipcbiAqIEBlbnVtIHtudW1iZXJ9XG4gKi9cbnByb3RvLmJhc2UudjEuUHJvamVjdENvbnRlbnRUeXBlID0ge1xuICBURVhUOiAwLFxuICBIVE1MOiAxXG59O1xuXG4vKipcbiAqIEBlbnVtIHtudW1iZXJ9XG4gKi9cbnByb3RvLmJhc2UudjEuQ3JpdGVyaW9uVHlwZSA9IHtcbiAgQ1JVTktOT1c6IDAsXG4gIENST1JERVI6IDEsXG4gIENSTlVNOiAyXG59O1xuXG4vKipcbiAqIEBlbnVtIHtudW1iZXJ9XG4gKi9cbnByb3RvLmJhc2UudjEuQ1R5cGUgPSB7XG4gIFVOS05PV1RZUEU6IDAsXG4gIEJFR0lOVFlQRTogMSxcbiAgTUlERExFVFlQRTogMixcbiAgRU5EVFlQRTogM1xufTtcblxuLyoqXG4gKiBAZW51bSB7bnVtYmVyfVxuICovXG5wcm90by5iYXNlLnYxLlN0YXR1c1R5cGUgPSB7XG4gIFVOS05PV1NUQVRVUzogMCxcbiAgTk9STUFMU1RBVFVTOiAxLFxuICBESVNBQkxFRFNUQVRVUzogOCxcbiAgREVMRVRFU1RBVFVTOiA5XG59O1xuXG5nb29nLm9iamVjdC5leHRlbmQoZXhwb3J0cywgcHJvdG8uYmFzZS52MSk7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///36\n");
  8167. /***/ }),
  8168. /* 37 */
  8169. /*!*******************************************************************************************************!*\
  8170. !*** D:/Work2/Orienteering/TrackOffical/node_modules/google-protobuf/google/protobuf/timestamp_pb.js ***!
  8171. \*******************************************************************************************************/
  8172. /*! no static exports found */
  8173. /***/ (function(module, exports, __webpack_require__) {
  8174. // source: google/protobuf/timestamp.proto
  8175. /**
  8176. * @fileoverview
  8177. * @enhanceable
  8178. * @suppress {missingRequire} reports error on implicit type usages.
  8179. * @suppress {messageConventions} JS Compiler reports an error if a variable or
  8180. * field starts with 'MSG_' and isn't a translatable message.
  8181. * @public
  8182. */
  8183. // GENERATED CODE -- DO NOT EDIT!
  8184. /* eslint-disable */
  8185. // @ts-nocheck
  8186. var jspb = __webpack_require__(/*! google-protobuf */ 34);
  8187. var goog = jspb;
  8188. var global = typeof globalThis !== 'undefined' && globalThis || typeof window !== 'undefined' && window || typeof global !== 'undefined' && global || typeof self !== 'undefined' && self || function () {
  8189. return this;
  8190. }.call(null) || Function('return this')();
  8191. goog.exportSymbol('proto.google.protobuf.Timestamp', null, global);
  8192. /**
  8193. * Generated by JsPbCodeGenerator.
  8194. * @param {Array=} opt_data Optional initial data array, typically from a
  8195. * server response, or constructed directly in Javascript. The array is used
  8196. * in place and becomes part of the constructed object. It is not cloned.
  8197. * If no data is provided, the constructed object will be empty, but still
  8198. * valid.
  8199. * @extends {jspb.Message}
  8200. * @constructor
  8201. */
  8202. proto.google.protobuf.Timestamp = function (opt_data) {
  8203. jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  8204. };
  8205. goog.inherits(proto.google.protobuf.Timestamp, jspb.Message);
  8206. if (goog.DEBUG && !COMPILED) {
  8207. /**
  8208. * @public
  8209. * @override
  8210. */
  8211. proto.google.protobuf.Timestamp.displayName = 'proto.google.protobuf.Timestamp';
  8212. }
  8213. if (jspb.Message.GENERATE_TO_OBJECT) {
  8214. /**
  8215. * Creates an object representation of this proto.
  8216. * Field names that are reserved in JavaScript and will be renamed to pb_name.
  8217. * Optional fields that are not set will be set to undefined.
  8218. * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
  8219. * For the list of reserved names please see:
  8220. * net/proto2/compiler/js/internal/generator.cc#kKeyword.
  8221. * @param {boolean=} opt_includeInstance Deprecated. whether to include the
  8222. * JSPB instance for transitional soy proto support:
  8223. * http://goto/soy-param-migration
  8224. * @return {!Object}
  8225. */
  8226. proto.google.protobuf.Timestamp.prototype.toObject = function (opt_includeInstance) {
  8227. return proto.google.protobuf.Timestamp.toObject(opt_includeInstance, this);
  8228. };
  8229. /**
  8230. * Static version of the {@see toObject} method.
  8231. * @param {boolean|undefined} includeInstance Deprecated. Whether to include
  8232. * the JSPB instance for transitional soy proto support:
  8233. * http://goto/soy-param-migration
  8234. * @param {!proto.google.protobuf.Timestamp} msg The msg instance to transform.
  8235. * @return {!Object}
  8236. * @suppress {unusedLocalVariables} f is only used for nested messages
  8237. */
  8238. proto.google.protobuf.Timestamp.toObject = function (includeInstance, msg) {
  8239. var f,
  8240. obj = {
  8241. seconds: jspb.Message.getFieldWithDefault(msg, 1, 0),
  8242. nanos: jspb.Message.getFieldWithDefault(msg, 2, 0)
  8243. };
  8244. if (includeInstance) {
  8245. obj.$jspbMessageInstance = msg;
  8246. }
  8247. return obj;
  8248. };
  8249. }
  8250. /**
  8251. * Deserializes binary data (in protobuf wire format).
  8252. * @param {jspb.ByteSource} bytes The bytes to deserialize.
  8253. * @return {!proto.google.protobuf.Timestamp}
  8254. */
  8255. proto.google.protobuf.Timestamp.deserializeBinary = function (bytes) {
  8256. var reader = new jspb.BinaryReader(bytes);
  8257. var msg = new proto.google.protobuf.Timestamp();
  8258. return proto.google.protobuf.Timestamp.deserializeBinaryFromReader(msg, reader);
  8259. };
  8260. /**
  8261. * Deserializes binary data (in protobuf wire format) from the
  8262. * given reader into the given message object.
  8263. * @param {!proto.google.protobuf.Timestamp} msg The message object to deserialize into.
  8264. * @param {!jspb.BinaryReader} reader The BinaryReader to use.
  8265. * @return {!proto.google.protobuf.Timestamp}
  8266. */
  8267. proto.google.protobuf.Timestamp.deserializeBinaryFromReader = function (msg, reader) {
  8268. while (reader.nextField()) {
  8269. if (reader.isEndGroup()) {
  8270. break;
  8271. }
  8272. var field = reader.getFieldNumber();
  8273. switch (field) {
  8274. case 1:
  8275. var value = /** @type {number} */reader.readInt64();
  8276. msg.setSeconds(value);
  8277. break;
  8278. case 2:
  8279. var value = /** @type {number} */reader.readInt32();
  8280. msg.setNanos(value);
  8281. break;
  8282. default:
  8283. reader.skipField();
  8284. break;
  8285. }
  8286. }
  8287. return msg;
  8288. };
  8289. /**
  8290. * Serializes the message to binary data (in protobuf wire format).
  8291. * @return {!Uint8Array}
  8292. */
  8293. proto.google.protobuf.Timestamp.prototype.serializeBinary = function () {
  8294. var writer = new jspb.BinaryWriter();
  8295. proto.google.protobuf.Timestamp.serializeBinaryToWriter(this, writer);
  8296. return writer.getResultBuffer();
  8297. };
  8298. /**
  8299. * Serializes the given message to binary data (in protobuf wire
  8300. * format), writing to the given BinaryWriter.
  8301. * @param {!proto.google.protobuf.Timestamp} message
  8302. * @param {!jspb.BinaryWriter} writer
  8303. * @suppress {unusedLocalVariables} f is only used for nested messages
  8304. */
  8305. proto.google.protobuf.Timestamp.serializeBinaryToWriter = function (message, writer) {
  8306. var f = undefined;
  8307. f = message.getSeconds();
  8308. if (f !== 0) {
  8309. writer.writeInt64(1, f);
  8310. }
  8311. f = message.getNanos();
  8312. if (f !== 0) {
  8313. writer.writeInt32(2, f);
  8314. }
  8315. };
  8316. /**
  8317. * optional int64 seconds = 1;
  8318. * @return {number}
  8319. */
  8320. proto.google.protobuf.Timestamp.prototype.getSeconds = function () {
  8321. return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 1, 0)
  8322. );
  8323. };
  8324. /**
  8325. * @param {number} value
  8326. * @return {!proto.google.protobuf.Timestamp} returns this
  8327. */
  8328. proto.google.protobuf.Timestamp.prototype.setSeconds = function (value) {
  8329. return jspb.Message.setProto3IntField(this, 1, value);
  8330. };
  8331. /**
  8332. * optional int32 nanos = 2;
  8333. * @return {number}
  8334. */
  8335. proto.google.protobuf.Timestamp.prototype.getNanos = function () {
  8336. return (/** @type {number} */jspb.Message.getFieldWithDefault(this, 2, 0)
  8337. );
  8338. };
  8339. /**
  8340. * @param {number} value
  8341. * @return {!proto.google.protobuf.Timestamp} returns this
  8342. */
  8343. proto.google.protobuf.Timestamp.prototype.setNanos = function (value) {
  8344. return jspb.Message.setProto3IntField(this, 2, value);
  8345. };
  8346. goog.object.extend(exports, proto.google.protobuf);
  8347. /* This code will be inserted into generated code for
  8348. * google/protobuf/timestamp.proto. */
  8349. /**
  8350. * Returns a JavaScript 'Date' object corresponding to this Timestamp.
  8351. * @return {!Date}
  8352. */
  8353. proto.google.protobuf.Timestamp.prototype.toDate = function () {
  8354. var seconds = this.getSeconds();
  8355. var nanos = this.getNanos();
  8356. return new Date(seconds * 1000 + nanos / 1000000);
  8357. };
  8358. /**
  8359. * Sets the value of this Timestamp object to be the given Date.
  8360. * @param {!Date} value The value to set.
  8361. */
  8362. proto.google.protobuf.Timestamp.prototype.fromDate = function (value) {
  8363. this.setSeconds(Math.floor(value.getTime() / 1000));
  8364. this.setNanos(value.getMilliseconds() * 1000000);
  8365. };
  8366. /**
  8367. * Factory method that returns a Timestamp object with value equal to
  8368. * the given Date.
  8369. * @param {!Date} value The value to set.
  8370. * @return {!proto.google.protobuf.Timestamp}
  8371. */
  8372. proto.google.protobuf.Timestamp.fromDate = function (value) {
  8373. var timestamp = new proto.google.protobuf.Timestamp();
  8374. timestamp.fromDate(value);
  8375. return timestamp;
  8376. };
  8377. /***/ }),
  8378. /* 38 */
  8379. /*!*************************************************************************!*\
  8380. !*** D:/Work2/Orienteering/TrackOffical/node_modules/base-64/base64.js ***!
  8381. \*************************************************************************/
  8382. /*! no static exports found */
  8383. /***/ (function(module, exports, __webpack_require__) {
  8384. /* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4);
  8385. /*! https://mths.be/base64 v1.0.0 by @mathias | MIT license */
  8386. ;
  8387. (function (root) {
  8388. // Detect free variables `exports`.
  8389. var freeExports = ( false ? undefined : _typeof(exports)) == 'object' && exports;
  8390. // Detect free variable `module`.
  8391. var freeModule = ( false ? undefined : _typeof(module)) == 'object' && module && module.exports == freeExports && module;
  8392. // Detect free variable `global`, from Node.js or Browserified code, and use
  8393. // it as `root`.
  8394. var freeGlobal = (typeof global === "undefined" ? "undefined" : _typeof(global)) == 'object' && global;
  8395. if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {
  8396. root = freeGlobal;
  8397. }
  8398. /*--------------------------------------------------------------------------*/
  8399. var InvalidCharacterError = function InvalidCharacterError(message) {
  8400. this.message = message;
  8401. };
  8402. InvalidCharacterError.prototype = new Error();
  8403. InvalidCharacterError.prototype.name = 'InvalidCharacterError';
  8404. var error = function error(message) {
  8405. // Note: the error messages used throughout this file match those used by
  8406. // the native `atob`/`btoa` implementation in Chromium.
  8407. throw new InvalidCharacterError(message);
  8408. };
  8409. var TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
  8410. // http://whatwg.org/html/common-microsyntaxes.html#space-character
  8411. var REGEX_SPACE_CHARACTERS = /[\t\n\f\r ]/g;
  8412. // `decode` is designed to be fully compatible with `atob` as described in the
  8413. // HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob
  8414. // The optimized base64-decoding algorithm used is based on @atk’s excellent
  8415. // implementation. https://gist.github.com/atk/1020396
  8416. var decode = function decode(input) {
  8417. input = String(input).replace(REGEX_SPACE_CHARACTERS, '');
  8418. var length = input.length;
  8419. if (length % 4 == 0) {
  8420. input = input.replace(/==?$/, '');
  8421. length = input.length;
  8422. }
  8423. if (length % 4 == 1 ||
  8424. // http://whatwg.org/C#alphanumeric-ascii-characters
  8425. /[^+a-zA-Z0-9/]/.test(input)) {
  8426. error('Invalid character: the string to be decoded is not correctly encoded.');
  8427. }
  8428. var bitCounter = 0;
  8429. var bitStorage;
  8430. var buffer;
  8431. var output = '';
  8432. var position = -1;
  8433. while (++position < length) {
  8434. buffer = TABLE.indexOf(input.charAt(position));
  8435. bitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer;
  8436. // Unless this is the first of a group of 4 characters…
  8437. if (bitCounter++ % 4) {
  8438. // …convert the first 8 bits to a single ASCII character.
  8439. output += String.fromCharCode(0xFF & bitStorage >> (-2 * bitCounter & 6));
  8440. }
  8441. }
  8442. return output;
  8443. };
  8444. // `encode` is designed to be fully compatible with `btoa` as described in the
  8445. // HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa
  8446. var encode = function encode(input) {
  8447. input = String(input);
  8448. if (/[^\0-\xFF]/.test(input)) {
  8449. // Note: no need to special-case astral symbols here, as surrogates are
  8450. // matched, and the input is supposed to only contain ASCII anyway.
  8451. error('The string to be encoded contains characters outside of the ' + 'Latin1 range.');
  8452. }
  8453. var padding = input.length % 3;
  8454. var output = '';
  8455. var position = -1;
  8456. var a;
  8457. var b;
  8458. var c;
  8459. var buffer;
  8460. // Make sure any padding is handled outside of the loop.
  8461. var length = input.length - padding;
  8462. while (++position < length) {
  8463. // Read three bytes, i.e. 24 bits.
  8464. a = input.charCodeAt(position) << 16;
  8465. b = input.charCodeAt(++position) << 8;
  8466. c = input.charCodeAt(++position);
  8467. buffer = a + b + c;
  8468. // Turn the 24 bits into four chunks of 6 bits each, and append the
  8469. // matching character for each of them to the output.
  8470. output += TABLE.charAt(buffer >> 18 & 0x3F) + TABLE.charAt(buffer >> 12 & 0x3F) + TABLE.charAt(buffer >> 6 & 0x3F) + TABLE.charAt(buffer & 0x3F);
  8471. }
  8472. if (padding == 2) {
  8473. a = input.charCodeAt(position) << 8;
  8474. b = input.charCodeAt(++position);
  8475. buffer = a + b;
  8476. output += TABLE.charAt(buffer >> 10) + TABLE.charAt(buffer >> 4 & 0x3F) + TABLE.charAt(buffer << 2 & 0x3F) + '=';
  8477. } else if (padding == 1) {
  8478. buffer = input.charCodeAt(position);
  8479. output += TABLE.charAt(buffer >> 2) + TABLE.charAt(buffer << 4 & 0x3F) + '==';
  8480. }
  8481. return output;
  8482. };
  8483. var base64 = {
  8484. 'encode': encode,
  8485. 'decode': decode,
  8486. 'version': '1.0.0'
  8487. };
  8488. // Some AMD build optimizers, like r.js, check for specific condition patterns
  8489. // like the following:
  8490. if ( true && _typeof(__webpack_require__(/*! !webpack amd options */ 40)) == 'object' && __webpack_require__(/*! !webpack amd options */ 40)) {
  8491. !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {
  8492. return base64;
  8493. }).call(exports, __webpack_require__, exports, module),
  8494. __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  8495. } else if (freeExports && !freeExports.nodeType) {
  8496. if (freeModule) {
  8497. // in Node.js or RingoJS v0.8.0+
  8498. freeModule.exports = base64;
  8499. } else {
  8500. // in Narwhal or RingoJS v0.7.0-
  8501. for (var key in base64) {
  8502. base64.hasOwnProperty(key) && (freeExports[key] = base64[key]);
  8503. }
  8504. }
  8505. } else {
  8506. // in Rhino or a web browser
  8507. root.base64 = base64;
  8508. }
  8509. })(this);
  8510. /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/webpack/buildin/module.js */ 39)(module), __webpack_require__(/*! ./../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/webpack/buildin/global.js */ 35)))
  8511. /***/ }),
  8512. /* 39 */
  8513. /*!***********************************!*\
  8514. !*** (webpack)/buildin/module.js ***!
  8515. \***********************************/
  8516. /*! no static exports found */
  8517. /***/ (function(module, exports) {
  8518. module.exports = function(module) {
  8519. if (!module.webpackPolyfill) {
  8520. module.deprecate = function() {};
  8521. module.paths = [];
  8522. // module.parent = undefined by default
  8523. if (!module.children) module.children = [];
  8524. Object.defineProperty(module, "loaded", {
  8525. enumerable: true,
  8526. get: function() {
  8527. return module.l;
  8528. }
  8529. });
  8530. Object.defineProperty(module, "id", {
  8531. enumerable: true,
  8532. get: function() {
  8533. return module.i;
  8534. }
  8535. });
  8536. module.webpackPolyfill = 1;
  8537. }
  8538. return module;
  8539. };
  8540. /***/ }),
  8541. /* 40 */
  8542. /*!****************************************!*\
  8543. !*** (webpack)/buildin/amd-options.js ***!
  8544. \****************************************/
  8545. /*! no static exports found */
  8546. /***/ (function(module, exports) {
  8547. /* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {/* globals __webpack_amd_options__ */
  8548. module.exports = __webpack_amd_options__;
  8549. /* WEBPACK VAR INJECTION */}.call(this, {}))
  8550. /***/ }),
  8551. /* 41 */
  8552. /*!**********************!*\
  8553. !*** external "Vue" ***!
  8554. \**********************/
  8555. /*! no static exports found */
  8556. /***/ (function(module, exports) {
  8557. module.exports = Vue;
  8558. /***/ }),
  8559. /* 42 */
  8560. /*!**************************************************!*\
  8561. !*** D:/Work2/Orienteering/TrackOffical/App.vue ***!
  8562. \**************************************************/
  8563. /*! no static exports found */
  8564. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  8565. "use strict";
  8566. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./App.vue?vue&type=script&lang=js& */ 43);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);\nvar render, staticRenderFns, recyclableRender, components\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n render,\n staticRenderFns,\n false,\n null,\n null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"App.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUN1RDtBQUNMOzs7QUFHbEQ7QUFDOEs7QUFDOUssZ0JBQWdCLDJMQUFVO0FBQzFCLEVBQUUseUVBQU07QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNlLGdGIiwiZmlsZSI6IjQyLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHJlbmRlciwgc3RhdGljUmVuZGVyRm5zLCByZWN5Y2xhYmxlUmVuZGVyLCBjb21wb25lbnRzXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vQXBwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vQXBwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcIkFwcC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///42\n");
  8567. /***/ }),
  8568. /* 43 */
  8569. /*!***************************************************************************!*\
  8570. !*** D:/Work2/Orienteering/TrackOffical/App.vue?vue&type=script&lang=js& ***!
  8571. \***************************************************************************/
  8572. /*! no static exports found */
  8573. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  8574. "use strict";
  8575. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./App.vue?vue&type=script&lang=js& */ 44);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTJrQixDQUFnQixpbkJBQUcsRUFBQyIsImZpbGUiOiI0My5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQXBwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9BcHAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///43\n");
  8576. /***/ }),
  8577. /* 44 */
  8578. /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  8579. !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/App.vue?vue&type=script&lang=js& ***!
  8580. \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  8581. /*! no static exports found */
  8582. /***/ (function(module, exports, __webpack_require__) {
  8583. "use strict";
  8584. eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n onLaunch: function onLaunch() {\n __f__(\"log\", 'App Launch', \" at App.vue:4\");\n },\n onShow: function onShow() {\n __f__(\"log\", 'App Show', \" at App.vue:7\");\n },\n onHide: function onHide() {\n __f__(\"log\", 'App Hide', \" at App.vue:10\");\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 27)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vQXBwLnZ1ZSJdLCJuYW1lcyI6WyJvbkxhdW5jaCIsIm9uU2hvdyIsIm9uSGlkZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O2VBQ2U7RUFDZEEsUUFBUSxFQUFFLG9CQUFXO0lBQ3BCLGFBQVksWUFBWTtFQUN6QixDQUFDO0VBQ0RDLE1BQU0sRUFBRSxrQkFBVztJQUNsQixhQUFZLFVBQVU7RUFDdkIsQ0FBQztFQUNEQyxNQUFNLEVBQUUsa0JBQVc7SUFDbEIsYUFBWSxVQUFVO0VBQ3ZCO0FBQ0QsQ0FBQztBQUFBLDJCIiwiZmlsZSI6IjQ0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgZGVmYXVsdCB7XG5cdG9uTGF1bmNoOiBmdW5jdGlvbigpIHtcblx0XHRjb25zb2xlLmxvZygnQXBwIExhdW5jaCcpXG5cdH0sXG5cdG9uU2hvdzogZnVuY3Rpb24oKSB7XG5cdFx0Y29uc29sZS5sb2coJ0FwcCBTaG93Jylcblx0fSxcblx0b25IaWRlOiBmdW5jdGlvbigpIHtcblx0XHRjb25zb2xlLmxvZygnQXBwIEhpZGUnKVxuXHR9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///44\n");
  8585. /***/ }),
  8586. /* 45 */
  8587. /*!**********************************************************************!*\
  8588. !*** D:/Work2/Orienteering/TrackOffical/grpc/ass_api_grpc_web_pb.js ***!
  8589. \**********************************************************************/
  8590. /*! no static exports found */
  8591. /***/ (function(module, exports, __webpack_require__) {
  8592. eval("/**\n * @fileoverview gRPC-Web generated client stub for ass.v1\n * @enhanceable\n * @public\n */\n\n// Code generated by protoc-gen-grpc-web. DO NOT EDIT.\n// versions:\n// \tprotoc-gen-grpc-web v1.4.2\n// \tprotoc v3.20.3\n// source: ass_api.proto\n\n/* eslint-disable */\n// @ts-nocheck\n\nvar grpc = {};\ngrpc.web = __webpack_require__(/*! grpc-web */ 46);\nvar base_pb = __webpack_require__(/*! ./base_pb.js */ 36);\nvar proto = {};\nproto.ass = {};\nproto.ass.v1 = __webpack_require__(/*! ./ass_api_pb.js */ 33);\n\n/**\n * @param {string} hostname\n * @param {?Object} credentials\n * @param {?grpc.web.ClientOptions} options\n * @constructor\n * @struct\n * @final\n */\nproto.ass.v1.ApiAssClient = function (hostname, credentials, options) {\n if (!options) options = {};\n options.format = 'text';\n\n /**\n * @private @const {!grpc.web.GrpcWebClientBase} The client\n */\n this.client_ = new grpc.web.GrpcWebClientBase(options);\n\n /**\n * @private @const {string} The hostname\n */\n this.hostname_ = hostname.replace(/\\/+$/, '');\n};\n\n/**\n * @param {string} hostname\n * @param {?Object} credentials\n * @param {?grpc.web.ClientOptions} options\n * @constructor\n * @struct\n * @final\n */\nproto.ass.v1.ApiAssPromiseClient = function (hostname, credentials, options) {\n if (!options) options = {};\n options.format = 'text';\n\n /**\n * @private @const {!grpc.web.GrpcWebClientBase} The client\n */\n this.client_ = new grpc.web.GrpcWebClientBase(options);\n\n /**\n * @private @const {string} The hostname\n */\n this.hostname_ = hostname.replace(/\\/+$/, '');\n};\n\n/**\n * @const\n * @type {!grpc.web.MethodDescriptor<\n * !proto.base.v1.DefaultRequest,\n * !proto.ass.v1.AssShopListReply>}\n */\nvar methodDescriptor_ApiAss_AssShopList = new grpc.web.MethodDescriptor('/ass.v1.ApiAss/AssShopList', grpc.web.MethodType.UNARY, base_pb.DefaultRequest, proto.ass.v1.AssShopListReply,\n/**\n * @param {!proto.base.v1.DefaultRequest} request\n * @return {!Uint8Array}\n */\nfunction (request) {\n return request.serializeBinary();\n}, proto.ass.v1.AssShopListReply.deserializeBinary);\n\n/**\n * @param {!proto.base.v1.DefaultRequest} request The\n * request proto\n * @param {?Object<string, string>} metadata User defined\n * call metadata\n * @param {function(?grpc.web.RpcError, ?proto.ass.v1.AssShopListReply)}\n * callback The callback function(error, response)\n * @return {!grpc.web.ClientReadableStream<!proto.ass.v1.AssShopListReply>|undefined}\n * The XHR Node Readable Stream\n */\nproto.ass.v1.ApiAssClient.prototype.assShopList = function (request, metadata, callback) {\n return this.client_.rpcCall(this.hostname_ + '/ass.v1.ApiAss/AssShopList', request, metadata || {}, methodDescriptor_ApiAss_AssShopList, callback);\n};\n\n/**\n * @param {!proto.base.v1.DefaultRequest} request The\n * request proto\n * @param {?Object<string, string>=} metadata User defined\n * call metadata\n * @return {!Promise<!proto.ass.v1.AssShopListReply>}\n * Promise that resolves to the response\n */\nproto.ass.v1.ApiAssPromiseClient.prototype.assShopList = function (request, metadata) {\n return this.client_.unaryCall(this.hostname_ + '/ass.v1.ApiAss/AssShopList', request, metadata || {}, methodDescriptor_ApiAss_AssShopList);\n};\n\n/**\n * @const\n * @type {!grpc.web.MethodDescriptor<\n * !proto.base.v1.IdRequest,\n * !proto.ass.v1.AssControlInfoListReply>}\n */\nvar methodDescriptor_ApiAss_AssControlInfoList = new grpc.web.MethodDescriptor('/ass.v1.ApiAss/AssControlInfoList', grpc.web.MethodType.UNARY, base_pb.IdRequest, proto.ass.v1.AssControlInfoListReply,\n/**\n * @param {!proto.base.v1.IdRequest} request\n * @return {!Uint8Array}\n */\nfunction (request) {\n return request.serializeBinary();\n}, proto.ass.v1.AssControlInfoListReply.deserializeBinary);\n\n/**\n * @param {!proto.base.v1.IdRequest} request The\n * request proto\n * @param {?Object<string, string>} metadata User defined\n * call metadata\n * @param {function(?grpc.web.RpcError, ?proto.ass.v1.AssControlInfoListReply)}\n * callback The callback function(error, response)\n * @return {!grpc.web.ClientReadableStream<!proto.ass.v1.AssControlInfoListReply>|undefined}\n * The XHR Node Readable Stream\n */\nproto.ass.v1.ApiAssClient.prototype.assControlInfoList = function (request, metadata, callback) {\n return this.client_.rpcCall(this.hostname_ + '/ass.v1.ApiAss/AssControlInfoList', request, metadata || {}, methodDescriptor_ApiAss_AssControlInfoList, callback);\n};\n\n/**\n * @param {!proto.base.v1.IdRequest} request The\n * request proto\n * @param {?Object<string, string>=} metadata User defined\n * call metadata\n * @return {!Promise<!proto.ass.v1.AssControlInfoListReply>}\n * Promise that resolves to the response\n */\nproto.ass.v1.ApiAssPromiseClient.prototype.assControlInfoList = function (request, metadata) {\n return this.client_.unaryCall(this.hostname_ + '/ass.v1.ApiAss/AssControlInfoList', request, metadata || {}, methodDescriptor_ApiAss_AssControlInfoList);\n};\n\n/**\n * @const\n * @type {!grpc.web.MethodDescriptor<\n * !proto.base.v1.IdRequest,\n * !proto.ass.v1.AssMapInfoDetailReply>}\n */\nvar methodDescriptor_ApiAss_AssMapInfoDetail = new grpc.web.MethodDescriptor('/ass.v1.ApiAss/AssMapInfoDetail', grpc.web.MethodType.UNARY, base_pb.IdRequest, proto.ass.v1.AssMapInfoDetailReply,\n/**\n * @param {!proto.base.v1.IdRequest} request\n * @return {!Uint8Array}\n */\nfunction (request) {\n return request.serializeBinary();\n}, proto.ass.v1.AssMapInfoDetailReply.deserializeBinary);\n\n/**\n * @param {!proto.base.v1.IdRequest} request The\n * request proto\n * @param {?Object<string, string>} metadata User defined\n * call metadata\n * @param {function(?grpc.web.RpcError, ?proto.ass.v1.AssMapInfoDetailReply)}\n * callback The callback function(error, response)\n * @return {!grpc.web.ClientReadableStream<!proto.ass.v1.AssMapInfoDetailReply>|undefined}\n * The XHR Node Readable Stream\n */\nproto.ass.v1.ApiAssClient.prototype.assMapInfoDetail = function (request, metadata, callback) {\n return this.client_.rpcCall(this.hostname_ + '/ass.v1.ApiAss/AssMapInfoDetail', request, metadata || {}, methodDescriptor_ApiAss_AssMapInfoDetail, callback);\n};\n\n/**\n * @param {!proto.base.v1.IdRequest} request The\n * request proto\n * @param {?Object<string, string>=} metadata User defined\n * call metadata\n * @return {!Promise<!proto.ass.v1.AssMapInfoDetailReply>}\n * Promise that resolves to the response\n */\nproto.ass.v1.ApiAssPromiseClient.prototype.assMapInfoDetail = function (request, metadata) {\n return this.client_.unaryCall(this.hostname_ + '/ass.v1.ApiAss/AssMapInfoDetail', request, metadata || {}, methodDescriptor_ApiAss_AssMapInfoDetail);\n};\n\n/**\n * @const\n * @type {!grpc.web.MethodDescriptor<\n * !proto.base.v1.IdRequest,\n * !proto.ass.v1.AssControlInfoDetailReply>}\n */\nvar methodDescriptor_ApiAss_AssControlInfoDetail = new grpc.web.MethodDescriptor('/ass.v1.ApiAss/AssControlInfoDetail', grpc.web.MethodType.UNARY, base_pb.IdRequest, proto.ass.v1.AssControlInfoDetailReply,\n/**\n * @param {!proto.base.v1.IdRequest} request\n * @return {!Uint8Array}\n */\nfunction (request) {\n return request.serializeBinary();\n}, proto.ass.v1.AssControlInfoDetailReply.deserializeBinary);\n\n/**\n * @param {!proto.base.v1.IdRequest} request The\n * request proto\n * @param {?Object<string, string>} metadata User defined\n * call metadata\n * @param {function(?grpc.web.RpcError, ?proto.ass.v1.AssControlInfoDetailReply)}\n * callback The callback function(error, response)\n * @return {!grpc.web.ClientReadableStream<!proto.ass.v1.AssControlInfoDetailReply>|undefined}\n * The XHR Node Readable Stream\n */\nproto.ass.v1.ApiAssClient.prototype.assControlInfoDetail = function (request, metadata, callback) {\n return this.client_.rpcCall(this.hostname_ + '/ass.v1.ApiAss/AssControlInfoDetail', request, metadata || {}, methodDescriptor_ApiAss_AssControlInfoDetail, callback);\n};\n\n/**\n * @param {!proto.base.v1.IdRequest} request The\n * request proto\n * @param {?Object<string, string>=} metadata User defined\n * call metadata\n * @return {!Promise<!proto.ass.v1.AssControlInfoDetailReply>}\n * Promise that resolves to the response\n */\nproto.ass.v1.ApiAssPromiseClient.prototype.assControlInfoDetail = function (request, metadata) {\n return this.client_.unaryCall(this.hostname_ + '/ass.v1.ApiAss/AssControlInfoDetail', request, metadata || {}, methodDescriptor_ApiAss_AssControlInfoDetail);\n};\n\n/**\n * @const\n * @type {!grpc.web.MethodDescriptor<\n * !proto.ass.v1.AssControlInfoSaveRequest,\n * !proto.base.v1.DefaultReply>}\n */\nvar methodDescriptor_ApiAss_AssControlInfoSave = new grpc.web.MethodDescriptor('/ass.v1.ApiAss/AssControlInfoSave', grpc.web.MethodType.UNARY, proto.ass.v1.AssControlInfoSaveRequest, base_pb.DefaultReply,\n/**\n * @param {!proto.ass.v1.AssControlInfoSaveRequest} request\n * @return {!Uint8Array}\n */\nfunction (request) {\n return request.serializeBinary();\n}, base_pb.DefaultReply.deserializeBinary);\n\n/**\n * @param {!proto.ass.v1.AssControlInfoSaveRequest} request The\n * request proto\n * @param {?Object<string, string>} metadata User defined\n * call metadata\n * @param {function(?grpc.web.RpcError, ?proto.base.v1.DefaultReply)}\n * callback The callback function(error, response)\n * @return {!grpc.web.ClientReadableStream<!proto.base.v1.DefaultReply>|undefined}\n * The XHR Node Readable Stream\n */\nproto.ass.v1.ApiAssClient.prototype.assControlInfoSave = function (request, metadata, callback) {\n return this.client_.rpcCall(this.hostname_ + '/ass.v1.ApiAss/AssControlInfoSave', request, metadata || {}, methodDescriptor_ApiAss_AssControlInfoSave, callback);\n};\n\n/**\n * @param {!proto.ass.v1.AssControlInfoSaveRequest} request The\n * request proto\n * @param {?Object<string, string>=} metadata User defined\n * call metadata\n * @return {!Promise<!proto.base.v1.DefaultReply>}\n * Promise that resolves to the response\n */\nproto.ass.v1.ApiAssPromiseClient.prototype.assControlInfoSave = function (request, metadata) {\n return this.client_.unaryCall(this.hostname_ + '/ass.v1.ApiAss/AssControlInfoSave', request, metadata || {}, methodDescriptor_ApiAss_AssControlInfoSave);\n};\n\n/**\n * @const\n * @type {!grpc.web.MethodDescriptor<\n * !proto.ass.v1.AssControlInfoGpsSaveRequest,\n * !proto.base.v1.DefaultReply>}\n */\nvar methodDescriptor_ApiAss_AssControlInfoGpsSave = new grpc.web.MethodDescriptor('/ass.v1.ApiAss/AssControlInfoGpsSave', grpc.web.MethodType.UNARY, proto.ass.v1.AssControlInfoGpsSaveRequest, base_pb.DefaultReply,\n/**\n * @param {!proto.ass.v1.AssControlInfoGpsSaveRequest} request\n * @return {!Uint8Array}\n */\nfunction (request) {\n return request.serializeBinary();\n}, base_pb.DefaultReply.deserializeBinary);\n\n/**\n * @param {!proto.ass.v1.AssControlInfoGpsSaveRequest} request The\n * request proto\n * @param {?Object<string, string>} metadata User defined\n * call metadata\n * @param {function(?grpc.web.RpcError, ?proto.base.v1.DefaultReply)}\n * callback The callback function(error, response)\n * @return {!grpc.web.ClientReadableStream<!proto.base.v1.DefaultReply>|undefined}\n * The XHR Node Readable Stream\n */\nproto.ass.v1.ApiAssClient.prototype.assControlInfoGpsSave = function (request, metadata, callback) {\n return this.client_.rpcCall(this.hostname_ + '/ass.v1.ApiAss/AssControlInfoGpsSave', request, metadata || {}, methodDescriptor_ApiAss_AssControlInfoGpsSave, callback);\n};\n\n/**\n * @param {!proto.ass.v1.AssControlInfoGpsSaveRequest} request The\n * request proto\n * @param {?Object<string, string>=} metadata User defined\n * call metadata\n * @return {!Promise<!proto.base.v1.DefaultReply>}\n * Promise that resolves to the response\n */\nproto.ass.v1.ApiAssPromiseClient.prototype.assControlInfoGpsSave = function (request, metadata) {\n return this.client_.unaryCall(this.hostname_ + '/ass.v1.ApiAss/AssControlInfoGpsSave', request, metadata || {}, methodDescriptor_ApiAss_AssControlInfoGpsSave);\n};\n\n/**\n * @const\n * @type {!grpc.web.MethodDescriptor<\n * !proto.ass.v1.AssVerificationRequest,\n * !proto.base.v1.DefaultReply>}\n */\nvar methodDescriptor_ApiAss_AssVerification = new grpc.web.MethodDescriptor('/ass.v1.ApiAss/AssVerification', grpc.web.MethodType.UNARY, proto.ass.v1.AssVerificationRequest, base_pb.DefaultReply,\n/**\n * @param {!proto.ass.v1.AssVerificationRequest} request\n * @return {!Uint8Array}\n */\nfunction (request) {\n return request.serializeBinary();\n}, base_pb.DefaultReply.deserializeBinary);\n\n/**\n * @param {!proto.ass.v1.AssVerificationRequest} request The\n * request proto\n * @param {?Object<string, string>} metadata User defined\n * call metadata\n * @param {function(?grpc.web.RpcError, ?proto.base.v1.DefaultReply)}\n * callback The callback function(error, response)\n * @return {!grpc.web.ClientReadableStream<!proto.base.v1.DefaultReply>|undefined}\n * The XHR Node Readable Stream\n */\nproto.ass.v1.ApiAssClient.prototype.assVerification = function (request, metadata, callback) {\n return this.client_.rpcCall(this.hostname_ + '/ass.v1.ApiAss/AssVerification', request, metadata || {}, methodDescriptor_ApiAss_AssVerification, callback);\n};\n\n/**\n * @param {!proto.ass.v1.AssVerificationRequest} request The\n * request proto\n * @param {?Object<string, string>=} metadata User defined\n * call metadata\n * @return {!Promise<!proto.base.v1.DefaultReply>}\n * Promise that resolves to the response\n */\nproto.ass.v1.ApiAssPromiseClient.prototype.assVerification = function (request, metadata) {\n return this.client_.unaryCall(this.hostname_ + '/ass.v1.ApiAss/AssVerification', request, metadata || {}, methodDescriptor_ApiAss_AssVerification);\n};\nmodule.exports = proto.ass.v1;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vZ3JwYy9hc3NfYXBpX2dycGNfd2ViX3BiLmpzIl0sIm5hbWVzIjpbImdycGMiLCJ3ZWIiLCJyZXF1aXJlIiwiYmFzZV9wYiIsInByb3RvIiwiYXNzIiwidjEiLCJBcGlBc3NDbGllbnQiLCJob3N0bmFtZSIsImNyZWRlbnRpYWxzIiwib3B0aW9ucyIsImZvcm1hdCIsImNsaWVudF8iLCJHcnBjV2ViQ2xpZW50QmFzZSIsImhvc3RuYW1lXyIsInJlcGxhY2UiLCJBcGlBc3NQcm9taXNlQ2xpZW50IiwibWV0aG9kRGVzY3JpcHRvcl9BcGlBc3NfQXNzU2hvcExpc3QiLCJNZXRob2REZXNjcmlwdG9yIiwiTWV0aG9kVHlwZSIsIlVOQVJZIiwiRGVmYXVsdFJlcXVlc3QiLCJBc3NTaG9wTGlzdFJlcGx5IiwicmVxdWVzdCIsInNlcmlhbGl6ZUJpbmFyeSIsImRlc2VyaWFsaXplQmluYXJ5IiwicHJvdG90eXBlIiwiYXNzU2hvcExpc3QiLCJtZXRhZGF0YSIsImNhbGxiYWNrIiwicnBjQ2FsbCIsInVuYXJ5Q2FsbCIsIm1ldGhvZERlc2NyaXB0b3JfQXBpQXNzX0Fzc0NvbnRyb2xJbmZvTGlzdCIsIklkUmVxdWVzdCIsIkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5IiwiYXNzQ29udHJvbEluZm9MaXN0IiwibWV0aG9kRGVzY3JpcHRvcl9BcGlBc3NfQXNzTWFwSW5mb0RldGFpbCIsIkFzc01hcEluZm9EZXRhaWxSZXBseSIsImFzc01hcEluZm9EZXRhaWwiLCJtZXRob2REZXNjcmlwdG9yX0FwaUFzc19Bc3NDb250cm9sSW5mb0RldGFpbCIsIkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHkiLCJhc3NDb250cm9sSW5mb0RldGFpbCIsIm1ldGhvZERlc2NyaXB0b3JfQXBpQXNzX0Fzc0NvbnRyb2xJbmZvU2F2ZSIsIkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3QiLCJEZWZhdWx0UmVwbHkiLCJhc3NDb250cm9sSW5mb1NhdmUiLCJtZXRob2REZXNjcmlwdG9yX0FwaUFzc19Bc3NDb250cm9sSW5mb0dwc1NhdmUiLCJBc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0IiwiYXNzQ29udHJvbEluZm9HcHNTYXZlIiwibWV0aG9kRGVzY3JpcHRvcl9BcGlBc3NfQXNzVmVyaWZpY2F0aW9uIiwiQXNzVmVyaWZpY2F0aW9uUmVxdWVzdCIsImFzc1ZlcmlmaWNhdGlvbiIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFHQTtBQUNBOztBQUlBLElBQU1BLElBQUksR0FBRyxDQUFDLENBQUM7QUFDZkEsSUFBSSxDQUFDQyxHQUFHLEdBQUdDLG1CQUFPLENBQUMsa0JBQVUsQ0FBQztBQUc5QixJQUFJQyxPQUFPLEdBQUdELG1CQUFPLENBQUMsc0JBQWMsQ0FBQztBQUNyQyxJQUFNRSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQ2hCQSxLQUFLLENBQUNDLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDZEQsS0FBSyxDQUFDQyxHQUFHLENBQUNDLEVBQUUsR0FBR0osbUJBQU8sQ0FBQyx5QkFBaUIsQ0FBQzs7QUFFekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBRSxLQUFLLENBQUNDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDQyxZQUFZLEdBQ3JCLFVBQVNDLFFBQVEsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLEVBQUU7RUFDM0MsSUFBSSxDQUFDQSxPQUFPLEVBQUVBLE9BQU8sR0FBRyxDQUFDLENBQUM7RUFDMUJBLE9BQU8sQ0FBQ0MsTUFBTSxHQUFHLE1BQU07O0VBRXZCO0FBQ0Y7QUFDQTtFQUNFLElBQUksQ0FBQ0MsT0FBTyxHQUFHLElBQUlaLElBQUksQ0FBQ0MsR0FBRyxDQUFDWSxpQkFBaUIsQ0FBQ0gsT0FBTyxDQUFDOztFQUV0RDtBQUNGO0FBQ0E7RUFDRSxJQUFJLENBQUNJLFNBQVMsR0FBR04sUUFBUSxDQUFDTyxPQUFPLENBQUMs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T0FBTyxFQUNQSyxRQUFRLElBQUksQ0FBQyxDQUFDLEVBQ2RxQix1Q0FBdUMsQ0FBQztBQUM5QyxDQUFDO0FBR0RHLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHakQsS0FBSyxDQUFDQyxHQUFHLENBQUNDLEVBQUUiLCJmaWxlIjoiNDUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlb3ZlcnZpZXcgZ1JQQy1XZWIgZ2VuZXJhdGVkIGNsaWVudCBzdHViIGZvciBhc3MudjFcbiAqIEBlbmhhbmNlYWJsZVxuICogQHB1YmxpY1xuICovXG5cbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHByb3RvYy1nZW4tZ3JwYy13ZWIuIERPIE5PVCBFRElULlxuLy8gdmVyc2lvbnM6XG4vLyBcdHByb3RvYy1nZW4tZ3JwYy13ZWIgdjEuNC4yXG4vLyBcdHByb3RvYyAgICAgICAgICAgICAgdjMuMjAuM1xuLy8gc291cmNlOiBhc3NfYXBpLnByb3RvXG5cblxuLyogZXNsaW50LWRpc2FibGUgKi9cbi8vIEB0cy1ub2NoZWNrXG5cblxuXG5jb25zdCBncnBjID0ge307XG5ncnBjLndlYiA9IHJlcXVpcmUoJ2dycGMtd2ViJyk7XG5cblxudmFyIGJhc2VfcGIgPSByZXF1aXJlKCcuL2Jhc2VfcGIuanMnKVxuY29uc3QgcHJvdG8gPSB7fTtcbnByb3RvLmFzcyA9IHt9O1xucHJvdG8uYXNzLnYxID0gcmVxdWlyZSgnLi9hc3NfYXBpX3BiLmpzJyk7XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGhvc3RuYW1lXG4gKiBAcGFyYW0gez9PYmplY3R9IGNyZWRlbnRpYWxzXG4gKiBAcGFyYW0gez9ncnBjLndlYi5DbGllbnRPcHRpb25zfSBvcHRpb25zXG4gKiBAY29uc3RydWN0b3JcbiAqIEBzdHJ1Y3RcbiAqIEBmaW5hbFxuICovXG5wcm90by5hc3MudjEuQXBpQXNzQ2xpZW50ID1cbiAgICBmdW5jdGlvbihob3N0bmFtZSwgY3JlZGVudGlhbHMsIG9wdGlvbnMpIHtcbiAgaWYgKCFvcHRpb25zKSBvcHRpb25zID0ge307XG4gIG9wdGlvbnMuZm9ybWF0ID0gJ3RleHQnO1xuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZSBAY29uc3QgeyFncnBjLndlYi5HcnBjV2ViQ2xpZW50QmFzZX0gVGhlIGNsaWVudFxuICAgKi9cbiAgdGhpcy5jbGllbnRfID0gbmV3IGdycGMud2ViLkdycGNXZWJDbGllbnRCYXNlKG9wdGlvbnMpO1xuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZSBAY29uc3Qge3N0cmluZ30gVGhlIGhvc3RuYW1lXG4gICAqL1xuICB0aGlzLmhvc3RuYW1lXyA9IGhvc3RuYW1lLnJlcGxhY2UoL1xcLyskLywgJycpO1xuXG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGhvc3RuYW1lXG4gKiBAcGFyYW0gez9PYmplY3R9IGNyZWRlbnRpYWxzXG4gKiBAcGFyYW0gez9ncnBjLndlYi5DbGllbnRPcHRpb25zfSBvcHRpb25zXG4gKiBAY29uc3RydWN0b3JcbiAqIEBzdHJ1Y3RcbiAqIEBmaW5hbFxuICovXG5wcm90by5hc3MudjEuQXBpQXNzUHJvbWlzZUNsaWVudCA9XG4gICAgZnVuY3Rpb24oaG9zdG5hbWUsIGNyZWRlbnRpYWxzLCBvcHRpb25zKSB7XG4gIGlmICghb3B0aW9ucykgb3B0aW9ucyA9IHt9O1xuICBvcHRpb25zLmZvcm1hdCA9ICd0ZXh0JztcblxuICAvKipcbiAgICogQHByaXZhdGUgQGNvbnN0IHshZ3JwYy53ZWIuR3JwY1dlYkNsaWVudEJhc2V9IFRoZSBjbGllbnRcbiAgICovXG4gIHRoaXMuY2xpZW50XyA9IG5ldyBncnBjLndlYi5HcnBjV2ViQ2xpZW50QmFzZShvcHRpb25zKTtcblxuICAvKipcbiAgICogQHByaXZhdGUgQGNvbnN0IHtzdHJpbmd9IFRoZSBob3N0bmFtZVxuICAgKi9cbiAgdGhpcy5ob3N0bmFtZV8gPSBob3N0bmFtZS5yZXBsYWNlKC9cXC8rJC8sICcnKTtcblxufTtcblxuXG4vKipcbiAqIEBjb25zdFxuICogQHR5cGUgeyFncnBjLndlYi5NZXRob2REZXNjcmlwdG9yPFxuICogICAhcHJvdG8uYmFzZS52MS5EZWZhdWx0UmVxdWVzdCxcbiAqICAgIXByb3RvLmFzcy52MS5Bc3NTaG9wTGlzdFJlcGx5Pn1cbiAqL1xuY29uc3QgbWV0aG9kRGVzY3JpcHRvcl9BcGlBc3NfQXNzU2hvcExpc3QgPSBuZXcgZ3JwYy53ZWIuTWV0aG9kRGVzY3JpcHRvcihcbiAgJy9hc3MudjEuQXBpQXNzL0Fzc1Nob3BMaXN0JyxcbiAgZ3JwYy53ZWIuTWV0aG9kVHlwZS5VTkFSWSxcbiAgYmFzZV9wYi5EZWZhdWx0UmVxdWVzdCxcbiAgcHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHksXG4gIC8qKlxuICAgKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLkRlZmF1bHRSZXF1ZXN0fSByZXF1ZXN0XG4gICAqIEByZXR1cm4geyFVaW50OEFycmF5fVxuICAgKi9cbiAgZnVuY3Rpb24ocmVxdWVzdCkge1xuICAgIHJldHVybiByZXF1ZXN0LnNlcmlhbGl6ZUJpbmFyeSgpO1xuICB9LFxuICBwcm90by5hc3MudjEuQXNzU2hvcExpc3RSZXBseS5kZXNlcmlhbGl6ZUJpbmFyeVxuKTtcblxuXG4vKipcbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuRGVmYXVsdFJlcXVlc3R9IHJlcXVlc3QgVGhlXG4gKiAgICAgcmVxdWVzdCBwcm90b1xuICogQHBhcmFtIHs/T2JqZWN0PHN0cmluZywgc3RyaW5nPn0gbWV0YWRhdGEgVXNlciBkZWZpbmVkXG4gKiAgICAgY2FsbCBtZXRhZGF0YVxuICogQHBhcmFtIHtmdW5jdGlvbig/Z3JwYy53ZWIuUnBjRXJyb3IsID9wcm90by5hc3MudjEuQXNzU2hvcExpc3RSZXBseSl9XG4gKiAgICAgY2FsbGJhY2sgVGhlIGNhbGxiYWNrIGZ1bmN0aW9uKGVycm9yLCByZXNwb25zZSlcbiAqIEByZXR1cm4geyFncnBjLndlYi5DbGllbnRSZWFkYWJsZVN0cmVhbTwhcHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHk+fHVuZGVmaW5lZH1cbiAqICAgICBUaGUgWEhSIE5vZGUgUmVhZGFibGUgU3RyZWFtXG4gKi9cbnByb3RvLmFzcy52MS5BcGlBc3NDbGllbnQucHJvdG90eXBlLmFzc1Nob3BMaXN0ID1cbiAgICBmdW5jdGlvbihyZXF1ZXN0LCBtZXRhZGF0YSwgY2FsbGJhY2spIHtcbiAgcmV0dXJuIHRoaXMuY2xpZW50Xy5ycGNDYWxsKHRoaXMuaG9zdG5hbWVfICtcbiAgICAgICcvYXNzLnYxLkFwaUFzcy9Bc3NTaG9wTGlzdCcsXG4gICAgICByZXF1ZXN0LFxuICAgICAgbWV0YWRhdGEgfHwge30sXG4gICAgICBtZXRob2REZXNjcmlwdG9yX0FwaUFzc19Bc3NTaG9wTGlzdCxcbiAgICAgIGNhbGxiYWNrKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLkRlZmF1bHRSZXF1ZXN0fSByZXF1ZXN0IFRoZVxuICogICAgIHJlcXVlc3QgcHJvdG9cbiAqIEBwYXJhbSB7P09iamVjdDxzdHJpbmcsIHN0cmluZz49fSBtZXRhZGF0YSBVc2VyIGRlZmluZWRcbiAqICAgICBjYWxsIG1ldGFkYXRhXG4gKiBAcmV0dXJuIHshUHJvbWlzZTwhcHJvdG8uYXNzLnYxLkFzc1Nob3BMaXN0UmVwbHk+fVxuICogICAgIFByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgcmVzcG9uc2VcbiAqL1xucHJvdG8uYXNzLnYxLkFwaUFzc1Byb21pc2VDbGllbnQucHJvdG90eXBlLmFzc1Nob3BMaXN0ID1cbiAgICBmdW5jdGlvbihyZXF1ZXN0LCBtZXRhZGF0YSkge1xuICByZXR1cm4gdGhpcy5jbGllbnRfLnVuYXJ5Q2FsbCh0aGlzLmhvc3RuYW1lXyArXG4gICAgICAnL2Fzcy52MS5BcGlBc3MvQXNzU2hvcExpc3QnLFxuICAgICAgcmVxdWVzdCxcbiAgICAgIG1ldGFkYXRhIHx8IHt9LFxuICAgICAgbWV0aG9kRGVzY3JpcHRvcl9BcGlBc3NfQXNzU2hvcExpc3QpO1xufTtcblxuXG4vKipcbiAqIEBjb25zdFxuICogQHR5cGUgeyFncnBjLndlYi5NZXRob2REZXNjcmlwdG9yPFxuICogICAhcHJvdG8uYmFzZS52MS5JZFJlcXVlc3QsXG4gKiAgICFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHk+fVxuICovXG5jb25zdCBtZXRob2REZXNjcmlwdG9yX0FwaUFzc19Bc3NDb250cm9sSW5mb0xpc3QgPSBuZXcgZ3JwYy53ZWIuTWV0aG9kRGVzY3JpcHRvcihcbiAgJy9hc3MudjEuQXBpQXNzL0Fzc0NvbnRyb2xJbmZvTGlzdCcsXG4gIGdycGMud2ViLk1ldGhvZFR5cGUuVU5BUlksXG4gIGJhc2VfcGIuSWRSZXF1ZXN0LFxuICBwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHksXG4gIC8qKlxuICAgKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLklkUmVxdWVzdH0gcmVxdWVzdFxuICAgKiBAcmV0dXJuIHshVWludDhBcnJheX1cbiAgICovXG4gIGZ1bmN0aW9uKHJlcXVlc3QpIHtcbiAgICByZXR1cm4gcmVxdWVzdC5zZXJpYWxpemVCaW5hcnkoKTtcbiAgfSxcbiAgcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5LmRlc2VyaWFsaXplQmluYXJ5XG4pO1xuXG5cbi8qKlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5JZFJlcXVlc3R9IHJlcXVlc3QgVGhlXG4gKiAgICAgcmVxdWVzdCBwcm90b1xuICogQHBhcmFtIHs/T2JqZWN0PHN0cmluZywgc3RyaW5nPn0gbWV0YWRhdGEgVXNlciBkZWZpbmVkXG4gKiAgICAgY2FsbCBtZXRhZGF0YVxuICogQHBhcmFtIHtmdW5jdGlvbig/Z3JwYy53ZWIuUnBjRXJyb3IsID9wcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9MaXN0UmVwbHkpfVxuICogICAgIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBmdW5jdGlvbihlcnJvciwgcmVzcG9uc2UpXG4gKiBAcmV0dXJuIHshZ3JwYy53ZWIuQ2xpZW50UmVhZGFibGVTdHJlYW08IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0xpc3RSZXBseT58dW5kZWZpbmVkfVxuICogICAgIFRoZSBYSFIgTm9kZSBSZWFkYWJsZSBTdHJlYW1cbiAqL1xucHJvdG8uYXNzLnYxLkFwaUFzc0NsaWVudC5wcm90b3R5cGUuYXNzQ29udHJvbEluZm9MaXN0ID1cbiAgICBmdW5jdGlvbihyZXF1ZXN0LCBtZXRhZGF0YSwgY2FsbGJhY2spIHtcbiAgcmV0dXJuIHRoaXMuY2xpZW50Xy5ycGNDYWxsKHRoaXMuaG9zdG5hbWVfICtcbiAgICAgICcvYXNzLnYxLkFwaUFzcy9Bc3NDb250cm9sSW5mb0xpc3QnLFxuICAgICAgcmVxdWVzdCxcbiAgICAgIG1ldGFkYXRhIHx8IHt9LFxuICAgICAgbWV0aG9kRGVzY3JpcHRvcl9BcGlBc3NfQXNzQ29udHJvbEluZm9MaXN0LFxuICAgICAgY2FsbGJhY2spO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuSWRSZXF1ZXN0fSByZXF1ZXN0IFRoZVxuICogICAgIHJlcXVlc3QgcHJvdG9cbiAqIEBwYXJhbSB7P09iamVjdDxzdHJpbmcsIHN0cmluZz49fSBtZXRhZGF0YSBVc2VyIGRlZmluZWRcbiAqICAgICBjYWxsIG1ldGFkYXRhXG4gKiBAcmV0dXJuIHshUHJvbWlzZTwhcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvTGlzdFJlcGx5Pn1cbiAqICAgICBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJlc3BvbnNlXG4gKi9cbnByb3RvLmFzcy52MS5BcGlBc3NQcm9taXNlQ2xpZW50LnByb3RvdHlwZS5hc3NDb250cm9sSW5mb0xpc3QgPVxuICAgIGZ1bmN0aW9uKHJlcXVlc3QsIG1ldGFkYXRhKSB7XG4gIHJldHVybiB0aGlzLmNsaWVudF8udW5hcnlDYWxsKHRoaXMuaG9zdG5hbWVfICtcbiAgICAgICcvYXNzLnYxLkFwaUFzcy9Bc3NDb250cm9sSW5mb0xpc3QnLFxuICAgICAgcmVxdWVzdCxcbiAgICAgIG1ldGFkYXRhIHx8IHt9LFxuICAgICAgbWV0aG9kRGVzY3JpcHRvcl9BcGlBc3NfQXNzQ29udHJvbEluZm9MaXN0KTtcbn07XG5cblxuLyoqXG4gKiBAY29uc3RcbiAqIEB0eXBlIHshZ3JwYy53ZWIuTWV0aG9kRGVzY3JpcHRvcjxcbiAqICAgIXByb3RvLmJhc2UudjEuSWRSZXF1ZXN0LFxuICogICAhcHJvdG8uYXNzLnYxLkFzc01hcEluZm9EZXRhaWxSZXBseT59XG4gKi9cbmNvbnN0IG1ldGhvZERlc2NyaXB0b3JfQXBpQXNzX0Fzc01hcEluZm9EZXRhaWwgPSBuZXcgZ3JwYy53ZWIuTWV0aG9kRGVzY3JpcHRvcihcbiAgJy9hc3MudjEuQXBpQXNzL0Fzc01hcEluZm9EZXRhaWwnLFxuICBncnBjLndlYi5NZXRob2RUeXBlLlVOQVJZLFxuICBiYXNlX3BiLklkUmVxdWVzdCxcbiAgcHJvdG8uYXNzLnYxLkFzc01hcEluZm9EZXRhaWxSZXBseSxcbiAgLyoqXG4gICAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuSWRSZXF1ZXN0fSByZXF1ZXN0XG4gICAqIEByZXR1cm4geyFVaW50OEFycmF5fVxuICAgKi9cbiAgZnVuY3Rpb24ocmVxdWVzdCkge1xuICAgIHJldHVybiByZXF1ZXN0LnNlcmlhbGl6ZUJpbmFyeSgpO1xuICB9LFxuICBwcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5LmRlc2VyaWFsaXplQmluYXJ5XG4pO1xuXG5cbi8qKlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5JZFJlcXVlc3R9IHJlcXVlc3QgVGhlXG4gKiAgICAgcmVxdWVzdCBwcm90b1xuICogQHBhcmFtIHs/T2JqZWN0PHN0cmluZywgc3RyaW5nPn0gbWV0YWRhdGEgVXNlciBkZWZpbmVkXG4gKiAgICAgY2FsbCBtZXRhZGF0YVxuICogQHBhcmFtIHtmdW5jdGlvbig/Z3JwYy53ZWIuUnBjRXJyb3IsID9wcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5KX1cbiAqICAgICBjYWxsYmFjayBUaGUgY2FsbGJhY2sgZnVuY3Rpb24oZXJyb3IsIHJlc3BvbnNlKVxuICogQHJldHVybiB7IWdycGMud2ViLkNsaWVudFJlYWRhYmxlU3RyZWFtPCFwcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5Pnx1bmRlZmluZWR9XG4gKiAgICAgVGhlIFhIUiBOb2RlIFJlYWRhYmxlIFN0cmVhbVxuICovXG5wcm90by5hc3MudjEuQXBpQXNzQ2xpZW50LnByb3RvdHlwZS5hc3NNYXBJbmZvRGV0YWlsID1cbiAgICBmdW5jdGlvbihyZXF1ZXN0LCBtZXRhZGF0YSwgY2FsbGJhY2spIHtcbiAgcmV0dXJuIHRoaXMuY2xpZW50Xy5ycGNDYWxsKHRoaXMuaG9zdG5hbWVfICtcbiAgICAgICcvYXNzLnYxLkFwaUFzcy9Bc3NNYXBJbmZvRGV0YWlsJyxcbiAgICAgIHJlcXVlc3QsXG4gICAgICBtZXRhZGF0YSB8fCB7fSxcbiAgICAgIG1ldGhvZERlc2NyaXB0b3JfQXBpQXNzX0Fzc01hcEluZm9EZXRhaWwsXG4gICAgICBjYWxsYmFjayk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHshcHJvdG8uYmFzZS52MS5JZFJlcXVlc3R9IHJlcXVlc3QgVGhlXG4gKiAgICAgcmVxdWVzdCBwcm90b1xuICogQHBhcmFtIHs/T2JqZWN0PHN0cmluZywgc3RyaW5nPj19IG1ldGFkYXRhIFVzZXIgZGVmaW5lZFxuICogICAgIGNhbGwgbWV0YWRhdGFcbiAqIEByZXR1cm4geyFQcm9taXNlPCFwcm90by5hc3MudjEuQXNzTWFwSW5mb0RldGFpbFJlcGx5Pn1cbiAqICAgICBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJlc3BvbnNlXG4gKi9cbnByb3RvLmFzcy52MS5BcGlBc3NQcm9taXNlQ2xpZW50LnByb3RvdHlwZS5hc3NNYXBJbmZvRGV0YWlsID1cbiAgICBmdW5jdGlvbihyZXF1ZXN0LCBtZXRhZGF0YSkge1xuICByZXR1cm4gdGhpcy5jbGllbnRfLnVuYXJ5Q2FsbCh0aGlzLmhvc3RuYW1lXyArXG4gICAgICAnL2Fzcy52MS5BcGlBc3MvQXNzTWFwSW5mb0RldGFpbCcsXG4gICAgICByZXF1ZXN0LFxuICAgICAgbWV0YWRhdGEgfHwge30sXG4gICAgICBtZXRob2REZXNjcmlwdG9yX0FwaUFzc19Bc3NNYXBJbmZvRGV0YWlsKTtcbn07XG5cblxuLyoqXG4gKiBAY29uc3RcbiAqIEB0eXBlIHshZ3JwYy53ZWIuTWV0aG9kRGVzY3JpcHRvcjxcbiAqICAgIXByb3RvLmJhc2UudjEuSWRSZXF1ZXN0LFxuICogICAhcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHk+fVxuICovXG5jb25zdCBtZXRob2REZXNjcmlwdG9yX0FwaUFzc19Bc3NDb250cm9sSW5mb0RldGFpbCA9IG5ldyBncnBjLndlYi5NZXRob2REZXNjcmlwdG9yKFxuICAnL2Fzcy52MS5BcGlBc3MvQXNzQ29udHJvbEluZm9EZXRhaWwnLFxuICBncnBjLndlYi5NZXRob2RUeXBlLlVOQVJZLFxuICBiYXNlX3BiLklkUmVxdWVzdCxcbiAgcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHksXG4gIC8qKlxuICAgKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLklkUmVxdWVzdH0gcmVxdWVzdFxuICAgKiBAcmV0dXJuIHshVWludDhBcnJheX1cbiAgICovXG4gIGZ1bmN0aW9uKHJlcXVlc3QpIHtcbiAgICByZXR1cm4gcmVxdWVzdC5zZXJpYWxpemVCaW5hcnkoKTtcbiAgfSxcbiAgcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHkuZGVzZXJpYWxpemVCaW5hcnlcbik7XG5cblxuLyoqXG4gKiBAcGFyYW0geyFwcm90by5iYXNlLnYxLklkUmVxdWVzdH0gcmVxdWVzdCBUaGVcbiAqICAgICByZXF1ZXN0IHByb3RvXG4gKiBAcGFyYW0gez9PYmplY3Q8c3RyaW5nLCBzdHJpbmc+fSBtZXRhZGF0YSBVc2VyIGRlZmluZWRcbiAqICAgICBjYWxsIG1ldGFkYXRhXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKD9ncnBjLndlYi5ScGNFcnJvciwgP3Byb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0RldGFpbFJlcGx5KX1cbiAqICAgICBjYWxsYmFjayBUaGUgY2FsbGJhY2sgZnVuY3Rpb24oZXJyb3IsIHJlc3BvbnNlKVxuICogQHJldHVybiB7IWdycGMud2ViLkNsaWVudFJlYWRhYmxlU3RyZWFtPCFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9EZXRhaWxSZXBseT58dW5kZWZpbmVkfVxuICogICAgIFRoZSBYSFIgTm9kZSBSZWFkYWJsZSBTdHJlYW1cbiAqL1xucHJvdG8uYXNzLnYxLkFwaUFzc0NsaWVudC5wcm90b3R5cGUuYXNzQ29udHJvbEluZm9EZXRhaWwgPVxuICAgIGZ1bmN0aW9uKHJlcXVlc3QsIG1ldGFkYXRhLCBjYWxsYmFjaykge1xuICByZXR1cm4gdGhpcy5jbGllbnRfLnJwY0NhbGwodGhpcy5ob3N0bmFtZV8gK1xuICAgICAgJy9hc3MudjEuQXBpQXNzL0Fzc0NvbnRyb2xJbmZvRGV0YWlsJyxcbiAgICAgIHJlcXVlc3QsXG4gICAgICBtZXRhZGF0YSB8fCB7fSxcbiAgICAgIG1ldGhvZERlc2NyaXB0b3JfQXBpQXNzX0Fzc0NvbnRyb2xJbmZvRGV0YWlsLFxuICAgICAgY2FsbGJhY2spO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7IXByb3RvLmJhc2UudjEuSWRSZXF1ZXN0fSByZXF1ZXN0IFRoZVxuICogICAgIHJlcXVlc3QgcHJvdG9cbiAqIEBwYXJhbSB7P09iamVjdDxzdHJpbmcsIHN0cmluZz49fSBtZXRhZGF0YSBVc2VyIGRlZmluZWRcbiAqICAgICBjYWxsIG1ldGFkYXRhXG4gKiBAcmV0dXJuIHshUHJvbWlzZTwhcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvRGV0YWlsUmVwbHk+fVxuICogICAgIFByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgcmVzcG9uc2VcbiAqL1xucHJvdG8uYXNzLnYxLkFwaUFzc1Byb21pc2VDbGllbnQucHJvdG90eXBlLmFzc0NvbnRyb2xJbmZvRGV0YWlsID1cbiAgICBmdW5jdGlvbihyZXF1ZXN0LCBtZXRhZGF0YSkge1xuICByZXR1cm4gdGhpcy5jbGllbnRfLnVuYXJ5Q2FsbCh0aGlzLmhvc3RuYW1lXyArXG4gICAgICAnL2Fzcy52MS5BcGlBc3MvQXNzQ29udHJvbEluZm9EZXRhaWwnLFxuICAgICAgcmVxdWVzdCxcbiAgICAgIG1ldGFkYXRhIHx8IHt9LFxuICAgICAgbWV0aG9kRGVzY3JpcHRvcl9BcGlBc3NfQXNzQ29udHJvbEluZm9EZXRhaWwpO1xufTtcblxuXG4vKipcbiAqIEBjb25zdFxuICogQHR5cGUgeyFncnBjLndlYi5NZXRob2REZXNjcmlwdG9yPFxuICogICAhcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3QsXG4gKiAgICFwcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseT59XG4gKi9cbmNvbnN0IG1ldGhvZERlc2NyaXB0b3JfQXBpQXNzX0Fzc0NvbnRyb2xJbmZvU2F2ZSA9IG5ldyBncnBjLndlYi5NZXRob2REZXNjcmlwdG9yKFxuICAnL2Fzcy52MS5BcGlBc3MvQXNzQ29udHJvbEluZm9TYXZlJyxcbiAgZ3JwYy53ZWIuTWV0aG9kVHlwZS5VTkFSWSxcbiAgcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3QsXG4gIGJhc2VfcGIuRGVmYXVsdFJlcGx5LFxuICAvKipcbiAgICogQHBhcmFtIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3R9IHJlcXVlc3RcbiAgICogQHJldHVybiB7IVVpbnQ4QXJyYXl9XG4gICAqL1xuICBmdW5jdGlvbihyZXF1ZXN0KSB7XG4gICAgcmV0dXJuIHJlcXVlc3Quc2VyaWFsaXplQmluYXJ5KCk7XG4gIH0sXG4gIGJhc2VfcGIuRGVmYXVsdFJlcGx5LmRlc2VyaWFsaXplQmluYXJ5XG4pO1xuXG5cbi8qKlxuICogQHBhcmFtIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvU2F2ZVJlcXVlc3R9IHJlcXVlc3QgVGhlXG4gKiAgICAgcmVxdWVzdCBwcm90b1xuICogQHBhcmFtIHs/T2JqZWN0PHN0cmluZywgc3RyaW5nPn0gbWV0YWRhdGEgVXNlciBkZWZpbmVkXG4gKiAgICAgY2FsbCBtZXRhZGF0YVxuICogQHBhcmFtIHtmdW5jdGlvbig/Z3JwYy53ZWIuUnBjRXJyb3IsID9wcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseSl9XG4gKiAgICAgY2FsbGJhY2sgVGhlIGNhbGxiYWNrIGZ1bmN0aW9uKGVycm9yLCByZXNwb25zZSlcbiAqIEByZXR1cm4geyFncnBjLndlYi5DbGllbnRSZWFkYWJsZVN0cmVhbTwhcHJvdG8uYmFzZS52MS5EZWZhdWx0UmVwbHk+fHVuZGVmaW5lZH1cbiAqICAgICBUaGUgWEhSIE5vZGUgUmVhZGFibGUgU3RyZWFtXG4gKi9cbnByb3RvLmFzcy52MS5BcGlBc3NDbGllbnQucHJvdG90eXBlLmFzc0NvbnRyb2xJbmZvU2F2ZSA9XG4gICAgZnVuY3Rpb24ocmVxdWVzdCwgbWV0YWRhdGEsIGNhbGxiYWNrKSB7XG4gIHJldHVybiB0aGlzLmNsaWVudF8ucnBjQ2FsbCh0aGlzLmhvc3RuYW1lXyArXG4gICAgICAnL2Fzcy52MS5BcGlBc3MvQXNzQ29udHJvbEluZm9TYXZlJyxcbiAgICAgIHJlcXVlc3QsXG4gICAgICBtZXRhZGF0YSB8fCB7fSxcbiAgICAgIG1ldGhvZERlc2NyaXB0b3JfQXBpQXNzX0Fzc0NvbnRyb2xJbmZvU2F2ZSxcbiAgICAgIGNhbGxiYWNrKTtcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0geyFwcm90by5hc3MudjEuQXNzQ29udHJvbEluZm9TYXZlUmVxdWVzdH0gcmVxdWVzdCBUaGVcbiAqICAgICByZXF1ZXN0IHByb3RvXG4gKiBAcGFyYW0gez9PYmplY3Q8c3RyaW5nLCBzdHJpbmc+PX0gbWV0YWRhdGEgVXNlciBkZWZpbmVkXG4gKiAgICAgY2FsbCBtZXRhZGF0YVxuICogQHJldHVybiB7IVByb21pc2U8IXByb3RvLmJhc2UudjEuRGVmYXVsdFJlcGx5Pn1cbiAqICAgICBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJlc3BvbnNlXG4gKi9cbnByb3RvLmFzcy52MS5BcGlBc3NQcm9taXNlQ2xpZW50LnByb3RvdHlwZS5hc3NDb250cm9sSW5mb1NhdmUgPVxuICAgIGZ1bmN0aW9uKHJlcXVlc3QsIG1ldGFkYXRhKSB7XG4gIHJldHVybiB0aGlzLmNsaWVudF8udW5hcnlDYWxsKHRoaXMuaG9zdG5hbWVfICtcbiAgICAgICcvYXNzLnYxLkFwaUFzcy9Bc3NDb250cm9sSW5mb1NhdmUnLFxuICAgICAgcmVxdWVzdCxcbiAgICAgIG1ldGFkYXRhIHx8IHt9LFxuICAgICAgbWV0aG9kRGVzY3JpcHRvcl9BcGlBc3NfQXNzQ29udHJvbEluZm9TYXZlKTtcbn07XG5cblxuLyoqXG4gKiBAY29uc3RcbiAqIEB0eXBlIHshZ3JwYy53ZWIuTWV0aG9kRGVzY3JpcHRvcjxcbiAqICAgIXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0LFxuICogICAhcHJvdG8uYmFzZS52MS5EZWZhdWx0UmVwbHk+fVxuICovXG5jb25zdCBtZXRob2REZXNjcmlwdG9yX0FwaUFzc19Bc3NDb250cm9sSW5mb0dwc1NhdmUgPSBuZXcgZ3JwYy53ZWIuTWV0aG9kRGVzY3JpcHRvcihcbiAgJy9hc3MudjEuQXBpQXNzL0Fzc0NvbnRyb2xJbmZvR3BzU2F2ZScsXG4gIGdycGMud2ViLk1ldGhvZFR5cGUuVU5BUlksXG4gIHByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0LFxuICBiYXNlX3BiLkRlZmF1bHRSZXBseSxcbiAgLyoqXG4gICAqIEBwYXJhbSB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0fSByZXF1ZXN0XG4gICAqIEByZXR1cm4geyFVaW50OEFycmF5fVxuICAgKi9cbiAgZnVuY3Rpb24ocmVxdWVzdCkge1xuICAgIHJldHVybiByZXF1ZXN0LnNlcmlhbGl6ZUJpbmFyeSgpO1xuICB9LFxuICBiYXNlX3BiLkRlZmF1bHRSZXBseS5kZXNlcmlhbGl6ZUJpbmFyeVxuKTtcblxuXG4vKipcbiAqIEBwYXJhbSB7IXByb3RvLmFzcy52MS5Bc3NDb250cm9sSW5mb0dwc1NhdmVSZXF1ZXN0fSByZXF1ZXN0IFRoZVxuICogICAgIHJlcXVlc3QgcHJvdG9cbiAqIEBwYXJhbSB7P09iamVjdDxzdHJpbmcsIHN0cmluZz59IG1ldGFkYXRhIFVzZXIgZGVmaW5lZFxuICogICAgIGNhbGwgbWV0YWRhdGFcbiAqIEBwYXJhbSB7ZnVuY3Rpb24oP2dycGMud2ViLlJwY0Vycm9yLCA/cHJvdG8uYmFzZS52MS5EZWZhdWx0UmVwbHkpfVxuICogICAgIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBmdW5jdGlvbihlcnJvciwgcmVzcG9uc2UpXG4gKiBAcmV0dXJuIHshZ3JwYy53ZWIuQ2xpZW50UmVhZGFibGVTdHJlYW08IXByb3RvLmJhc2UudjEuRGVmYXVsdFJlcGx5Pnx1bmRlZmluZWR9XG4gKiAgICAgVGhlIFhIUiBOb2RlIFJlYWRhYmxlIFN0cmVhbVxuICovXG5wcm90by5hc3MudjEuQXBpQXNzQ2xpZW50LnByb3RvdHlwZS5hc3NDb250cm9sSW5mb0dwc1NhdmUgPVxuICAgIGZ1bmN0aW9uKHJlcXVlc3QsIG1ldGFkYXRhLCBjYWxsYmFjaykge1xuICByZXR1cm4gdGhpcy5jbGllbnRfLnJwY0NhbGwodGhpcy5ob3N0bmFtZV8gK1xuICAgICAgJy9hc3MudjEuQXBpQXNzL0Fzc0NvbnRyb2xJbmZvR3BzU2F2ZScsXG4gICAgICByZXF1ZXN0LFxuICAgICAgbWV0YWRhdGEgfHwge30sXG4gICAgICBtZXRob2REZXNjcmlwdG9yX0FwaUFzc19Bc3NDb250cm9sSW5mb0dwc1NhdmUsXG4gICAgICBjYWxsYmFjayk7XG59O1xuXG5cbi8qKlxuICogQHBhcmFtIHshcHJvdG8uYXNzLnYxLkFzc0NvbnRyb2xJbmZvR3BzU2F2ZVJlcXVlc3R9IHJlcXVlc3QgVGhlXG4gKiAgICAgcmVxdWVzdCBwcm90b1xuICogQHBhcmFtIHs/T2JqZWN0PHN0cmluZywgc3RyaW5nPj19IG1ldGFkYXRhIFVzZXIgZGVmaW5lZFxuICogICAgIGNhbGwgbWV0YWRhdGFcbiAqIEByZXR1cm4geyFQcm9taXNlPCFwcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseT59XG4gKiAgICAgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSByZXNwb25zZVxuICovXG5wcm90by5hc3MudjEuQXBpQXNzUHJvbWlzZUNsaWVudC5wcm90b3R5cGUuYXNzQ29udHJvbEluZm9HcHNTYXZlID1cbiAgICBmdW5jdGlvbihyZXF1ZXN0LCBtZXRhZGF0YSkge1xuICByZXR1cm4gdGhpcy5jbGllbnRfLnVuYXJ5Q2FsbCh0aGlzLmhvc3RuYW1lXyArXG4gICAgICAnL2Fzcy52MS5BcGlBc3MvQXNzQ29udHJvbEluZm9HcHNTYXZlJyxcbiAgICAgIHJlcXVlc3QsXG4gICAgICBtZXRhZGF0YSB8fCB7fSxcbiAgICAgIG1ldGhvZERlc2NyaXB0b3JfQXBpQXNzX0Fzc0NvbnRyb2xJbmZvR3BzU2F2ZSk7XG59O1xuXG5cbi8qKlxuICogQGNvbnN0XG4gKiBAdHlwZSB7IWdycGMud2ViLk1ldGhvZERlc2NyaXB0b3I8XG4gKiAgICFwcm90by5hc3MudjEuQXNzVmVyaWZpY2F0aW9uUmVxdWVzdCxcbiAqICAgIXByb3RvLmJhc2UudjEuRGVmYXVsdFJlcGx5Pn1cbiAqL1xuY29uc3QgbWV0aG9kRGVzY3JpcHRvcl9BcGlBc3NfQXNzVmVyaWZpY2F0aW9uID0gbmV3IGdycGMud2ViLk1ldGhvZERlc2NyaXB0b3IoXG4gICcvYXNzLnYxLkFwaUFzcy9Bc3NWZXJpZmljYXRpb24nLFxuICBncnBjLndlYi5NZXRob2RUeXBlLlVOQVJZLFxuICBwcm90by5hc3MudjEuQXNzVmVyaWZpY2F0aW9uUmVxdWVzdCxcbiAgYmFzZV9wYi5EZWZhdWx0UmVwbHksXG4gIC8qKlxuICAgKiBAcGFyYW0geyFwcm90by5hc3MudjEuQXNzVmVyaWZpY2F0aW9uUmVxdWVzdH0gcmVxdWVzdFxuICAgKiBAcmV0dXJuIHshVWludDhBcnJheX1cbiAgICovXG4gIGZ1bmN0aW9uKHJlcXVlc3QpIHtcbiAgICByZXR1cm4gcmVxdWVzdC5zZXJpYWxpemVCaW5hcnkoKTtcbiAgfSxcbiAgYmFzZV9wYi5EZWZhdWx0UmVwbHkuZGVzZXJpYWxpemVCaW5hcnlcbik7XG5cblxuLyoqXG4gKiBAcGFyYW0geyFwcm90by5hc3MudjEuQXNzVmVyaWZpY2F0aW9uUmVxdWVzdH0gcmVxdWVzdCBUaGVcbiAqICAgICByZXF1ZXN0IHByb3RvXG4gKiBAcGFyYW0gez9PYmplY3Q8c3RyaW5nLCBzdHJpbmc+fSBtZXRhZGF0YSBVc2VyIGRlZmluZWRcbiAqICAgICBjYWxsIG1ldGFkYXRhXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKD9ncnBjLndlYi5ScGNFcnJvciwgP3Byb3RvLmJhc2UudjEuRGVmYXVsdFJlcGx5KX1cbiAqICAgICBjYWxsYmFjayBUaGUgY2FsbGJhY2sgZnVuY3Rpb24oZXJyb3IsIHJlc3BvbnNlKVxuICogQHJldHVybiB7IWdycGMud2ViLkNsaWVudFJlYWRhYmxlU3RyZWFtPCFwcm90by5iYXNlLnYxLkRlZmF1bHRSZXBseT58dW5kZWZpbmVkfVxuICogICAgIFRoZSBYSFIgTm9kZSBSZWFkYWJsZSBTdHJlYW1cbiAqL1xucHJvdG8uYXNzLnYxLkFwaUFzc0NsaWVudC5wcm90b3R5cGUuYXNzVmVyaWZpY2F0aW9uID1cbiAgICBmdW5jdGlvbihyZXF1ZXN0LCBtZXRhZGF0YSwgY2FsbGJhY2spIHtcbiAgcmV0dXJuIHRoaXMuY2xpZW50Xy5ycGNDYWxsKHRoaXMuaG9zdG5hbWVfICtcbiAgICAgICcvYXNzLnYxLkFwaUFzcy9Bc3NWZXJpZmljYXRpb24nLFxuICAgICAgcmVxdWVzdCxcbiAgICAgIG1ldGFkYXRhIHx8IHt9LFxuICAgICAgbWV0aG9kRGVzY3JpcHRvcl9BcGlBc3NfQXNzVmVyaWZpY2F0aW9uLFxuICAgICAgY2FsbGJhY2spO1xufTtcblxuXG4vKipcbiAqIEBwYXJhbSB7IXByb3RvLmFzcy52MS5Bc3NWZXJpZmljYXRpb25SZXF1ZXN0fSByZXF1ZXN0IFRoZVxuICogICAgIHJlcXVlc3QgcHJvdG9cbiAqIEBwYXJhbSB7P09iamVjdDxzdHJpbmcsIHN0cmluZz49fSBtZXRhZGF0YSBVc2VyIGRlZmluZWRcbiAqICAgICBjYWxsIG1ldGFkYXRhXG4gKiBAcmV0dXJuIHshUHJvbWlzZTwhcHJvdG8uYmFzZS52MS5EZWZhdWx0UmVwbHk+fVxuICogICAgIFByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgcmVzcG9uc2VcbiAqL1xucHJvdG8uYXNzLnYxLkFwaUFzc1Byb21pc2VDbGllbnQucHJvdG90eXBlLmFzc1ZlcmlmaWNhdGlvbiA9XG4gICAgZnVuY3Rpb24ocmVxdWVzdCwgbWV0YWRhdGEpIHtcbiAgcmV0dXJuIHRoaXMuY2xpZW50Xy51bmFyeUNhbGwodGhpcy5ob3N0bmFtZV8gK1xuICAgICAgJy9hc3MudjEuQXBpQXNzL0Fzc1ZlcmlmaWNhdGlvbicsXG4gICAgICByZXF1ZXN0LFxuICAgICAgbWV0YWRhdGEgfHwge30sXG4gICAgICBtZXRob2REZXNjcmlwdG9yX0FwaUFzc19Bc3NWZXJpZmljYXRpb24pO1xufTtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IHByb3RvLmFzcy52MTtcblxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///45\n");
  8593. /***/ }),
  8594. /* 46 */
  8595. /*!*************************************************************************!*\
  8596. !*** D:/Work2/Orienteering/TrackOffical/node_modules/grpc-web/index.js ***!
  8597. \*************************************************************************/
  8598. /*! no static exports found */
  8599. /***/ (function(module, exports, __webpack_require__) {
  8600. /* WEBPACK VAR INJECTION */(function(global, __f__) {var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4);
  8601. /*
  8602. Copyright The Closure Library Authors.
  8603. SPDX-License-Identifier: Apache-2.0
  8604. */
  8605. var n;
  8606. function aa(a) {
  8607. var b = 0;
  8608. return function () {
  8609. return b < a.length ? {
  8610. done: !1,
  8611. value: a[b++]
  8612. } : {
  8613. done: !0
  8614. };
  8615. };
  8616. }
  8617. var ba = "function" == typeof Object.defineProperties ? Object.defineProperty : function (a, b, c) {
  8618. a != Array.prototype && a != Object.prototype && (a[b] = c.value);
  8619. };
  8620. function ca(a) {
  8621. a = ["object" == (typeof window === "undefined" ? "undefined" : _typeof(window)) && window, "object" == (typeof self === "undefined" ? "undefined" : _typeof(self)) && self, "object" == (typeof global === "undefined" ? "undefined" : _typeof(global)) && global, a];
  8622. for (var b = 0; b < a.length; ++b) {
  8623. var c = a[b];
  8624. if (c && c.Math == Math) return c;
  8625. }
  8626. throw Error("Cannot find global object");
  8627. }
  8628. var r = ca(this);
  8629. function t() {
  8630. t = function t() {};
  8631. r.Symbol || (r.Symbol = da);
  8632. }
  8633. function ea(a, b) {
  8634. this.a = a;
  8635. ba(this, "description", {
  8636. configurable: !0,
  8637. writable: !0,
  8638. value: b
  8639. });
  8640. }
  8641. ea.prototype.toString = function () {
  8642. return this.a;
  8643. };
  8644. var da = function () {
  8645. function a(c) {
  8646. if (this instanceof a) throw new TypeError("Symbol is not a constructor");
  8647. return new ea("jscomp_symbol_" + (c || "") + "_" + b++, c);
  8648. }
  8649. var b = 0;
  8650. return a;
  8651. }();
  8652. function u() {
  8653. t();
  8654. var a = r.Symbol.iterator;
  8655. a || (a = r.Symbol.iterator = r.Symbol("Symbol.iterator"));
  8656. "function" != typeof Array.prototype[a] && ba(Array.prototype, a, {
  8657. configurable: !0,
  8658. writable: !0,
  8659. value: function value() {
  8660. return fa(aa(this));
  8661. }
  8662. });
  8663. u = function u() {};
  8664. }
  8665. function fa(a) {
  8666. u();
  8667. a = {
  8668. next: a
  8669. };
  8670. a[r.Symbol.iterator] = function () {
  8671. return this;
  8672. };
  8673. return a;
  8674. }
  8675. function ha(a) {
  8676. var b = "undefined" != typeof Symbol && Symbol.iterator && a[Symbol.iterator];
  8677. return b ? b.call(a) : {
  8678. next: aa(a)
  8679. };
  8680. }
  8681. var ia = "function" == typeof Object.create ? Object.create : function (a) {
  8682. function b() {}
  8683. b.prototype = a;
  8684. return new b();
  8685. },
  8686. ja;
  8687. if ("function" == typeof Object.setPrototypeOf) ja = Object.setPrototypeOf;else {
  8688. var ka;
  8689. a: {
  8690. var la = {
  8691. V: !0
  8692. },
  8693. ma = {};
  8694. try {
  8695. ma.__proto__ = la;
  8696. ka = ma.V;
  8697. break a;
  8698. } catch (a) {}
  8699. ka = !1;
  8700. }
  8701. ja = ka ? function (a, b) {
  8702. a.__proto__ = b;
  8703. if (a.__proto__ !== b) throw new TypeError(a + " is not extensible");
  8704. return a;
  8705. } : null;
  8706. }
  8707. var na = ja;
  8708. function oa(a, b) {
  8709. a.prototype = ia(b.prototype);
  8710. a.prototype.constructor = a;
  8711. if (na) na(a, b);else for (var c in b) {
  8712. if ("prototype" != c) if (Object.defineProperties) {
  8713. var d = Object.getOwnPropertyDescriptor(b, c);
  8714. d && Object.defineProperty(a, c, d);
  8715. } else a[c] = b[c];
  8716. }
  8717. a.O = b.prototype;
  8718. }
  8719. function pa(a, b) {
  8720. u();
  8721. a instanceof String && (a += "");
  8722. var c = 0,
  8723. d = {
  8724. next: function next() {
  8725. if (c < a.length) {
  8726. var f = c++;
  8727. return {
  8728. value: b(f, a[f]),
  8729. done: !1
  8730. };
  8731. }
  8732. d.next = function () {
  8733. return {
  8734. done: !0,
  8735. value: void 0
  8736. };
  8737. };
  8738. return d.next();
  8739. }
  8740. };
  8741. d[Symbol.iterator] = function () {
  8742. return d;
  8743. };
  8744. return d;
  8745. }
  8746. function v(a, b) {
  8747. if (b) {
  8748. var c = r;
  8749. a = a.split(".");
  8750. for (var d = 0; d < a.length - 1; d++) {
  8751. var f = a[d];
  8752. f in c || (c[f] = {});
  8753. c = c[f];
  8754. }
  8755. a = a[a.length - 1];
  8756. d = c[a];
  8757. b = b(d);
  8758. b != d && null != b && ba(c, a, {
  8759. configurable: !0,
  8760. writable: !0,
  8761. value: b
  8762. });
  8763. }
  8764. }
  8765. v("Array.prototype.keys", function (a) {
  8766. return a ? a : function () {
  8767. return pa(this, function (b) {
  8768. return b;
  8769. });
  8770. };
  8771. });
  8772. v("Array.prototype.find", function (a) {
  8773. return a ? a : function (b, c) {
  8774. a: {
  8775. var d = this;
  8776. d instanceof String && (d = String(d));
  8777. for (var f = d.length, g = 0; g < f; g++) {
  8778. var e = d[g];
  8779. if (b.call(c, e, g, d)) {
  8780. b = e;
  8781. break a;
  8782. }
  8783. }
  8784. b = void 0;
  8785. }
  8786. return b;
  8787. };
  8788. });
  8789. v("Object.is", function (a) {
  8790. return a ? a : function (b, c) {
  8791. return b === c ? 0 !== b || 1 / b === 1 / c : b !== b && c !== c;
  8792. };
  8793. });
  8794. v("Array.prototype.includes", function (a) {
  8795. return a ? a : function (b, c) {
  8796. var d = this;
  8797. d instanceof String && (d = String(d));
  8798. var f = d.length;
  8799. c = c || 0;
  8800. for (0 > c && (c = Math.max(c + f, 0)); c < f; c++) {
  8801. var g = d[c];
  8802. if (g === b || Object.is(g, b)) return !0;
  8803. }
  8804. return !1;
  8805. };
  8806. });
  8807. v("Promise", function (a) {
  8808. function b(e) {
  8809. this.b = 0;
  8810. this.c = void 0;
  8811. this.a = [];
  8812. var h = this.f();
  8813. try {
  8814. e(h.resolve, h.reject);
  8815. } catch (k) {
  8816. h.reject(k);
  8817. }
  8818. }
  8819. function c() {
  8820. this.a = null;
  8821. }
  8822. function d(e) {
  8823. return e instanceof b ? e : new b(function (h) {
  8824. h(e);
  8825. });
  8826. }
  8827. if (a) return a;
  8828. c.prototype.b = function (e) {
  8829. if (null == this.a) {
  8830. this.a = [];
  8831. var h = this;
  8832. this.c(function () {
  8833. h.g();
  8834. });
  8835. }
  8836. this.a.push(e);
  8837. };
  8838. var f = r.setTimeout;
  8839. c.prototype.c = function (e) {
  8840. f(e, 0);
  8841. };
  8842. c.prototype.g = function () {
  8843. for (; this.a && this.a.length;) {
  8844. var e = this.a;
  8845. this.a = [];
  8846. for (var h = 0; h < e.length; ++h) {
  8847. var k = e[h];
  8848. e[h] = null;
  8849. try {
  8850. k();
  8851. } catch (l) {
  8852. this.f(l);
  8853. }
  8854. }
  8855. }
  8856. this.a = null;
  8857. };
  8858. c.prototype.f = function (e) {
  8859. this.c(function () {
  8860. throw e;
  8861. });
  8862. };
  8863. b.prototype.f = function () {
  8864. function e(l) {
  8865. return function (m) {
  8866. k || (k = !0, l.call(h, m));
  8867. };
  8868. }
  8869. var h = this,
  8870. k = !1;
  8871. return {
  8872. resolve: e(this.s),
  8873. reject: e(this.g)
  8874. };
  8875. };
  8876. b.prototype.s = function (e) {
  8877. if (e === this) this.g(new TypeError("A Promise cannot resolve to itself"));else if (e instanceof b) this.v(e);else {
  8878. a: switch (_typeof(e)) {
  8879. case "object":
  8880. var h = null != e;
  8881. break a;
  8882. case "function":
  8883. h = !0;
  8884. break a;
  8885. default:
  8886. h = !1;
  8887. }
  8888. h ? this.m(e) : this.h(e);
  8889. }
  8890. };
  8891. b.prototype.m = function (e) {
  8892. var h = void 0;
  8893. try {
  8894. h = e.then;
  8895. } catch (k) {
  8896. this.g(k);
  8897. return;
  8898. }
  8899. "function" == typeof h ? this.w(h, e) : this.h(e);
  8900. };
  8901. b.prototype.g = function (e) {
  8902. this.i(2, e);
  8903. };
  8904. b.prototype.h = function (e) {
  8905. this.i(1, e);
  8906. };
  8907. b.prototype.i = function (e, h) {
  8908. if (0 != this.b) throw Error("Cannot settle(" + e + ", " + h + "): Promise already settled in state" + this.b);
  8909. this.b = e;
  8910. this.c = h;
  8911. this.l();
  8912. };
  8913. b.prototype.l = function () {
  8914. if (null != this.a) {
  8915. for (var e = 0; e < this.a.length; ++e) {
  8916. g.b(this.a[e]);
  8917. }
  8918. this.a = null;
  8919. }
  8920. };
  8921. var g = new c();
  8922. b.prototype.v = function (e) {
  8923. var h = this.f();
  8924. e.F(h.resolve, h.reject);
  8925. };
  8926. b.prototype.w = function (e, h) {
  8927. var k = this.f();
  8928. try {
  8929. e.call(h, k.resolve, k.reject);
  8930. } catch (l) {
  8931. k.reject(l);
  8932. }
  8933. };
  8934. b.prototype.then = function (e, h) {
  8935. function k(q, w) {
  8936. return "function" == typeof q ? function (z) {
  8937. try {
  8938. l(q(z));
  8939. } catch (M) {
  8940. m(M);
  8941. }
  8942. } : w;
  8943. }
  8944. var l,
  8945. m,
  8946. p = new b(function (q, w) {
  8947. l = q;
  8948. m = w;
  8949. });
  8950. this.F(k(e, l), k(h, m));
  8951. return p;
  8952. };
  8953. b.prototype.catch = function (e) {
  8954. return this.then(void 0, e);
  8955. };
  8956. b.prototype.F = function (e, h) {
  8957. function k() {
  8958. switch (l.b) {
  8959. case 1:
  8960. e(l.c);
  8961. break;
  8962. case 2:
  8963. h(l.c);
  8964. break;
  8965. default:
  8966. throw Error("Unexpected state: " + l.b);
  8967. }
  8968. }
  8969. var l = this;
  8970. null == this.a ? g.b(k) : this.a.push(k);
  8971. };
  8972. b.resolve = d;
  8973. b.reject = function (e) {
  8974. return new b(function (h, k) {
  8975. k(e);
  8976. });
  8977. };
  8978. b.race = function (e) {
  8979. return new b(function (h, k) {
  8980. for (var l = ha(e), m = l.next(); !m.done; m = l.next()) {
  8981. d(m.value).F(h, k);
  8982. }
  8983. });
  8984. };
  8985. b.all = function (e) {
  8986. var h = ha(e),
  8987. k = h.next();
  8988. return k.done ? d([]) : new b(function (l, m) {
  8989. function p(z) {
  8990. return function (M) {
  8991. q[z] = M;
  8992. w--;
  8993. 0 == w && l(q);
  8994. };
  8995. }
  8996. var q = [],
  8997. w = 0;
  8998. do {
  8999. q.push(void 0), w++, d(k.value).F(p(q.length - 1), m), k = h.next();
  9000. } while (!k.done);
  9001. });
  9002. };
  9003. return b;
  9004. });
  9005. var qa = qa || {},
  9006. x = this || self;
  9007. function y(a, b) {
  9008. a = a.split(".");
  9009. b = b || x;
  9010. for (var c = 0; c < a.length; c++) {
  9011. if (b = b[a[c]], null == b) return null;
  9012. }
  9013. return b;
  9014. }
  9015. function ra() {}
  9016. function sa(a) {
  9017. var b = _typeof(a);
  9018. return "object" == b && null != a || "function" == b;
  9019. }
  9020. var ta = "closure_uid_" + (1E9 * Math.random() >>> 0),
  9021. ua = 0;
  9022. function va(a, b, c) {
  9023. return a.call.apply(a.bind, arguments);
  9024. }
  9025. function wa(a, b, c) {
  9026. if (!a) throw Error();
  9027. if (2 < arguments.length) {
  9028. var d = Array.prototype.slice.call(arguments, 2);
  9029. return function () {
  9030. var f = Array.prototype.slice.call(arguments);
  9031. Array.prototype.unshift.apply(f, d);
  9032. return a.apply(b, f);
  9033. };
  9034. }
  9035. return function () {
  9036. return a.apply(b, arguments);
  9037. };
  9038. }
  9039. function A(a, b, c) {
  9040. Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? A = va : A = wa;
  9041. return A.apply(null, arguments);
  9042. }
  9043. function B(a, b) {
  9044. function c() {}
  9045. c.prototype = b.prototype;
  9046. a.O = b.prototype;
  9047. a.prototype = new c();
  9048. a.prototype.constructor = a;
  9049. }
  9050. ;
  9051. function xa(a) {
  9052. this.a = a || {};
  9053. }
  9054. xa.prototype.get = function (a) {
  9055. return this.a[a];
  9056. };
  9057. xa.prototype.G = function () {
  9058. return Object.keys(this.a);
  9059. };
  9060. function C(a, b, c, d) {
  9061. this.f = a;
  9062. this.c = b;
  9063. this.b = c;
  9064. this.a = d;
  9065. }
  9066. C.prototype.getRequestMessage = function () {
  9067. return this.f;
  9068. };
  9069. C.prototype.getMethodDescriptor = function () {
  9070. return this.c;
  9071. };
  9072. C.prototype.getMetadata = function () {
  9073. return this.b;
  9074. };
  9075. C.prototype.getCallOptions = function () {
  9076. return this.a;
  9077. };
  9078. function D(a, b, c, d) {
  9079. c = void 0 === c ? {} : c;
  9080. this.c = a;
  9081. this.a = c;
  9082. this.b = b;
  9083. this.f = void 0 === d ? null : d;
  9084. }
  9085. D.prototype.getResponseMessage = function () {
  9086. return this.c;
  9087. };
  9088. D.prototype.getMetadata = function () {
  9089. return this.a;
  9090. };
  9091. D.prototype.getMethodDescriptor = function () {
  9092. return this.b;
  9093. };
  9094. D.prototype.getStatus = function () {
  9095. return this.f;
  9096. };
  9097. function ya(a, b, c, d, f, g) {
  9098. this.name = a;
  9099. this.a = f;
  9100. this.b = g;
  9101. }
  9102. function za(a, b, c) {
  9103. c = void 0 === c ? {} : c;
  9104. var d = void 0 === d ? new xa() : d;
  9105. return new C(b, a, c, d);
  9106. }
  9107. ya.prototype.getName = function () {
  9108. return this.name;
  9109. };
  9110. ya.prototype.getName = ya.prototype.getName;
  9111. function Aa(a) {
  9112. switch (a) {
  9113. case 200:
  9114. return 0;
  9115. case 400:
  9116. return 3;
  9117. case 401:
  9118. return 16;
  9119. case 403:
  9120. return 7;
  9121. case 404:
  9122. return 5;
  9123. case 409:
  9124. return 10;
  9125. case 412:
  9126. return 9;
  9127. case 429:
  9128. return 8;
  9129. case 499:
  9130. return 1;
  9131. case 500:
  9132. return 2;
  9133. case 501:
  9134. return 12;
  9135. case 503:
  9136. return 14;
  9137. case 504:
  9138. return 4;
  9139. default:
  9140. return 2;
  9141. }
  9142. }
  9143. ;
  9144. function E(a, b, c) {
  9145. c = void 0 === c ? {} : c;
  9146. b = Error.call(this, b);
  9147. this.message = b.message;
  9148. "stack" in b && (this.stack = b.stack);
  9149. this.code = a;
  9150. this.metadata = c;
  9151. }
  9152. oa(E, Error);
  9153. E.prototype.name = "RpcError";
  9154. function Ba(a) {
  9155. this.a = a;
  9156. }
  9157. Ba.prototype.on = function (a, b) {
  9158. return "data" == a || "error" == a ? this : this.a.on(a, b);
  9159. };
  9160. Ba.prototype.removeListener = function (a, b) {
  9161. return this.a.removeListener(a, b);
  9162. };
  9163. Ba.prototype.cancel = function () {
  9164. this.a.cancel();
  9165. };
  9166. function Ca(a) {
  9167. switch (a) {
  9168. case 0:
  9169. return "No Error";
  9170. case 1:
  9171. return "Access denied to content document";
  9172. case 2:
  9173. return "File not found";
  9174. case 3:
  9175. return "Firefox silently errored";
  9176. case 4:
  9177. return "Application custom error";
  9178. case 5:
  9179. return "An exception occurred";
  9180. case 6:
  9181. return "Http response at 400 or 500 level";
  9182. case 7:
  9183. return "Request was aborted";
  9184. case 8:
  9185. return "Request timed out";
  9186. case 9:
  9187. return "The resource is not available offline";
  9188. default:
  9189. return "Unrecognized error code";
  9190. }
  9191. }
  9192. ;
  9193. function F(a) {
  9194. if (Error.captureStackTrace) Error.captureStackTrace(this, F);else {
  9195. var b = Error().stack;
  9196. b && (this.stack = b);
  9197. }
  9198. a && (this.message = String(a));
  9199. }
  9200. B(F, Error);
  9201. F.prototype.name = "CustomError";
  9202. function Da(a, b) {
  9203. a = a.split("%s");
  9204. for (var c = "", d = a.length - 1, f = 0; f < d; f++) {
  9205. c += a[f] + (f < b.length ? b[f] : "%s");
  9206. }
  9207. F.call(this, c + a[d]);
  9208. }
  9209. B(Da, F);
  9210. Da.prototype.name = "AssertionError";
  9211. function Ea(a, b) {
  9212. throw new Da("Failure" + (a ? ": " + a : ""), Array.prototype.slice.call(arguments, 1));
  9213. }
  9214. ;
  9215. function Fa() {
  9216. this.l = null;
  9217. this.i = [];
  9218. this.m = 0;
  9219. this.b = Ga;
  9220. this.f = this.a = this.h = 0;
  9221. this.c = null;
  9222. this.g = 0;
  9223. }
  9224. function Ha(a, b) {
  9225. function c(l) {
  9226. l == Ia ? e.h = l : l == G ? e.h = l : Ja(e, h, k, "invalid frame byte");
  9227. e.b = Ka;
  9228. e.a = 0;
  9229. e.f = 0;
  9230. }
  9231. function d(l) {
  9232. e.f++;
  9233. e.a = (e.a << 8) + l;
  9234. 4 == e.f && (e.b = La, e.g = 0, "undefined" !== typeof Uint8Array ? e.c = new Uint8Array(e.a) : e.c = Array(e.a), 0 == e.a && g());
  9235. }
  9236. function f(l) {
  9237. e.c[e.g++] = l;
  9238. e.g == e.a && g();
  9239. }
  9240. function g() {
  9241. var l = {};
  9242. l[e.h] = e.c;
  9243. e.i.push(l);
  9244. e.b = Ga;
  9245. }
  9246. var e = a,
  9247. h,
  9248. k = 0;
  9249. for (b instanceof Uint8Array || b instanceof Array ? h = b : h = new Uint8Array(b); k < h.length;) {
  9250. switch (e.b) {
  9251. case Ma:
  9252. Ja(e, h, k, "stream already broken");
  9253. break;
  9254. case Ga:
  9255. c(h[k]);
  9256. break;
  9257. case Ka:
  9258. d(h[k]);
  9259. break;
  9260. case La:
  9261. f(h[k]);
  9262. break;
  9263. default:
  9264. throw Error("unexpected parser state: " + e.b);
  9265. }
  9266. e.m++;
  9267. k++;
  9268. }
  9269. a = e.i;
  9270. e.i = [];
  9271. return 0 < a.length ? a : null;
  9272. }
  9273. var Ga = 0,
  9274. Ka = 1,
  9275. La = 2,
  9276. Ma = 3,
  9277. Ia = 0,
  9278. G = 128;
  9279. function Ja(a, b, c, d) {
  9280. a.b = Ma;
  9281. a.l = "The stream is broken @" + a.m + "/" + c + ". Error: " + d + ". With input:\n" + b;
  9282. throw Error(a.l);
  9283. }
  9284. ;
  9285. var Na = Array.prototype.indexOf ? function (a, b) {
  9286. return Array.prototype.indexOf.call(a, b, void 0);
  9287. } : function (a, b) {
  9288. if ("string" === typeof a) return "string" !== typeof b || 1 != b.length ? -1 : a.indexOf(b, 0);
  9289. for (var c = 0; c < a.length; c++) {
  9290. if (c in a && a[c] === b) return c;
  9291. }
  9292. return -1;
  9293. };
  9294. var Oa = String.prototype.trim ? function (a) {
  9295. return a.trim();
  9296. } : function (a) {
  9297. return /^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1];
  9298. };
  9299. function H(a, b) {
  9300. return -1 != a.indexOf(b);
  9301. }
  9302. function Pa(a, b) {
  9303. return a < b ? -1 : a > b ? 1 : 0;
  9304. }
  9305. ;
  9306. var I;
  9307. a: {
  9308. var Qa = x.navigator;
  9309. if (Qa) {
  9310. var Ra = Qa.userAgent;
  9311. if (Ra) {
  9312. I = Ra;
  9313. break a;
  9314. }
  9315. }
  9316. I = "";
  9317. }
  9318. ;
  9319. function Sa(a, b) {
  9320. for (var c in a) {
  9321. b.call(void 0, a[c], c, a);
  9322. }
  9323. }
  9324. function Ta(a, b) {
  9325. var c = {},
  9326. d;
  9327. for (d in a) {
  9328. c[d] = b.call(void 0, a[d], d, a);
  9329. }
  9330. return c;
  9331. }
  9332. var Ua = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
  9333. function Va(a, b) {
  9334. for (var c, d, f = 1; f < arguments.length; f++) {
  9335. d = arguments[f];
  9336. for (c in d) {
  9337. a[c] = d[c];
  9338. }
  9339. for (var g = 0; g < Ua.length; g++) {
  9340. c = Ua[g], Object.prototype.hasOwnProperty.call(d, c) && (a[c] = d[c]);
  9341. }
  9342. }
  9343. }
  9344. ;
  9345. function Wa(a) {
  9346. var b = 1;
  9347. a = a.split(":");
  9348. for (var c = []; 0 < b && a.length;) {
  9349. c.push(a.shift()), b--;
  9350. }
  9351. a.length && c.push(a.join(":"));
  9352. return c;
  9353. }
  9354. ;
  9355. function Xa(a) {
  9356. Xa[" "](a);
  9357. return a;
  9358. }
  9359. Xa[" "] = ra;
  9360. function Ya(a) {
  9361. var b = Za;
  9362. return Object.prototype.hasOwnProperty.call(b, 9) ? b[9] : b[9] = a(9);
  9363. }
  9364. ;
  9365. var $a = H(I, "Opera"),
  9366. ab = H(I, "Trident") || H(I, "MSIE"),
  9367. bb = H(I, "Edge"),
  9368. cb = H(I, "Gecko") && !(H(I.toLowerCase(), "webkit") && !H(I, "Edge")) && !(H(I, "Trident") || H(I, "MSIE")) && !H(I, "Edge"),
  9369. db = H(I.toLowerCase(), "webkit") && !H(I, "Edge"),
  9370. eb;
  9371. a: {
  9372. var fb = "",
  9373. gb = function () {
  9374. var a = I;
  9375. if (cb) return /rv:([^\);]+)(\)|;)/.exec(a);
  9376. if (bb) return /Edge\/([\d\.]+)/.exec(a);
  9377. if (ab) return /\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);
  9378. if (db) return /WebKit\/(\S+)/.exec(a);
  9379. if ($a) return /(?:Version)[ \/]?(\S+)/.exec(a);
  9380. }();
  9381. gb && (fb = gb ? gb[1] : "");
  9382. if (ab) {
  9383. var hb,
  9384. ib = x.document;
  9385. hb = ib ? ib.documentMode : void 0;
  9386. if (null != hb && hb > parseFloat(fb)) {
  9387. eb = String(hb);
  9388. break a;
  9389. }
  9390. }
  9391. eb = fb;
  9392. }
  9393. var Za = {};
  9394. function jb() {
  9395. return Ya(function () {
  9396. for (var a = 0, b = Oa(String(eb)).split("."), c = Oa("9").split("."), d = Math.max(b.length, c.length), f = 0; 0 == a && f < d; f++) {
  9397. var g = b[f] || "",
  9398. e = c[f] || "";
  9399. do {
  9400. g = /(\d*)(\D*)(.*)/.exec(g) || ["", "", "", ""];
  9401. e = /(\d*)(\D*)(.*)/.exec(e) || ["", "", "", ""];
  9402. if (0 == g[0].length && 0 == e[0].length) break;
  9403. a = Pa(0 == g[1].length ? 0 : parseInt(g[1], 10), 0 == e[1].length ? 0 : parseInt(e[1], 10)) || Pa(0 == g[2].length, 0 == e[2].length) || Pa(g[2], e[2]);
  9404. g = g[3];
  9405. e = e[3];
  9406. } while (0 == a);
  9407. }
  9408. return 0 <= a;
  9409. });
  9410. }
  9411. ;
  9412. function kb() {
  9413. 0 != lb && (Object.prototype.hasOwnProperty.call(this, ta) && this[ta] || (this[ta] = ++ua));
  9414. this.K = this.K;
  9415. }
  9416. var lb = 0;
  9417. kb.prototype.K = !1;
  9418. var mb = Object.freeze || function (a) {
  9419. return a;
  9420. };
  9421. function J(a, b) {
  9422. this.type = a;
  9423. this.a = this.target = b;
  9424. this.defaultPrevented = !1;
  9425. }
  9426. J.prototype.b = function () {
  9427. this.defaultPrevented = !0;
  9428. };
  9429. var nb = function () {
  9430. if (!x.addEventListener || !Object.defineProperty) return !1;
  9431. var a = !1,
  9432. b = Object.defineProperty({}, "passive", {
  9433. get: function get() {
  9434. a = !0;
  9435. }
  9436. });
  9437. try {
  9438. x.addEventListener("test", ra, b), x.removeEventListener("test", ra, b);
  9439. } catch (c) {}
  9440. return a;
  9441. }();
  9442. function K(a, b) {
  9443. J.call(this, a ? a.type : "");
  9444. this.relatedTarget = this.a = this.target = null;
  9445. this.button = this.screenY = this.screenX = this.clientY = this.clientX = 0;
  9446. this.key = "";
  9447. this.metaKey = this.shiftKey = this.altKey = this.ctrlKey = !1;
  9448. this.pointerId = 0;
  9449. this.pointerType = "";
  9450. this.c = null;
  9451. if (a) {
  9452. var c = this.type = a.type,
  9453. d = a.changedTouches && a.changedTouches.length ? a.changedTouches[0] : null;
  9454. this.target = a.target || a.srcElement;
  9455. this.a = b;
  9456. if (b = a.relatedTarget) {
  9457. if (cb) {
  9458. a: {
  9459. try {
  9460. Xa(b.nodeName);
  9461. var f = !0;
  9462. break a;
  9463. } catch (g) {}
  9464. f = !1;
  9465. }
  9466. f || (b = null);
  9467. }
  9468. } else "mouseover" == c ? b = a.fromElement : "mouseout" == c && (b = a.toElement);
  9469. this.relatedTarget = b;
  9470. d ? (this.clientX = void 0 !== d.clientX ? d.clientX : d.pageX, this.clientY = void 0 !== d.clientY ? d.clientY : d.pageY, this.screenX = d.screenX || 0, this.screenY = d.screenY || 0) : (this.clientX = void 0 !== a.clientX ? a.clientX : a.pageX, this.clientY = void 0 !== a.clientY ? a.clientY : a.pageY, this.screenX = a.screenX || 0, this.screenY = a.screenY || 0);
  9471. this.button = a.button;
  9472. this.key = a.key || "";
  9473. this.ctrlKey = a.ctrlKey;
  9474. this.altKey = a.altKey;
  9475. this.shiftKey = a.shiftKey;
  9476. this.metaKey = a.metaKey;
  9477. this.pointerId = a.pointerId || 0;
  9478. this.pointerType = "string" === typeof a.pointerType ? a.pointerType : ob[a.pointerType] || "";
  9479. this.c = a;
  9480. a.defaultPrevented && K.O.b.call(this);
  9481. }
  9482. }
  9483. B(K, J);
  9484. var ob = mb({
  9485. 2: "touch",
  9486. 3: "pen",
  9487. 4: "mouse"
  9488. });
  9489. K.prototype.b = function () {
  9490. K.O.b.call(this);
  9491. var a = this.c;
  9492. a.preventDefault ? a.preventDefault() : a.returnValue = !1;
  9493. };
  9494. var L = "closure_listenable_" + (1E6 * Math.random() | 0);
  9495. var pb = 0;
  9496. function qb(a, b, c, d, f) {
  9497. this.listener = a;
  9498. this.proxy = null;
  9499. this.src = b;
  9500. this.type = c;
  9501. this.capture = !!d;
  9502. this.H = f;
  9503. this.key = ++pb;
  9504. this.A = this.D = !1;
  9505. }
  9506. function rb(a) {
  9507. a.A = !0;
  9508. a.listener = null;
  9509. a.proxy = null;
  9510. a.src = null;
  9511. a.H = null;
  9512. }
  9513. ;
  9514. function sb(a) {
  9515. this.src = a;
  9516. this.a = {};
  9517. this.b = 0;
  9518. }
  9519. sb.prototype.add = function (a, b, c, d, f) {
  9520. var g = a.toString();
  9521. a = this.a[g];
  9522. a || (a = this.a[g] = [], this.b++);
  9523. var e = tb(a, b, d, f);
  9524. -1 < e ? (b = a[e], c || (b.D = !1)) : (b = new qb(b, this.src, g, !!d, f), b.D = c, a.push(b));
  9525. return b;
  9526. };
  9527. sb.prototype.remove = function (a, b, c, d) {
  9528. a = a.toString();
  9529. if (!(a in this.a)) return !1;
  9530. var f = this.a[a];
  9531. b = tb(f, b, c, d);
  9532. return -1 < b ? (rb(f[b]), Array.prototype.splice.call(f, b, 1), 0 == f.length && (delete this.a[a], this.b--), !0) : !1;
  9533. };
  9534. function ub(a, b) {
  9535. var c = b.type;
  9536. if (c in a.a) {
  9537. var d = a.a[c],
  9538. f = Na(d, b),
  9539. g;
  9540. (g = 0 <= f) && Array.prototype.splice.call(d, f, 1);
  9541. g && (rb(b), 0 == a.a[c].length && (delete a.a[c], a.b--));
  9542. }
  9543. }
  9544. function tb(a, b, c, d) {
  9545. for (var f = 0; f < a.length; ++f) {
  9546. var g = a[f];
  9547. if (!g.A && g.listener == b && g.capture == !!c && g.H == d) return f;
  9548. }
  9549. return -1;
  9550. }
  9551. ;
  9552. var vb = "closure_lm_" + (1E6 * Math.random() | 0),
  9553. wb = {},
  9554. xb = 0;
  9555. function yb(a, b, c, d, f) {
  9556. if (d && d.once) zb(a, b, c, d, f);else if (Array.isArray(b)) for (var g = 0; g < b.length; g++) {
  9557. yb(a, b[g], c, d, f);
  9558. } else c = Ab(c), a && a[L] ? a.f.add(String(b), c, !1, sa(d) ? !!d.capture : !!d, f) : Bb(a, b, c, !1, d, f);
  9559. }
  9560. function Bb(a, b, c, d, f, g) {
  9561. if (!b) throw Error("Invalid event type");
  9562. var e = sa(f) ? !!f.capture : !!f,
  9563. h = Cb(a);
  9564. h || (a[vb] = h = new sb(a));
  9565. c = h.add(b, c, d, e, g);
  9566. if (!c.proxy) {
  9567. d = Db();
  9568. c.proxy = d;
  9569. d.src = a;
  9570. d.listener = c;
  9571. if (a.addEventListener) nb || (f = e), void 0 === f && (f = !1), a.addEventListener(b.toString(), d, f);else if (a.attachEvent) a.attachEvent(Eb(b.toString()), d);else if (a.addListener && a.removeListener) a.addListener(d);else throw Error("addEventListener and attachEvent are unavailable.");
  9572. xb++;
  9573. }
  9574. }
  9575. function Db() {
  9576. function a(c) {
  9577. return b.call(a.src, a.listener, c);
  9578. }
  9579. var b = Fb;
  9580. return a;
  9581. }
  9582. function zb(a, b, c, d, f) {
  9583. if (Array.isArray(b)) for (var g = 0; g < b.length; g++) {
  9584. zb(a, b[g], c, d, f);
  9585. } else c = Ab(c), a && a[L] ? a.f.add(String(b), c, !0, sa(d) ? !!d.capture : !!d, f) : Bb(a, b, c, !0, d, f);
  9586. }
  9587. function Gb(a, b, c, d, f) {
  9588. if (Array.isArray(b)) for (var g = 0; g < b.length; g++) {
  9589. Gb(a, b[g], c, d, f);
  9590. } else (d = sa(d) ? !!d.capture : !!d, c = Ab(c), a && a[L]) ? a.f.remove(String(b), c, d, f) : a && (a = Cb(a)) && (b = a.a[b.toString()], a = -1, b && (a = tb(b, c, d, f)), (c = -1 < a ? b[a] : null) && Hb(c));
  9591. }
  9592. function Hb(a) {
  9593. if ("number" !== typeof a && a && !a.A) {
  9594. var b = a.src;
  9595. if (b && b[L]) ub(b.f, a);else {
  9596. var c = a.type,
  9597. d = a.proxy;
  9598. b.removeEventListener ? b.removeEventListener(c, d, a.capture) : b.detachEvent ? b.detachEvent(Eb(c), d) : b.addListener && b.removeListener && b.removeListener(d);
  9599. xb--;
  9600. (c = Cb(b)) ? (ub(c, a), 0 == c.b && (c.src = null, b[vb] = null)) : rb(a);
  9601. }
  9602. }
  9603. }
  9604. function Eb(a) {
  9605. return a in wb ? wb[a] : wb[a] = "on" + a;
  9606. }
  9607. function Fb(a, b) {
  9608. if (a.A) a = !0;else {
  9609. b = new K(b, this);
  9610. var c = a.listener,
  9611. d = a.H || a.src;
  9612. a.D && Hb(a);
  9613. a = c.call(d, b);
  9614. }
  9615. return a;
  9616. }
  9617. function Cb(a) {
  9618. a = a[vb];
  9619. return a instanceof sb ? a : null;
  9620. }
  9621. var Ib = "__closure_events_fn_" + (1E9 * Math.random() >>> 0);
  9622. function Ab(a) {
  9623. if ("function" === typeof a) return a;
  9624. a[Ib] || (a[Ib] = function (b) {
  9625. return a.handleEvent(b);
  9626. });
  9627. return a[Ib];
  9628. }
  9629. ;
  9630. function N() {
  9631. kb.call(this);
  9632. this.f = new sb(this);
  9633. this.U = this;
  9634. }
  9635. B(N, kb);
  9636. N.prototype[L] = !0;
  9637. N.prototype.addEventListener = function (a, b, c, d) {
  9638. yb(this, a, b, c, d);
  9639. };
  9640. N.prototype.removeEventListener = function (a, b, c, d) {
  9641. Gb(this, a, b, c, d);
  9642. };
  9643. function O(a, b) {
  9644. a = a.U;
  9645. var c = b.type || b;
  9646. if ("string" === typeof b) b = new J(b, a);else if (b instanceof J) b.target = b.target || a;else {
  9647. var d = b;
  9648. b = new J(c, a);
  9649. Va(b, d);
  9650. }
  9651. a = b.a = a;
  9652. Jb(a, c, !0, b);
  9653. Jb(a, c, !1, b);
  9654. }
  9655. function Jb(a, b, c, d) {
  9656. if (b = a.f.a[String(b)]) {
  9657. b = b.concat();
  9658. for (var f = !0, g = 0; g < b.length; ++g) {
  9659. var e = b[g];
  9660. if (e && !e.A && e.capture == c) {
  9661. var h = e.listener,
  9662. k = e.H || e.src;
  9663. e.D && ub(a.f, e);
  9664. f = !1 !== h.call(k, d) && f;
  9665. }
  9666. }
  9667. }
  9668. }
  9669. ;
  9670. var Kb = x;
  9671. function Lb(a, b, c) {
  9672. if ("function" === typeof a) c && (a = A(a, c));else if (a && "function" == typeof a.handleEvent) a = A(a.handleEvent, a);else throw Error("Invalid listener argument");
  9673. return 2147483647 < Number(b) ? -1 : Kb.setTimeout(a, b || 0);
  9674. }
  9675. ;
  9676. function Mb(a, b) {
  9677. this.name = a;
  9678. this.value = b;
  9679. }
  9680. Mb.prototype.toString = function () {
  9681. return this.name;
  9682. };
  9683. var Nb = new Mb("OFF", Infinity),
  9684. Ob = new Mb("SEVERE", 1E3),
  9685. Pb = new Mb("CONFIG", 700),
  9686. Qb = new Mb("FINE", 500);
  9687. function Rb() {
  9688. this.clear();
  9689. }
  9690. var Sb;
  9691. Rb.prototype.clear = function () {};
  9692. function Ub(a, b, c) {
  9693. this.reset(a || Nb, b, c, void 0, void 0);
  9694. }
  9695. Ub.prototype.reset = function () {};
  9696. function Vb(a, b) {
  9697. this.a = null;
  9698. this.f = [];
  9699. this.b = (void 0 === b ? null : b) || null;
  9700. this.c = [];
  9701. this.g = {
  9702. getName: function getName() {
  9703. return a;
  9704. }
  9705. };
  9706. }
  9707. function Wb(a) {
  9708. if (a.a) return a.a;
  9709. if (a.b) return Wb(a.b);
  9710. Ea("Root logger has no level set.");
  9711. return Nb;
  9712. }
  9713. function Xb(a, b) {
  9714. for (; a;) {
  9715. a.f.forEach(function (c) {
  9716. c(b);
  9717. }), a = a.b;
  9718. }
  9719. }
  9720. function Yb() {
  9721. this.entries = {};
  9722. var a = new Vb("");
  9723. a.a = Pb;
  9724. this.entries[""] = a;
  9725. }
  9726. var Zb;
  9727. function $b(a, b, c) {
  9728. var d = a.entries[b];
  9729. if (d) return void 0 !== c && (d.a = c), d;
  9730. d = $b(a, b.substr(0, b.lastIndexOf(".")));
  9731. var f = new Vb(b, d);
  9732. a.entries[b] = f;
  9733. d.c.push(f);
  9734. void 0 !== c && (f.a = c);
  9735. return f;
  9736. }
  9737. function ac() {
  9738. Zb || (Zb = new Yb());
  9739. return Zb;
  9740. }
  9741. function bc(a, b, c) {
  9742. var d;
  9743. if (d = a) if (d = a && b) {
  9744. d = b.value;
  9745. var f = a ? Wb($b(ac(), a.getName())) : Nb;
  9746. d = d >= f.value;
  9747. }
  9748. d && (b = b || Nb, d = $b(ac(), a.getName()), "function" === typeof c && (c = c()), Sb || (Sb = new Rb()), a = a.getName(), a = new Ub(b, c, a), Xb(d, a));
  9749. }
  9750. function P(a, b) {
  9751. a && bc(a, Qb, b);
  9752. }
  9753. ;
  9754. function cc() {}
  9755. cc.prototype.a = null;
  9756. function dc(a) {
  9757. var b;
  9758. (b = a.a) || (b = {}, ec(a) && (b[0] = !0, b[1] = !0), b = a.a = b);
  9759. return b;
  9760. }
  9761. ;
  9762. var fc;
  9763. function gc() {}
  9764. B(gc, cc);
  9765. function hc(a) {
  9766. // 解决兼容APP端跨域的问题,app端必须使用H5+中的plus.net.XMLHttpRequest【APP端不兼容标准HTML中的XMLHttpRequest】
  9767. return (a = ec(a)) ? new ActiveXObject(a) : new plus.net.XMLHttpRequest();
  9768. // return (a = ec(a)) ? new ActiveXObject(a) : new XMLHttpRequest
  9769. }
  9770. function ec(a) {
  9771. if (!a.b && "undefined" == typeof XMLHttpRequest && "undefined" != typeof ActiveXObject) {
  9772. for (var b = ["MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"], c = 0; c < b.length; c++) {
  9773. var d = b[c];
  9774. try {
  9775. return new ActiveXObject(d), a.b = d;
  9776. } catch (f) {}
  9777. }
  9778. throw Error("Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed");
  9779. }
  9780. return a.b;
  9781. }
  9782. fc = new gc();
  9783. t();
  9784. u();
  9785. function ic(a, b) {
  9786. this.b = a[x.Symbol.iterator]();
  9787. this.c = b;
  9788. this.f = 0;
  9789. }
  9790. ic.prototype[Symbol.iterator] = function () {
  9791. return this;
  9792. };
  9793. ic.prototype.next = function () {
  9794. var a = this.b.next();
  9795. return {
  9796. value: a.done ? void 0 : this.c.call(void 0, a.value, this.f++),
  9797. done: a.done
  9798. };
  9799. };
  9800. function jc(a, b) {
  9801. return new ic(a, b);
  9802. }
  9803. t();
  9804. u();
  9805. t();
  9806. u();
  9807. var kc = "StopIteration" in x ? x.StopIteration : {
  9808. message: "StopIteration",
  9809. stack: ""
  9810. };
  9811. function Q() {}
  9812. Q.prototype.next = function () {
  9813. return Q.prototype.a.call(this);
  9814. };
  9815. Q.prototype.a = function () {
  9816. throw kc;
  9817. };
  9818. Q.prototype.u = function () {
  9819. return this;
  9820. };
  9821. function lc(a) {
  9822. if (a instanceof R || a instanceof S || a instanceof T) return a;
  9823. if ("function" == typeof a.next) return new R(function () {
  9824. return mc(a);
  9825. });
  9826. t();
  9827. u();
  9828. if ("function" == typeof a[Symbol.iterator]) return t(), u(), new R(function () {
  9829. return a[Symbol.iterator]();
  9830. });
  9831. if ("function" == typeof a.u) return new R(function () {
  9832. return mc(a.u());
  9833. });
  9834. throw Error("Not an iterator or iterable.");
  9835. }
  9836. function mc(a) {
  9837. if (!(a instanceof Q)) return a;
  9838. var b = !1;
  9839. return {
  9840. next: function next() {
  9841. for (var c; !b;) {
  9842. try {
  9843. c = a.a();
  9844. break;
  9845. } catch (d) {
  9846. if (d !== kc) throw d;
  9847. b = !0;
  9848. }
  9849. }
  9850. return {
  9851. value: c,
  9852. done: b
  9853. };
  9854. }
  9855. };
  9856. }
  9857. t();
  9858. u();
  9859. function R(a) {
  9860. this.b = a;
  9861. }
  9862. R.prototype.u = function () {
  9863. return new S(this.b());
  9864. };
  9865. R.prototype[Symbol.iterator] = function () {
  9866. return new T(this.b());
  9867. };
  9868. R.prototype.c = function () {
  9869. return new T(this.b());
  9870. };
  9871. t();
  9872. u();
  9873. function S(a) {
  9874. this.b = a;
  9875. }
  9876. oa(S, Q);
  9877. S.prototype.a = function () {
  9878. var a = this.b.next();
  9879. if (a.done) throw kc;
  9880. return a.value;
  9881. };
  9882. S.prototype.next = function () {
  9883. return S.prototype.a.call(this);
  9884. };
  9885. S.prototype[Symbol.iterator] = function () {
  9886. return new T(this.b);
  9887. };
  9888. S.prototype.c = function () {
  9889. return new T(this.b);
  9890. };
  9891. function T(a) {
  9892. R.call(this, function () {
  9893. return a;
  9894. });
  9895. this.f = a;
  9896. }
  9897. oa(T, R);
  9898. T.prototype.next = function () {
  9899. return this.f.next();
  9900. };
  9901. function nc(a, b) {
  9902. this.o = {};
  9903. this.j = [];
  9904. this.B = this.size = 0;
  9905. var c = arguments.length;
  9906. if (1 < c) {
  9907. if (c % 2) throw Error("Uneven number of arguments");
  9908. for (var d = 0; d < c; d += 2) {
  9909. this.set(arguments[d], arguments[d + 1]);
  9910. }
  9911. } else a && this.addAll(a);
  9912. }
  9913. n = nc.prototype;
  9914. n.G = function () {
  9915. oc(this);
  9916. return this.j.concat();
  9917. };
  9918. n.has = function (a) {
  9919. return U(this.o, a);
  9920. };
  9921. n.clear = function () {
  9922. this.o = {};
  9923. this.B = this.size = this.j.length = 0;
  9924. };
  9925. n.remove = function (a) {
  9926. return this.delete(a);
  9927. };
  9928. n.delete = function (a) {
  9929. return U(this.o, a) ? (delete this.o[a], --this.size, this.B++, this.j.length > 2 * this.size && oc(this), !0) : !1;
  9930. };
  9931. function oc(a) {
  9932. if (a.size != a.j.length) {
  9933. for (var b = 0, c = 0; b < a.j.length;) {
  9934. var d = a.j[b];
  9935. U(a.o, d) && (a.j[c++] = d);
  9936. b++;
  9937. }
  9938. a.j.length = c;
  9939. }
  9940. if (a.size != a.j.length) {
  9941. var f = {};
  9942. for (c = b = 0; b < a.j.length;) {
  9943. d = a.j[b], U(f, d) || (a.j[c++] = d, f[d] = 1), b++;
  9944. }
  9945. a.j.length = c;
  9946. }
  9947. }
  9948. n.get = function (a, b) {
  9949. return U(this.o, a) ? this.o[a] : b;
  9950. };
  9951. n.set = function (a, b) {
  9952. U(this.o, a) || (this.size += 1, this.j.push(a), this.B++);
  9953. this.o[a] = b;
  9954. };
  9955. n.addAll = function (a) {
  9956. if (a instanceof nc) for (var b = a.G(), c = 0; c < b.length; c++) {
  9957. this.set(b[c], a.get(b[c]));
  9958. } else for (b in a) {
  9959. this.set(b, a[b]);
  9960. }
  9961. };
  9962. n.forEach = function (a, b) {
  9963. for (var c = this.G(), d = 0; d < c.length; d++) {
  9964. var f = c[d],
  9965. g = this.get(f);
  9966. a.call(b, g, f, this);
  9967. }
  9968. };
  9969. n.clone = function () {
  9970. return new nc(this);
  9971. };
  9972. n.keys = function () {
  9973. return lc(this.u(!0)).c();
  9974. };
  9975. n.values = function () {
  9976. return lc(this.u(!1)).c();
  9977. };
  9978. n.entries = function () {
  9979. var a = this;
  9980. return jc(this.keys(), function (b) {
  9981. return [b, a.get(b)];
  9982. });
  9983. };
  9984. n.u = function (a) {
  9985. oc(this);
  9986. var b = 0,
  9987. c = this.B,
  9988. d = this,
  9989. f = new Q();
  9990. f.a = function () {
  9991. if (c != d.B) throw Error("The map has changed since the iterator was created");
  9992. if (b >= d.j.length) throw kc;
  9993. var g = d.j[b++];
  9994. return a ? g : d.o[g];
  9995. };
  9996. f.next = f.a.bind(f);
  9997. return f;
  9998. };
  9999. function U(a, b) {
  10000. return Object.prototype.hasOwnProperty.call(a, b);
  10001. }
  10002. ;
  10003. var pc = /^(?:([^:/?#.]+):)?(?:\/\/(?:([^\\/?#]*)@)?([^\\/?#]*?)(?::([0-9]+))?(?=[\\/?#]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\s\S]*))?$/;
  10004. function qc(a) {
  10005. N.call(this);
  10006. this.headers = new nc();
  10007. this.C = a || null;
  10008. this.c = !1;
  10009. this.J = this.a = null;
  10010. this.P = this.v = "";
  10011. this.g = 0;
  10012. this.l = "";
  10013. this.i = this.N = this.s = this.L = !1;
  10014. this.h = 0;
  10015. this.w = null;
  10016. this.m = rc;
  10017. this.I = this.M = !1;
  10018. }
  10019. B(qc, N);
  10020. var rc = "";
  10021. qc.prototype.b = $b(ac(), "goog.net.XhrIo", void 0).g;
  10022. var sc = /^https?$/i,
  10023. tc = ["POST", "PUT"];
  10024. function uc(a, b, c) {
  10025. if (a.a) throw Error("[goog.net.XhrIo] Object is active with another request=" + a.v + "; newUri=" + b);
  10026. a.v = b;
  10027. a.l = "";
  10028. a.g = 0;
  10029. a.P = "POST";
  10030. a.L = !1;
  10031. a.c = !0;
  10032. a.a = a.C ? hc(a.C) : hc(fc);
  10033. a.J = a.C ? dc(a.C) : dc(fc);
  10034. a.a.onreadystatechange = A(a.R, a);
  10035. try {
  10036. P(a.b, V(a, "Opening Xhr")), a.N = !0, a.a.open("POST", String(b), !0), a.N = !1;
  10037. } catch (g) {
  10038. P(a.b, V(a, "Error opening Xhr: " + g.message));
  10039. vc(a, g);
  10040. return;
  10041. }
  10042. b = c || "";
  10043. c = a.headers.clone();
  10044. var d = c.G().find(function (g) {
  10045. return "content-type" == g.toLowerCase();
  10046. }),
  10047. f = x.FormData && b instanceof x.FormData;
  10048. !(0 <= Na(tc, "POST")) || d || f || c.set("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
  10049. c.forEach(function (g, e) {
  10050. this.a.setRequestHeader(e, g);
  10051. }, a);
  10052. a.m && (a.a.responseType = a.m);
  10053. "withCredentials" in a.a && a.a.withCredentials !== a.M && (a.a.withCredentials = a.M);
  10054. try {
  10055. wc(a), 0 < a.h && (a.I = xc(a.a), P(a.b, V(a, "Will abort after " + a.h + "ms if incomplete, xhr2 " + a.I)), a.I ? (a.a.timeout = a.h, a.a.ontimeout = A(a.T, a)) : a.w = Lb(a.T, a.h, a)), P(a.b, V(a, "Sending request")), a.s = !0, a.a.send(b), a.s = !1;
  10056. } catch (g) {
  10057. P(a.b, V(a, "Send error: " + g.message)), vc(a, g);
  10058. }
  10059. }
  10060. function xc(a) {
  10061. return ab && jb() && "number" === typeof a.timeout && void 0 !== a.ontimeout;
  10062. }
  10063. n = qc.prototype;
  10064. n.T = function () {
  10065. "undefined" != typeof qa && this.a && (this.l = "Timed out after " + this.h + "ms, aborting", this.g = 8, P(this.b, V(this, this.l)), O(this, "timeout"), this.abort(8));
  10066. };
  10067. function vc(a, b) {
  10068. a.c = !1;
  10069. a.a && (a.i = !0, a.a.abort(), a.i = !1);
  10070. a.l = b;
  10071. a.g = 5;
  10072. yc(a);
  10073. zc(a);
  10074. }
  10075. function yc(a) {
  10076. a.L || (a.L = !0, O(a, "complete"), O(a, "error"));
  10077. }
  10078. n.abort = function (a) {
  10079. this.a && this.c && (P(this.b, V(this, "Aborting")), this.c = !1, this.i = !0, this.a.abort(), this.i = !1, this.g = a || 7, O(this, "complete"), O(this, "abort"), zc(this));
  10080. };
  10081. n.R = function () {
  10082. this.K || (this.N || this.s || this.i ? Ac(this) : this.W());
  10083. };
  10084. n.W = function () {
  10085. Ac(this);
  10086. };
  10087. function Ac(a) {
  10088. if (a.c && "undefined" != typeof qa) if (a.J[1] && 4 == W(a) && 2 == a.getStatus()) P(a.b, V(a, "Local request error detected and ignored"));else if (a.s && 4 == W(a)) Lb(a.R, 0, a);else if (O(a, "readystatechange"), 4 == W(a)) {
  10089. P(a.b, V(a, "Request complete"));
  10090. a.c = !1;
  10091. try {
  10092. var b = a.getStatus();
  10093. a: switch (b) {
  10094. case 200:
  10095. case 201:
  10096. case 202:
  10097. case 204:
  10098. case 206:
  10099. case 304:
  10100. case 1223:
  10101. var c = !0;
  10102. break a;
  10103. default:
  10104. c = !1;
  10105. }
  10106. var d;
  10107. if (!(d = c)) {
  10108. var f;
  10109. if (f = 0 === b) {
  10110. var g = String(a.v).match(pc)[1] || null;
  10111. if (!g && x.self && x.self.location) {
  10112. var e = x.self.location.protocol;
  10113. g = e.substr(0, e.length - 1);
  10114. }
  10115. f = !sc.test(g ? g.toLowerCase() : "");
  10116. }
  10117. d = f;
  10118. }
  10119. if (d) O(a, "complete"), O(a, "success");else {
  10120. a.g = 6;
  10121. try {
  10122. var h = 2 < W(a) ? a.a.statusText : "";
  10123. } catch (k) {
  10124. P(a.b, "Can not get status: " + k.message), h = "";
  10125. }
  10126. a.l = h + " [" + a.getStatus() + "]";
  10127. yc(a);
  10128. }
  10129. } finally {
  10130. zc(a);
  10131. }
  10132. }
  10133. }
  10134. function zc(a) {
  10135. if (a.a) {
  10136. wc(a);
  10137. var b = a.a,
  10138. c = a.J[0] ? ra : null;
  10139. a.a = null;
  10140. a.J = null;
  10141. O(a, "ready");
  10142. try {
  10143. b.onreadystatechange = c;
  10144. } catch (d) {
  10145. (a = a.b) && bc(a, Ob, "Problem encountered resetting onreadystatechange: " + d.message);
  10146. }
  10147. }
  10148. }
  10149. function wc(a) {
  10150. a.a && a.I && (a.a.ontimeout = null);
  10151. a.w && (Kb.clearTimeout(a.w), a.w = null);
  10152. }
  10153. function W(a) {
  10154. return a.a ? a.a.readyState : 0;
  10155. }
  10156. n.getStatus = function () {
  10157. try {
  10158. return 2 < W(this) ? this.a.status : -1;
  10159. } catch (a) {
  10160. return -1;
  10161. }
  10162. };
  10163. function Bc(a) {
  10164. try {
  10165. if (!a.a) return null;
  10166. if ("response" in a.a) return a.a.response;
  10167. switch (a.m) {
  10168. case rc:
  10169. case "text":
  10170. return a.a.responseText;
  10171. case "arraybuffer":
  10172. if ("mozResponseArrayBuffer" in a.a) return a.a.mozResponseArrayBuffer;
  10173. }
  10174. var b = a.b;
  10175. b && bc(b, Ob, "Response type " + a.m + " is not supported on this browser");
  10176. return null;
  10177. } catch (c) {
  10178. return P(a.b, "Can not get response: " + c.message), null;
  10179. }
  10180. }
  10181. function Cc(a, b) {
  10182. if (a.a && 4 == W(a)) return a = a.a.getResponseHeader(b), null === a ? void 0 : a;
  10183. }
  10184. function Dc(a) {
  10185. var b = {};
  10186. a = (a.a && 4 == W(a) ? a.a.getAllResponseHeaders() || "" : "").split("\r\n");
  10187. for (var c = 0; c < a.length; c++) {
  10188. if (!/^[\s\xa0]*$/.test(a[c])) {
  10189. var d = Wa(a[c]),
  10190. f = d[0];
  10191. d = d[1];
  10192. if ("string" === typeof d) {
  10193. d = d.trim();
  10194. var g = b[f] || [];
  10195. b[f] = g;
  10196. g.push(d);
  10197. }
  10198. }
  10199. }
  10200. return Ta(b, function (e) {
  10201. return e.join(", ");
  10202. });
  10203. }
  10204. function V(a, b) {
  10205. return b + " [" + a.P + " " + a.v + " " + a.getStatus() + "]";
  10206. }
  10207. ;
  10208. var Ec = {},
  10209. Fc = null;
  10210. function Gc(a) {
  10211. var b = a.length,
  10212. c = 3 * b / 4;
  10213. c % 3 ? c = Math.floor(c) : H("=.", a[b - 1]) && (c = H("=.", a[b - 2]) ? c - 2 : c - 1);
  10214. var d = new Uint8Array(c),
  10215. f = 0;
  10216. Hc(a, function (g) {
  10217. d[f++] = g;
  10218. });
  10219. return d.subarray(0, f);
  10220. }
  10221. function Hc(a, b) {
  10222. function c(k) {
  10223. for (; d < a.length;) {
  10224. var l = a.charAt(d++),
  10225. m = Fc[l];
  10226. if (null != m) return m;
  10227. if (!/^[\s\xa0]*$/.test(l)) throw Error("Unknown base64 encoding at char: " + l);
  10228. }
  10229. return k;
  10230. }
  10231. Ic();
  10232. for (var d = 0;;) {
  10233. var f = c(-1),
  10234. g = c(0),
  10235. e = c(64),
  10236. h = c(64);
  10237. if (64 === h && -1 === f) break;
  10238. b(f << 2 | g >> 4);
  10239. 64 != e && (b(g << 4 & 240 | e >> 2), 64 != h && b(e << 6 & 192 | h));
  10240. }
  10241. }
  10242. function Ic() {
  10243. if (!Fc) {
  10244. Fc = {};
  10245. for (var a = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""), b = ["+/=", "+/", "-_=", "-_.", "-_"], c = 0; 5 > c; c++) {
  10246. var d = a.concat(b[c].split(""));
  10247. Ec[c] = d;
  10248. for (var f = 0; f < d.length; f++) {
  10249. var g = d[f];
  10250. void 0 === Fc[g] && (Fc[g] = f);
  10251. }
  10252. }
  10253. }
  10254. }
  10255. ;
  10256. var Jc = ["content-type", "grpc-status", "grpc-message"];
  10257. function X(a) {
  10258. // console.log('X run')
  10259. this.a = a.Z;
  10260. this.m = null;
  10261. this.b = [];
  10262. this.h = [];
  10263. this.g = [];
  10264. this.f = [];
  10265. this.c = [];
  10266. this.l = !1;
  10267. this.i = 0;
  10268. this.s = new Fa();
  10269. var b = this;
  10270. yb(this.a, "readystatechange", function () {
  10271. // console.log('readystatechange')
  10272. // console.log(a)
  10273. var c = b.a;
  10274. // console.log(c)
  10275. if (c = c.a ? c.a.getResponseHeader("Content-Type") : null) {
  10276. // console.log('X ok 1')
  10277. // console.log('c: ' + c)
  10278. c = c.toLowerCase();
  10279. if (0 == c.lastIndexOf("application/grpc-web-text", 0)) {
  10280. c = b.a;
  10281. // console.log('(c = b.a) c: ' + JSON.stringify(c.a))
  10282. try {
  10283. var d = c.a ? c.a.responseText : "";
  10284. } catch (k) {
  10285. // console.log("Can not get responseText: " + k.message)
  10286. P(c.b, "Can not get responseText: " + k.message), d = "";
  10287. }
  10288. c = d || "";
  10289. // console.log('(c = d || "") c: ' + c)
  10290. // add by wzx
  10291. if (c == '200 OK') c = "";
  10292. d = c.length - c.length % 4;
  10293. c = c.substr(b.i, d - b.i);
  10294. if (0 == c.length) return;
  10295. // console.log('X ok 3')
  10296. b.i = d;
  10297. c = Gc(c);
  10298. } else if (0 == c.lastIndexOf("application/grpc", 0)) c = new Uint8Array(Bc(b.a));else {
  10299. // console.log('Unknown Content-type received.')
  10300. Y(b, new E(2, "Unknown Content-type received."));
  10301. return;
  10302. }
  10303. d = null;
  10304. try {
  10305. // console.log(b.s)
  10306. // console.log(c)
  10307. d = Ha(b.s, c);
  10308. } catch (k) {
  10309. __f__("log", k, " at node_modules/grpc-web/index.js:1825");
  10310. Y(b, new E(2, "Error in parsing response body"));
  10311. }
  10312. if (d) for (c = 0; c < d.length; c++) {
  10313. if (Ia in d[c]) {
  10314. var f = d[c][Ia];
  10315. if (f) {
  10316. var g = !1,
  10317. e = void 0;
  10318. try {
  10319. e = b.m(f), g = !0;
  10320. } catch (k) {
  10321. Y(b, new E(13, "Error when deserializing response data; error: " + k + (", response: " + e)));
  10322. }
  10323. if (g) for (f = e, g = 0; g < b.b.length; g++) {
  10324. b.b[g](f);
  10325. }
  10326. }
  10327. }
  10328. if (G in d[c] && 0 < d[c][G].length) {
  10329. f = "";
  10330. for (g = 0; g < d[c][G].length; g++) {
  10331. f += String.fromCharCode(d[c][G][g]);
  10332. }
  10333. f = f.trim().split("\r\n");
  10334. g = {};
  10335. for (e = 0; e < f.length; e++) {
  10336. var h = f[e].indexOf(":");
  10337. g[f[e].substring(0, h).trim()] = f[e].substring(h + 1).trim();
  10338. }
  10339. f = g;
  10340. g = 0;
  10341. e = "";
  10342. "grpc-status" in f && (g = Number(f["grpc-status"]), delete f["grpc-status"]);
  10343. "grpc-message" in f && (e = f["grpc-message"], delete f["grpc-message"]);
  10344. Y(b, new E(g, e, f));
  10345. }
  10346. }
  10347. }
  10348. });
  10349. yb(this.a, "complete", function () {
  10350. var c = b.a.g,
  10351. d = 2,
  10352. f = "",
  10353. g = {},
  10354. e = Dc(b.a);
  10355. Object.keys(e).forEach(function (k) {
  10356. Jc.includes(k) || (g[k] = e[k]);
  10357. });
  10358. Kc(b, g);
  10359. var h = -1;
  10360. if (0 != c) {
  10361. switch (c) {
  10362. case 7:
  10363. d = 10;
  10364. break;
  10365. case 8:
  10366. d = 4;
  10367. break;
  10368. case 6:
  10369. h = b.a.getStatus();
  10370. d = Aa(h);
  10371. break;
  10372. default:
  10373. d = 14;
  10374. }
  10375. 10 == d && b.l || (f = Ca(c), -1 != h && (f += ", http status code: " + h), Y(b, new E(d, f)));
  10376. } else h = !1, "grpc-status" in e && (d = Number(Cc(b.a, "grpc-status")), "grpc-message" in e && (f = Cc(b.a, "grpc-message")), 0 != d && (Y(b, new E(d, f || "", e)), h = !0)), h || Lc(b);
  10377. });
  10378. }
  10379. X.prototype.on = function (a, b) {
  10380. "data" == a ? this.b.push(b) : "status" == a ? this.h.push(b) : "metadata" == a ? this.g.push(b) : "end" == a ? this.c.push(b) : "error" == a && this.f.push(b);
  10381. return this;
  10382. };
  10383. function Mc(a, b) {
  10384. b = a.indexOf(b);
  10385. -1 < b && a.splice(b, 1);
  10386. }
  10387. X.prototype.removeListener = function (a, b) {
  10388. "data" == a ? Mc(this.b, b) : "status" == a ? Mc(this.h, b) : "metadata" == a ? Mc(this.g, b) : "end" == a ? Mc(this.c, b) : "error" == a && Mc(this.f, b);
  10389. return this;
  10390. };
  10391. X.prototype.cancel = function () {
  10392. this.l = !0;
  10393. this.a.abort();
  10394. };
  10395. function Y(a, b) {
  10396. if (0 != b.code) for (var c = new E(b.code, decodeURIComponent(b.message || ""), b.metadata), d = 0; d < a.f.length; d++) {
  10397. a.f[d](c);
  10398. }
  10399. b = {
  10400. code: b.code,
  10401. details: decodeURIComponent(b.message || ""),
  10402. metadata: b.metadata
  10403. };
  10404. for (c = 0; c < a.h.length; c++) {
  10405. a.h[c](b);
  10406. }
  10407. }
  10408. function Kc(a, b) {
  10409. for (var c = 0; c < a.g.length; c++) {
  10410. a.g[c](b);
  10411. }
  10412. }
  10413. function Lc(a) {
  10414. for (var b = 0; b < a.c.length; b++) {
  10415. a.c[b]();
  10416. }
  10417. }
  10418. X.prototype.cancel = X.prototype.cancel;
  10419. X.prototype.removeListener = X.prototype.removeListener;
  10420. X.prototype.on = X.prototype.on;
  10421. function Nc(a) {
  10422. var b = "";
  10423. Sa(a, function (c, d) {
  10424. b += d;
  10425. b += ":";
  10426. b += c;
  10427. b += "\r\n";
  10428. });
  10429. return b;
  10430. }
  10431. ;
  10432. function Z(a, b) {
  10433. a = void 0 === a ? {} : a;
  10434. this.a = a.format || y("format", a) || "text";
  10435. this.g = a.aa || y("suppressCorsPreflight", a) || !1;
  10436. this.f = a.withCredentials || y("withCredentials", a) || !1;
  10437. this.b = a.$ || y("streamInterceptors", a) || [];
  10438. this.h = a.ba || y("unaryInterceptors", a) || [];
  10439. this.c = b || null;
  10440. }
  10441. Z.prototype.X = function (a, b, c, d, f) {
  10442. var g = this,
  10443. e = a.substr(0, a.length - d.name.length);
  10444. a = Oc(function (h) {
  10445. return Pc(g, h, e);
  10446. }, this.b).call(this, za(d, b, c));
  10447. Qc(a, f, !1);
  10448. return new Ba(a);
  10449. };
  10450. Z.prototype.S = function (a, b, c, d) {
  10451. var f = this,
  10452. g = a.substr(0, a.length - d.name.length);
  10453. return Oc(function (e) {
  10454. return new Promise(function (h, k) {
  10455. var l = Pc(f, e, g),
  10456. m,
  10457. p,
  10458. q;
  10459. Qc(l, function (w, z, M, Tb, Rc) {
  10460. w ? k(w) : Rc ? q = z : M ? p = M : Tb ? m = Tb : (w = e.getMethodDescriptor(), z = m, z = void 0 === z ? {} : z, h(new D(q, w, z, void 0 === p ? null : p)));
  10461. }, !0);
  10462. });
  10463. }, this.h).call(this, za(d, b, c)).then(function (e) {
  10464. return e.getResponseMessage();
  10465. });
  10466. };
  10467. Z.prototype.unaryCall = function (a, b, c, d) {
  10468. return this.S(a, b, c, d);
  10469. };
  10470. Z.prototype.Y = function (a, b, c, d) {
  10471. var f = this,
  10472. g = a.substr(0, a.length - d.name.length);
  10473. return Oc(function (e) {
  10474. return Pc(f, e, g);
  10475. }, this.b).call(this, za(d, b, c));
  10476. };
  10477. function Pc(a, b, c) {
  10478. var d = b.getMethodDescriptor(),
  10479. f = c + d.getName();
  10480. c = a.c ? a.c : new qc();
  10481. c.M = a.f;
  10482. var g = new X({
  10483. Z: c
  10484. });
  10485. g.m = d.b;
  10486. var e = b.getMetadata();
  10487. for (h in e) {
  10488. c.headers.set(h, e[h]);
  10489. }
  10490. "text" == a.a ? (c.headers.set("Content-Type", "application/grpc-web-text"), c.headers.set("Accept", "application/grpc-web-text")) : c.headers.set("Content-Type", "application/grpc-web+proto");
  10491. c.headers.set("X-User-Agent", "grpc-web-javascript/0.1");
  10492. c.headers.set("X-Grpc-Web", "1");
  10493. if (c.headers.has("deadline")) {
  10494. var h = Number(c.headers.get("deadline"));
  10495. h = Math.ceil(h - new Date().getTime());
  10496. c.headers.delete("deadline");
  10497. Infinity === h && (h = 0);
  10498. 0 < h && (c.headers.set("grpc-timeout", h + "m"), c.h = Math.max(0, Math.max(1E3, Math.ceil(1.1 * h))));
  10499. }
  10500. if (a.g) {
  10501. e = c.headers;
  10502. h = {};
  10503. for (var k = ha(e.keys()), l = k.next(); !l.done; l = k.next()) {
  10504. l = l.value, h[l] = e.get(l);
  10505. }
  10506. c.headers.clear();
  10507. b: {
  10508. for (m in h) {
  10509. var m = !1;
  10510. break b;
  10511. }
  10512. m = !0;
  10513. }
  10514. if (!m) if (h = Nc(h), "string" === typeof f) {
  10515. if (m = encodeURIComponent("$httpHeaders"), h = null != h ? "=" + encodeURIComponent(String(h)) : "", m += h) h = f.indexOf("#"), 0 > h && (h = f.length), e = f.indexOf("?"), 0 > e || e > h ? (e = h, k = "") : k = f.substring(e + 1, h), f = [f.substr(0, e), k, f.substr(h)], h = f[1], f[1] = m ? h ? h + "&" + m : m : h, f = f[0] + (f[1] ? "?" + f[1] : "") + f[2];
  10516. } else f.a("$httpHeaders", h);
  10517. }
  10518. b = (0, d.a)(b.getRequestMessage());
  10519. d = b.length;
  10520. m = [0, 0, 0, 0];
  10521. h = new Uint8Array(5 + d);
  10522. for (e = 3; 0 <= e; e--) {
  10523. m[e] = d % 256, d >>>= 8;
  10524. }
  10525. h.set(new Uint8Array(m), 1);
  10526. h.set(b, 5);
  10527. b = h;
  10528. if ("text" == a.a) {
  10529. a = b;
  10530. var p;
  10531. void 0 === p && (p = 0);
  10532. Ic();
  10533. p = Ec[p];
  10534. b = Array(Math.floor(a.length / 3));
  10535. d = p[64] || "";
  10536. for (m = h = 0; h < a.length - 2; h += 3) {
  10537. l = a[h];
  10538. var q = a[h + 1];
  10539. k = a[h + 2];
  10540. e = p[l >> 2];
  10541. l = p[(l & 3) << 4 | q >> 4];
  10542. q = p[(q & 15) << 2 | k >> 6];
  10543. k = p[k & 63];
  10544. b[m++] = e + l + q + k;
  10545. }
  10546. e = 0;
  10547. k = d;
  10548. switch (a.length - h) {
  10549. case 2:
  10550. e = a[h + 1], k = p[(e & 15) << 2] || d;
  10551. case 1:
  10552. a = a[h], b[m] = p[a >> 2] + p[(a & 3) << 4 | e >> 4] + k + d;
  10553. }
  10554. b = b.join("");
  10555. } else "binary" == a.a && (c.m = "arraybuffer");
  10556. uc(c, f, b);
  10557. return g;
  10558. }
  10559. function Qc(a, b, c) {
  10560. var d = !1,
  10561. f = null,
  10562. g = !1;
  10563. a.on("data", function (e) {
  10564. d = !0;
  10565. f = e;
  10566. });
  10567. a.on("error", function (e) {
  10568. 0 == e.code || g || (g = !0, b(e, null));
  10569. });
  10570. a.on("status", function (e) {
  10571. 0 == e.code || g ? c && b(null, null, e) : (g = !0, b({
  10572. code: e.code,
  10573. message: e.details,
  10574. metadata: e.metadata
  10575. }, null));
  10576. });
  10577. if (c) a.on("metadata", function (e) {
  10578. b(null, null, null, e);
  10579. });
  10580. a.on("end", function () {
  10581. g || (d ? c ? b(null, f, null, null, !0) : b(null, f) : b({
  10582. code: 2,
  10583. message: "Incomplete response"
  10584. }));
  10585. c && b(null, null);
  10586. });
  10587. }
  10588. function Oc(a, b) {
  10589. var c = a;
  10590. b.forEach(function (d) {
  10591. var f = c;
  10592. c = function c(g) {
  10593. return d.intercept(g, f);
  10594. };
  10595. });
  10596. return c;
  10597. }
  10598. Z.prototype.serverStreaming = Z.prototype.Y;
  10599. Z.prototype.unaryCall = Z.prototype.unaryCall;
  10600. Z.prototype.thenableCall = Z.prototype.S;
  10601. Z.prototype.rpcCall = Z.prototype.X;
  10602. module.exports.CallOptions = xa;
  10603. module.exports.MethodDescriptor = ya;
  10604. module.exports.GrpcWebClientBase = Z;
  10605. module.exports.RpcError = E;
  10606. module.exports.StatusCode = {
  10607. OK: 0,
  10608. CANCELLED: 1,
  10609. UNKNOWN: 2,
  10610. INVALID_ARGUMENT: 3,
  10611. DEADLINE_EXCEEDED: 4,
  10612. NOT_FOUND: 5,
  10613. ALREADY_EXISTS: 6,
  10614. PERMISSION_DENIED: 7,
  10615. UNAUTHENTICATED: 16,
  10616. RESOURCE_EXHAUSTED: 8,
  10617. FAILED_PRECONDITION: 9,
  10618. ABORTED: 10,
  10619. OUT_OF_RANGE: 11,
  10620. UNIMPLEMENTED: 12,
  10621. INTERNAL: 13,
  10622. UNAVAILABLE: 14,
  10623. DATA_LOSS: 15
  10624. };
  10625. module.exports.MethodType = {
  10626. UNARY: "unary",
  10627. SERVER_STREAMING: "server_streaming",
  10628. BIDI_STREAMING: "bidi_streaming"
  10629. };
  10630. Kb = "undefined" !== typeof globalThis && globalThis || self;
  10631. /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/webpack/buildin/global.js */ 35), __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 27)["default"]))
  10632. /***/ }),
  10633. /* 47 */
  10634. /*!****************************************************************!*\
  10635. !*** D:/Work2/Orienteering/TrackOffical/utils/SqliteHelper.js ***!
  10636. \****************************************************************/
  10637. /*! no static exports found */
  10638. /***/ (function(module, exports, __webpack_require__) {
  10639. "use strict";
  10640. eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 48));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 50));\nvar _usqlite = __webpack_require__(/*! @/utils/usqlite.js */ 51);\nvar dbVersionModel, mapInfoModel;\nvar _default = {\n /**\r\n * 打开数据库\r\n * @param {string} dbName 数据库的名字\r\n * @param {int} version 数据库的版本\r\n * @return {object} 该函数会返回一个数据库实例\r\n */\n openDB: function openDB() {\n var _arguments = arguments;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var dbName, version, resDbVersion, localVersion;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n dbName = _arguments.length > 0 && _arguments[0] !== undefined ? _arguments[0] : 'Asistent';\n version = _arguments.length > 1 && _arguments[1] !== undefined ? _arguments[1] : 1.00;\n _context.prev = 2;\n __f__(\"log\", \"[openDB] name: \".concat(dbName, \" version: \").concat(version), \" at utils/SqliteHelper.js:13\");\n _context.next = 6;\n return _usqlite.usqlite.connect({\n name: dbName,\n // 数据库名称\n path: \"_doc/\".concat(dbName, \"_record.db\") // 路径\n });\n case 6:\n __f__(\"log\", \"\\u6570\\u636E\\u5E93\\u6253\\u5F00\\u6210\\u529F name: \".concat(dbName, \" version: \").concat(version), \" at utils/SqliteHelper.js:18\");\n if (!(dbName == 'Asistent')) {\n _context.next = 31;\n break;\n }\n _context.next = 10;\n return _usqlite.usqlite.model('dbVersion', {\n version: {\n type: Number,\n default: 0\n }\n });\n case 10:\n dbVersionModel = _context.sent;\n _context.next = 13;\n return _usqlite.usqlite.model('mapInfo', {\n shopId: {\n type: Number,\n primaryKey: true\n },\n mapName: {\n type: String\n },\n zipImageMd5: {\n type: String\n },\n zipImageUrl: {\n type: String\n },\n zipFileName: {\n type: String\n },\n zipFileKey: {\n type: String\n }\n // zipFilePath:{\n // \ttype: String,\n // },\n // zipFileData:{\n // \ttype: 'BLOB',\n // }\n });\n case 13:\n mapInfoModel = _context.sent;\n _context.next = 16;\n return dbVersionModel.find();\n case 16:\n resDbVersion = _context.sent;\n // console.log(\"dbVersion:\", resDbVersion);\n localVersion = resDbVersion.length > 0 ? resDbVersion[0].version : '';\n __f__(\"log\", \"localVersion:\", localVersion, \" at utils/SqliteHelper.js:60\");\n if (!(localVersion == '')) {\n _context.next = 24;\n break;\n }\n _context.next = 22;\n return dbVersionModel.insert({\n version: version\n });\n case 22:\n _context.next = 31;\n break;\n case 24:\n if (!(localVersion < version)) {\n _context.next = 31;\n break;\n }\n __f__(\"warn\", \"\\u672C\\u5730\\u6570\\u636E\\u5E93\\u7248\\u672C\\u4F4E\\uFF0C\\u9700\\u8981\\u5347\\u7EA7\\uFF01 current:\".concat(localVersion, \" New:\").concat(version), \" at utils/SqliteHelper.js:65\");\n if (!(localVersion == 1)) {\n _context.next = 29;\n break;\n }\n _context.next = 29;\n return mapInfoModel.alter([{\n name: 'zipFileName',\n option: String\n }, {\n name: 'zipFileKey',\n option: String\n }\n // { name: 'zipFilePath', option: String }\n // { name: 'zipFileData', option: 'BLOB' }\n ]);\n case 29:\n _context.next = 31;\n return dbVersionModel.update({\n version: version\n });\n case 31:\n return _context.abrupt(\"return\", _usqlite.usqlite);\n case 34:\n _context.prev = 34;\n _context.t0 = _context[\"catch\"](2);\n __f__(\"log\", '[openDB] err', _context.t0, \" at utils/SqliteHelper.js:79\");\n throw _context.t0;\n case 38:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[2, 34]]);\n }))();\n },\n insertMapData: function insertMapData(tableName, arrayBuffer) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n var res;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n if (!(tableName == 'mapInfo')) {\n _context2.next = 7;\n break;\n }\n _context2.next = 4;\n return mapInfoModel.insertMapData(arrayBuffer);\n case 4:\n res = _context2.sent;\n __f__(\"log\", '[insertMapData] 成功', \" at utils/SqliteHelper.js:88\");\n return _context2.abrupt(\"return\", res);\n case 7:\n _context2.next = 13;\n break;\n case 9:\n _context2.prev = 9;\n _context2.t0 = _context2[\"catch\"](0);\n __f__(\"error\", \"[insertMapData] 失败\", _context2.t0, \" at utils/SqliteHelper.js:92\");\n throw _context2.t0;\n case 13:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[0, 9]]);\n }))();\n },\n /**\r\n * 新增数据\r\n * @param {string} tableName 表名\r\n * @param {string} data 数据\r\n */\n insertData: function insertData(tableName, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {\n var res;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n if (!(tableName == 'mapInfo')) {\n _context3.next = 7;\n break;\n }\n _context3.next = 4;\n return mapInfoModel.insert(data);\n case 4:\n res = _context3.sent;\n __f__(\"log\", '[insertData] 数据写入成功', \" at utils/SqliteHelper.js:106\");\n return _context3.abrupt(\"return\", res);\n case 7:\n _context3.next = 13;\n break;\n case 9:\n _context3.prev = 9;\n _context3.t0 = _context3[\"catch\"](0);\n __f__(\"error\", \"[insertData] 数据写入失败\", _context3.t0, \" at utils/SqliteHelper.js:110\");\n throw _context3.t0;\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, null, [[0, 9]]);\n }))();\n },\n /**\r\n * 更新数据\r\n * @param {object} db 数据库实例\r\n * @param {string} tableName 表名\r\n * @param {object} data 数据\r\n */\n updateData: function updateData(tableName, data) {\n var _arguments2 = arguments;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {\n var options, res;\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n options = _arguments2.length > 2 && _arguments2[2] !== undefined ? _arguments2[2] : '';\n _context4.prev = 1;\n if (!(tableName == 'mapInfo')) {\n _context4.next = 8;\n break;\n }\n _context4.next = 5;\n return mapInfoModel.update(data, options);\n case 5:\n res = _context4.sent;\n __f__(\"log\", '[updateData] 数据更新成功', \" at utils/SqliteHelper.js:125\");\n return _context4.abrupt(\"return\", res);\n case 8:\n _context4.next = 14;\n break;\n case 10:\n _context4.prev = 10;\n _context4.t0 = _context4[\"catch\"](1);\n __f__(\"error\", \"[updateData] 数据更新失败\", _context4.t0, \" at utils/SqliteHelper.js:129\");\n throw _context4.t0;\n case 14:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, null, [[1, 10]]);\n }))();\n },\n /**\r\n * 通过主键删除数据\r\n * @param {object} db 数据库实例\r\n * @param {string} tableName 表名\r\n * @param {object} key 主键值\r\n */\n deleteDataByKey: function deleteDataByKey(tableName, key) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {\n var options, res;\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _context5.prev = 0;\n if (!(tableName == 'mapInfo')) {\n _context5.next = 8;\n break;\n }\n options = 'shopId = ' + key;\n _context5.next = 5;\n return mapInfoModel.delete(options);\n case 5:\n res = _context5.sent;\n __f__(\"log\", '[deleteDataByKey] 数据删除成功', \" at utils/SqliteHelper.js:145\");\n return _context5.abrupt(\"return\", res);\n case 8:\n _context5.next = 14;\n break;\n case 10:\n _context5.prev = 10;\n _context5.t0 = _context5[\"catch\"](0);\n __f__(\"error\", \"[deleteDataByKey] 数据删除失败\", _context5.t0, \" at utils/SqliteHelper.js:149\");\n throw _context5.t0;\n case 14:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, null, [[0, 10]]);\n }))();\n },\n /**\r\n * 通过主键读取数据\r\n * @param {object} db 数据库实例\r\n * @param {string} tableName 表名\r\n * @param {string} key 主键值\r\n */\n getDataByKey: function getDataByKey(tableName, key) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {\n var options, res;\n return _regenerator.default.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n if (!(tableName == 'mapInfo')) {\n _context6.next = 8;\n break;\n }\n options = 'shopId = ' + key;\n _context6.next = 5;\n return mapInfoModel.find(options);\n case 5:\n res = _context6.sent;\n __f__(\"log\", '[getDataByKey] 数据读取成功', res, \" at utils/SqliteHelper.js:165\");\n return _context6.abrupt(\"return\", res[0]);\n case 8:\n _context6.next = 14;\n break;\n case 10:\n _context6.prev = 10;\n _context6.t0 = _context6[\"catch\"](0);\n __f__(\"error\", \"[getDataByKey] 数据读取失败\", _context6.t0, \" at utils/SqliteHelper.js:169\");\n throw _context6.t0;\n case 14:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6, null, [[0, 10]]);\n }))();\n },\n /**\r\n * 关闭数据库\r\n * @param {object} db 数据库实例\r\n */\n closeDB: function closeDB() {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {\n return _regenerator.default.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n _context7.next = 3;\n return _usqlite.usqlite.close();\n case 3:\n __f__(\"log\", \"关闭数据库成功\", \" at utils/SqliteHelper.js:181\");\n _context7.next = 10;\n break;\n case 6:\n _context7.prev = 6;\n _context7.t0 = _context7[\"catch\"](0);\n __f__(\"error\", \"[closeDB] 关闭数据库失败\", _context7.t0, \" at utils/SqliteHelper.js:183\");\n throw _context7.t0;\n case 10:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7, null, [[0, 6]]);\n }))();\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 27)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdXRpbHMvU3FsaXRlSGVscGVyLmpzIl0sIm5hbWVzIjpbImRiVmVyc2lvbk1vZGVsIiwibWFwSW5mb01vZGVsIiwib3BlbkRCIiwiZGJOYW1lIiwidmVyc2lvbiIsInVzcWxpdGUiLCJjb25uZWN0IiwibmFtZSIsInBhdGgiLCJtb2RlbCIsInR5cGUiLCJOdW1iZXIiLCJkZWZhdWx0Iiwic2hvcElkIiwicHJpbWFyeUtleSIsIm1hcE5hbWUiLCJTdHJpbmciLCJ6aXBJbWFnZU1kNSIsInppcEltYWdlVXJsIiwiemlwRmlsZU5hbWUiLCJ6aXBGaWxlS2V5IiwiZmluZCIsInJlc0RiVmVyc2lvbiIsImxvY2FsVmVyc2lvbiIsImxlbmd0aCIsImluc2VydCIsImFsdGVyIiwib3B0aW9uIiwidXBkYXRlIiwiaW5zZXJ0TWFwRGF0YSIsInRhYmxlTmFtZSIsImFycmF5QnVmZmVyIiwicmVzIiwiaW5zZXJ0RGF0YSIsImRhdGEiLCJ1cGRhdGVEYXRhIiwib3B0aW9ucyIsImRlbGV0ZURhdGFCeUtleSIsImtleSIsImRlbGV0ZSIsImdldERhdGFCeUtleSIsImNsb3NlREIiLCJjbG9zZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFFQSxJQUFJQSxjQUFjLEVBQUVDLFlBQVk7QUFBQSxlQUNqQjtFQUNkO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNPQyxNQUFNLG9CQUFzQztJQUFBO0lBQUE7TUFBQTtNQUFBO1FBQUE7VUFBQTtZQUFBO2NBQXJDQyxNQUFNLDBFQUFHLFVBQVU7Y0FBRUMsT0FBTywwRUFBRyxJQUFJO2NBQUE7Y0FFOUMsc0NBQThCRCxNQUFNLHVCQUFhQyxPQUFPO2NBQUk7Y0FBQSxPQUN0REMsZ0JBQU8sQ0FBQ0MsT0FBTyxDQUFDO2dCQUNyQkMsSUFBSSxFQUFFSixNQUFNO2dCQUFFO2dCQUNkSyxJQUFJLGlCQUFTTCxNQUFNLGVBQVksQ0FBRTtjQUNsQyxDQUFDLENBQUM7WUFBQTtjQUNGLHdFQUE2QkEsTUFB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Q0osR0FBRztjQUNQLGFBQVksMEJBQTBCO2NBQUUsa0NBQ2pDQSxHQUFHO1lBQUE7Y0FBQTtjQUFBO1lBQUE7Y0FBQTtjQUFBO2NBR1gsZUFBYywwQkFBMEI7Y0FBSztZQUFBO1lBQUE7Y0FBQTtVQUFBO1FBQUE7TUFBQTtJQUFBO0VBRy9DLENBQUM7RUFFRDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDT1EsWUFBWSx3QkFBQ1YsU0FBUyxFQUFFUSxHQUFHLEVBQUU7SUFBQTtNQUFBO01BQUE7UUFBQTtVQUFBO1lBQUE7Y0FBQTtjQUFBLE1BRTdCUixTQUFTLElBQUksU0FBUztnQkFBQTtnQkFBQTtjQUFBO2NBQ3JCTSxPQUFPLEdBQUcsV0FBVyxHQUFHRSxHQUFHO2NBQUE7Y0FBQSxPQUNmckMsWUFBWSxDQUFDb0IsSUFBSSxDQUFDZSxPQUFPLENBQUM7WUFBQTtjQUF0Q0osR0FBRztjQUNQLGFBQVksdUJBQXVCLEVBQUVBLEdBQUc7Y0FBRSxrQ0FDbkNBLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFBQTtjQUFBO2NBQUE7WUFBQTtjQUFBO2NBQUE7Y0FHZCxlQUFjLHVCQUF1QjtjQUFLO1lBQUE7WUFBQTtjQUFBO1VBQUE7UUFBQTtNQUFBO0lBQUE7RUFHNUMsQ0FBQztFQUVEO0FBQ0Q7QUFDQTtBQUNBO0VBQ09TLE9BQU8scUJBQUc7SUFBQTtNQUFBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Y0FBQTtjQUFBLE9BRVJwQyxnQkFBTyxDQUFDcUMsS0FBSyxFQUFFO1lBQUE7Y0FDckIsYUFBWSxTQUFTO2NBQUU7Y0FBQTtZQUFBO2NBQUE7Y0FBQTtjQUV2QixlQUFjLG1CQUFtQjtjQUFLO1lBQUE7WUFBQTtjQUFBO1VBQUE7UUFBQTtNQUFBO0lBQUE7RUFHeEM7QUFDRCxDQUFDO0FBQUEsMkIiLCJmaWxlIjoiNDcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c3FsaXRlIH0gZnJvbSAnQC91dGlscy91c3FsaXRlLmpzJ1xyXG5cclxudmFyIGRiVmVyc2lvbk1vZGVsLCBtYXBJbmZvTW9kZWxcclxuZXhwb3J0IGRlZmF1bHQge1xyXG5cdC8qKlxyXG5cdCAqIOaJk+W8gOaVsOaNruW6k1xyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBkYk5hbWUg5pWw5o2u5bqT55qE5ZCN5a2XXHJcblx0ICogQHBhcmFtIHtpbnR9IHZlcnNpb24g5pWw5o2u5bqT55qE54mI5pysXHJcblx0ICogQHJldHVybiB7b2JqZWN0fSDor6Xlh73mlbDkvJrov5Tlm57kuIDkuKrmlbDmja7lupPlrp7kvotcclxuXHQgKi9cclxuXHRhc3luYyBvcGVuREIoZGJOYW1lID0gJ0FzaXN0ZW50JywgdmVyc2lvbiA9IDEuMDApIHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdGNvbnNvbGUubG9nKGBbb3BlbkRCXSBuYW1lOiAke2RiTmFtZX0gdmVyc2lvbjogJHt2ZXJzaW9ufWApO1xyXG5cdFx0XHRhd2FpdCB1c3FsaXRlLmNvbm5lY3Qoe1xyXG5cdFx0XHRcdG5hbWU6IGRiTmFtZSwgLy8g5pWw5o2u5bqT5ZCN56ewXHJcblx0XHRcdFx0cGF0aDpgX2RvYy8ke2RiTmFtZX1fcmVjb3JkLmRiYCwgLy8g6Lev5b6EXHJcblx0XHRcdH0pO1xyXG5cdFx0XHRjb25zb2xlLmxvZyhg5pWw5o2u5bqT5omT5byA5oiQ5YqfIG5hbWU6ICR7ZGJOYW1lfSB2ZXJzaW9uOiAke3ZlcnNpb259YCk7XHJcblx0XHRcdFxyXG5cdFx0XHRpZiAoZGJOYW1lID09ICdBc2lzdGVudCcpIHtcclxuXHRcdFx0XHRkYlZlcnNpb25Nb2RlbCA9IGF3YWl0IHVzcWxpdGUubW9kZWwoJ2RiVmVyc2lvbicse1xyXG5cdFx0XHRcdFx0dmVyc2lvbjp7XHJcblx0XHRcdFx0XHRcdHR5cGU6IE51bWJlcixcclxuXHRcdFx0XHRcdFx0ZGVmYXVsdDogMFxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdG1hcEluZm9Nb2RlbCA9IGF3YWl0IHVzcWxpdGUubW9kZWwoJ21hcEluZm8nLHtcclxuXHRcdFx0XHRcdHNob3BJZDp7XHJcblx0XHRcdFx0XHRcdHR5cGU6IE51bWJlcixcclxuXHRcdFx0XHRcdFx0cHJpbWFyeUtleTogdHJ1ZVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdG1hcE5hbWU6e1xyXG5cdFx0XHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0emlwSW1hZ2VNZDU6e1xyXG5cdFx0XHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0emlwSW1hZ2VVcmw6e1xyXG5cdFx0XHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0emlwRmlsZU5hbWU6e1xyXG5cdFx0XHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0emlwRmlsZUtleTp7XHJcblx0XHRcdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHQvLyB6aXBGaWxlUGF0aDp7XHJcblx0XHRcdFx0XHQvLyBcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRcdC8vIH0sXHJcblx0XHRcdFx0XHQvLyB6aXBGaWxlRGF0YTp7XHJcblx0XHRcdFx0XHQvLyBcdHR5cGU6ICdCTE9CJyxcclxuXHRcdFx0XHRcdC8vIH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHJcblx0XHRcdFx0bGV0IHJlc0RiVmVyc2lvbiA9IGF3YWl0IGRiVmVyc2lvbk1vZGVsLmZpbmQoKVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKFwiZGJWZXJzaW9uOlwiLCByZXNEYlZlcnNpb24pO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdGxldCBsb2NhbFZlcnNpb24gPSAocmVzRGJWZXJzaW9uLmxlbmd0aCA+IDApID8gcmVzRGJWZXJzaW9uWzBdLnZlcnNpb24gOiAnJ1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKFwibG9jYWxWZXJzaW9uOlwiLCBsb2NhbFZlcnNpb24pO1xyXG5cdFx0XHRcdGlmIChsb2NhbFZlcnNpb24gPT0gJycpIHtcclxuXHRcdFx0XHRcdGF3YWl0IGRiVmVyc2lvbk1vZGVsLmluc2VydCh7IHZlcnNpb246IHZlcnNpb24gfSlcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0ZWxzZSBpZiAobG9jYWxWZXJzaW9uIDwgdmVyc2lvbikge1xyXG5cdFx0XHRcdFx0Y29uc29sZS53YXJuKGDmnKzlnLDmlbDmja7lupPniYjmnKzkvY7vvIzpnIDopoHljYfnuqfvvIEgY3VycmVudDoke2xvY2FsVmVyc2lvbn0gTmV3OiR7dmVyc2lvbn1gKTtcclxuXHRcdFx0XHRcdGlmIChsb2NhbFZlcnNpb24gPT0gMSkge1xyXG5cdFx0XHRcdFx0XHRhd2FpdCBtYXBJbmZvTW9kZWwuYWx0ZXIoW1xyXG5cdFx0XHRcdFx0XHRcdHsgbmFtZTogJ3ppcEZpbGVOYW1lJywgb3B0aW9uOiBTdHJpbmcgfSxcclxuXHRcdFx0XHRcdFx0XHR7IG5hbWU6ICd6aXBGaWxlS2V5Jywgb3B0aW9uOiBTdHJpbmcgfVxyXG5cdFx0XHRcdFx0XHRcdC8vIHsgbmFtZTogJ3ppcEZpbGVQYXRoJywgb3B0aW9uOiBTdHJpbmcgfVxyXG5cdFx0XHRcdFx0XHRcdC8vIHsgbmFtZTogJ3ppcEZpbGVEYXRhJywgb3B0aW9uOiAnQkxPQicgfVxyXG5cdFx0XHRcdFx0XHRdKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0YXdhaXQgZGJWZXJzaW9uTW9kZWwudXBkYXRlKHsgdmVyc2lvbjogdmVyc2lvbiB9KVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gdXNxbGl0ZTtcclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0Y29uc29sZS5sb2coJ1tvcGVuREJdIGVycicsIGUpXHJcblx0XHRcdHRocm93IGVcclxuXHRcdH1cclxuXHR9LFxyXG5cdFxyXG5cdGFzeW5jIGluc2VydE1hcERhdGEodGFibGVOYW1lLCBhcnJheUJ1ZmZlcikge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0aWYgKHRhYmxlTmFtZSA9PSAnbWFwSW5mbycpIHtcclxuXHRcdFx0XHRsZXQgcmVzID0gYXdhaXQgbWFwSW5mb01vZGVsLmluc2VydE1hcERhdGEoYXJyYXlCdWZmZXIpIFxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCdbaW5zZXJ0TWFwRGF0YV0g5oiQ5YqfJyk7XHJcblx0XHRcdFx0cmV0dXJuIHJlc1xyXG5cdFx0XHR9XHJcblx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdGNvbnNvbGUuZXJyb3IoXCJbaW5zZXJ0TWFwRGF0YV0g5aSx6LSlXCIsIGUpO1xyXG5cdFx0XHR0aHJvdyBlXHJcblx0XHR9XHJcblx0fSxcclxuXHRcclxuXHQvKipcclxuXHQgKiDmlrDlop7mlbDmja5cclxuXHQgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIOihqOWQjVxyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBkYXRhIOaVsOaNrlxyXG5cdCAqL1xyXG5cdGFzeW5jIGluc2VydERhdGEodGFibGVOYW1lLCBkYXRhKSB7XHJcblx0XHR0cnkge1xyXG5cdFx0XHRpZiAodGFibGVOYW1lID09ICdtYXBJbmZvJykge1xyXG5cdFx0XHRcdGxldCByZXMgPSBhd2FpdCBtYXBJbmZvTW9kZWwuaW5zZXJ0KGRhdGEpXHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ1tpbnNlcnREYXRhXSDmlbDmja7lhpnlhaXmiJDlip8nKTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzXHJcblx0XHRcdH1cclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0Y29uc29sZS5lcnJvcihcIltpbnNlcnREYXRhXSDmlbDmja7lhpnlhaXlpLHotKVcIiwgZSk7XHJcblx0XHRcdHRocm93IGVcclxuXHRcdH1cclxuXHR9LFxyXG5cdFxyXG5cdC8qKlxyXG5cdCAqIOabtOaWsOaVsOaNrlxyXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBkYiDmlbDmja7lupPlrp7kvotcclxuXHQgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIOihqOWQjVxyXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBkYXRhIOaVsOaNrlxyXG5cdCAqL1xyXG5cdGFzeW5jIHVwZGF0ZURhdGEodGFibGVOYW1lLCBkYXRhLCBvcHRpb25zPScnKSB7XHJcblx0XHR0cnkge1xyXG5cdFx0XHRpZiAodGFibGVOYW1lID09ICdtYXBJbmZvJykge1xyXG5cdFx0XHRcdGxldCByZXMgPSBhd2FpdCBtYXBJbmZvTW9kZWwudXBkYXRlKGRhdGEsIG9wdGlvbnMpXHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ1t1cGRhdGVEYXRhXSDmlbDmja7mm7TmlrDmiJDlip8nKTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzXHJcblx0XHRcdH1cclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0Y29uc29sZS5lcnJvcihcIlt1cGRhdGVEYXRhXSDmlbDmja7mm7TmlrDlpLHotKVcIiwgZSk7XHJcblx0XHRcdHRocm93IGVcclxuXHRcdH1cclxuXHR9LFxyXG5cdFxyXG5cdC8qKlxyXG5cdCAqIOmAmui/h+S4u+mUruWIoOmZpOaVsOaNrlxyXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBkYiDmlbDmja7lupPlrp7kvotcclxuXHQgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIOihqOWQjVxyXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBrZXkg5Li76ZSu5YC8XHJcblx0ICovXHJcblx0YXN5bmMgZGVsZXRlRGF0YUJ5S2V5KHRhYmxlTmFtZSwga2V5KSB7XHJcblx0XHR0cnkge1xyXG5cdFx0XHRpZiAodGFibGVOYW1lID09ICdtYXBJbmZvJykge1xyXG5cdFx0XHRcdGxldCBvcHRpb25zID0gJ3Nob3BJZCA9ICcgKyBrZXlcclxuXHRcdFx0XHRsZXQgcmVzID0gYXdhaXQgbWFwSW5mb01vZGVsLmRlbGV0ZShvcHRpb25zKVxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCdbZGVsZXRlRGF0YUJ5S2V5XSDmlbDmja7liKDpmaTmiJDlip8nKTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzXHJcblx0XHRcdH1cclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0Y29uc29sZS5lcnJvcihcIltkZWxldGVEYXRhQnlLZXldIOaVsOaNruWIoOmZpOWksei0pVwiLCBlKTtcclxuXHRcdFx0dGhyb3cgZVxyXG5cdFx0fVx0XHRcdFxyXG5cdH0sXHJcblx0XHJcblx0LyoqXHJcblx0ICog6YCa6L+H5Li76ZSu6K+75Y+W5pWw5o2uXHJcblx0ICogQHBhcmFtIHtvYmplY3R9IGRiIOaVsOaNruW6k+WunuS+i1xyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUg6KGo5ZCNXHJcblx0ICogQHBhcmFtIHtzdHJpbmd9IGtleSDkuLvplK7lgLxcclxuXHQgKi9cclxuXHRhc3luYyBnZXREYXRhQnlLZXkodGFibGVOYW1lLCBrZXkpIHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdGlmICh0YWJsZU5hbWUgPT0gJ21hcEluZm8nKSB7XHJcblx0XHRcdFx0bGV0IG9wdGlvbnMgPSAnc2hvcElkID0gJyArIGtleVxyXG5cdFx0XHRcdGxldCByZXMgPSBhd2FpdCBtYXBJbmZvTW9kZWwuZmluZChvcHRpb25zKVxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCdbZ2V0RGF0YUJ5S2V5XSDmlbDmja7or7vlj5bmiJDlip8nLCByZXMpO1xyXG5cdFx0XHRcdHJldHVybiByZXNbMF1cclxuXHRcdFx0fVxyXG5cdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHRjb25zb2xlLmVycm9yKFwiW2dldERhdGFCeUtleV0g5pWw5o2u6K+75Y+W5aSx6LSlXCIsIGUpO1xyXG5cdFx0XHR0aHJvdyBlXHJcblx0XHR9XHJcblx0fSxcclxuXHRcclxuXHQvKipcclxuXHQgKiDlhbPpl63mlbDmja7lupNcclxuXHQgKiBAcGFyYW0ge29iamVjdH0gZGIg5pWw5o2u5bqT5a6e5L6LXHJcblx0ICovXHJcblx0YXN5bmMgY2xvc2VEQigpIHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdGF3YWl0IHVzcWxpdGUuY2xvc2UoKTtcclxuXHRcdFx0Y29uc29sZS5sb2coXCLlhbPpl63mlbDmja7lupPmiJDlip9cIik7XHJcblx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdGNvbnNvbGUuZXJyb3IoXCJbY2xvc2VEQl0g5YWz6Zet5pWw5o2u5bqT5aSx6LSlXCIsIGUpO1xyXG5cdFx0XHR0aHJvdyBlXHJcblx0XHR9XHRcdFx0XHJcblx0fVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///47\n");
  10641. /***/ }),
  10642. /* 48 */
  10643. /*!**********************************************************!*\
  10644. !*** ./node_modules/@babel/runtime/regenerator/index.js ***!
  10645. \**********************************************************/
  10646. /*! no static exports found */
  10647. /***/ (function(module, exports, __webpack_require__) {
  10648. var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4);
  10649. // TODO(Babel 8): Remove this file.
  10650. var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ 49)();
  10651. module.exports = runtime;
  10652. // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
  10653. try {
  10654. regeneratorRuntime = runtime;
  10655. } catch (accidentalStrictMode) {
  10656. if ((typeof globalThis === "undefined" ? "undefined" : _typeof(globalThis)) === "object") {
  10657. globalThis.regeneratorRuntime = runtime;
  10658. } else {
  10659. Function("r", "regeneratorRuntime = r")(runtime);
  10660. }
  10661. }
  10662. /***/ }),
  10663. /* 49 */
  10664. /*!*******************************************************************!*\
  10665. !*** ./node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***!
  10666. \*******************************************************************/
  10667. /*! no static exports found */
  10668. /***/ (function(module, exports, __webpack_require__) {
  10669. var _typeof = __webpack_require__(/*! ./typeof.js */ 4)["default"];
  10670. function _regeneratorRuntime() {
  10671. "use strict";
  10672. /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
  10673. module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
  10674. return exports;
  10675. }, module.exports.__esModule = true, module.exports["default"] = module.exports;
  10676. var exports = {},
  10677. Op = Object.prototype,
  10678. hasOwn = Op.hasOwnProperty,
  10679. defineProperty = Object.defineProperty || function (obj, key, desc) {
  10680. obj[key] = desc.value;
  10681. },
  10682. $Symbol = "function" == typeof Symbol ? Symbol : {},
  10683. iteratorSymbol = $Symbol.iterator || "@@iterator",
  10684. asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator",
  10685. toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
  10686. function define(obj, key, value) {
  10687. return Object.defineProperty(obj, key, {
  10688. value: value,
  10689. enumerable: !0,
  10690. configurable: !0,
  10691. writable: !0
  10692. }), obj[key];
  10693. }
  10694. try {
  10695. define({}, "");
  10696. } catch (err) {
  10697. define = function define(obj, key, value) {
  10698. return obj[key] = value;
  10699. };
  10700. }
  10701. function wrap(innerFn, outerFn, self, tryLocsList) {
  10702. var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,
  10703. generator = Object.create(protoGenerator.prototype),
  10704. context = new Context(tryLocsList || []);
  10705. return defineProperty(generator, "_invoke", {
  10706. value: makeInvokeMethod(innerFn, self, context)
  10707. }), generator;
  10708. }
  10709. function tryCatch(fn, obj, arg) {
  10710. try {
  10711. return {
  10712. type: "normal",
  10713. arg: fn.call(obj, arg)
  10714. };
  10715. } catch (err) {
  10716. return {
  10717. type: "throw",
  10718. arg: err
  10719. };
  10720. }
  10721. }
  10722. exports.wrap = wrap;
  10723. var ContinueSentinel = {};
  10724. function Generator() {}
  10725. function GeneratorFunction() {}
  10726. function GeneratorFunctionPrototype() {}
  10727. var IteratorPrototype = {};
  10728. define(IteratorPrototype, iteratorSymbol, function () {
  10729. return this;
  10730. });
  10731. var getProto = Object.getPrototypeOf,
  10732. NativeIteratorPrototype = getProto && getProto(getProto(values([])));
  10733. NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);
  10734. var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);
  10735. function defineIteratorMethods(prototype) {
  10736. ["next", "throw", "return"].forEach(function (method) {
  10737. define(prototype, method, function (arg) {
  10738. return this._invoke(method, arg);
  10739. });
  10740. });
  10741. }
  10742. function AsyncIterator(generator, PromiseImpl) {
  10743. function invoke(method, arg, resolve, reject) {
  10744. var record = tryCatch(generator[method], generator, arg);
  10745. if ("throw" !== record.type) {
  10746. var result = record.arg,
  10747. value = result.value;
  10748. return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) {
  10749. invoke("next", value, resolve, reject);
  10750. }, function (err) {
  10751. invoke("throw", err, resolve, reject);
  10752. }) : PromiseImpl.resolve(value).then(function (unwrapped) {
  10753. result.value = unwrapped, resolve(result);
  10754. }, function (error) {
  10755. return invoke("throw", error, resolve, reject);
  10756. });
  10757. }
  10758. reject(record.arg);
  10759. }
  10760. var previousPromise;
  10761. defineProperty(this, "_invoke", {
  10762. value: function value(method, arg) {
  10763. function callInvokeWithMethodAndArg() {
  10764. return new PromiseImpl(function (resolve, reject) {
  10765. invoke(method, arg, resolve, reject);
  10766. });
  10767. }
  10768. return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
  10769. }
  10770. });
  10771. }
  10772. function makeInvokeMethod(innerFn, self, context) {
  10773. var state = "suspendedStart";
  10774. return function (method, arg) {
  10775. if ("executing" === state) throw new Error("Generator is already running");
  10776. if ("completed" === state) {
  10777. if ("throw" === method) throw arg;
  10778. return doneResult();
  10779. }
  10780. for (context.method = method, context.arg = arg;;) {
  10781. var delegate = context.delegate;
  10782. if (delegate) {
  10783. var delegateResult = maybeInvokeDelegate(delegate, context);
  10784. if (delegateResult) {
  10785. if (delegateResult === ContinueSentinel) continue;
  10786. return delegateResult;
  10787. }
  10788. }
  10789. if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) {
  10790. if ("suspendedStart" === state) throw state = "completed", context.arg;
  10791. context.dispatchException(context.arg);
  10792. } else "return" === context.method && context.abrupt("return", context.arg);
  10793. state = "executing";
  10794. var record = tryCatch(innerFn, self, context);
  10795. if ("normal" === record.type) {
  10796. if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue;
  10797. return {
  10798. value: record.arg,
  10799. done: context.done
  10800. };
  10801. }
  10802. "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg);
  10803. }
  10804. };
  10805. }
  10806. function maybeInvokeDelegate(delegate, context) {
  10807. var methodName = context.method,
  10808. method = delegate.iterator[methodName];
  10809. if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel;
  10810. var record = tryCatch(method, delegate.iterator, context.arg);
  10811. if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel;
  10812. var info = record.arg;
  10813. return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel);
  10814. }
  10815. function pushTryEntry(locs) {
  10816. var entry = {
  10817. tryLoc: locs[0]
  10818. };
  10819. 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);
  10820. }
  10821. function resetTryEntry(entry) {
  10822. var record = entry.completion || {};
  10823. record.type = "normal", delete record.arg, entry.completion = record;
  10824. }
  10825. function Context(tryLocsList) {
  10826. this.tryEntries = [{
  10827. tryLoc: "root"
  10828. }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);
  10829. }
  10830. function values(iterable) {
  10831. if (iterable) {
  10832. var iteratorMethod = iterable[iteratorSymbol];
  10833. if (iteratorMethod) return iteratorMethod.call(iterable);
  10834. if ("function" == typeof iterable.next) return iterable;
  10835. if (!isNaN(iterable.length)) {
  10836. var i = -1,
  10837. next = function next() {
  10838. for (; ++i < iterable.length;) {
  10839. if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;
  10840. }
  10841. return next.value = undefined, next.done = !0, next;
  10842. };
  10843. return next.next = next;
  10844. }
  10845. }
  10846. return {
  10847. next: doneResult
  10848. };
  10849. }
  10850. function doneResult() {
  10851. return {
  10852. value: undefined,
  10853. done: !0
  10854. };
  10855. }
  10856. return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", {
  10857. value: GeneratorFunctionPrototype,
  10858. configurable: !0
  10859. }), defineProperty(GeneratorFunctionPrototype, "constructor", {
  10860. value: GeneratorFunction,
  10861. configurable: !0
  10862. }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) {
  10863. var ctor = "function" == typeof genFun && genFun.constructor;
  10864. return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name));
  10865. }, exports.mark = function (genFun) {
  10866. return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun;
  10867. }, exports.awrap = function (arg) {
  10868. return {
  10869. __await: arg
  10870. };
  10871. }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {
  10872. return this;
  10873. }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {
  10874. void 0 === PromiseImpl && (PromiseImpl = Promise);
  10875. var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);
  10876. return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {
  10877. return result.done ? result.value : iter.next();
  10878. });
  10879. }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () {
  10880. return this;
  10881. }), define(Gp, "toString", function () {
  10882. return "[object Generator]";
  10883. }), exports.keys = function (val) {
  10884. var object = Object(val),
  10885. keys = [];
  10886. for (var key in object) {
  10887. keys.push(key);
  10888. }
  10889. return keys.reverse(), function next() {
  10890. for (; keys.length;) {
  10891. var key = keys.pop();
  10892. if (key in object) return next.value = key, next.done = !1, next;
  10893. }
  10894. return next.done = !0, next;
  10895. };
  10896. }, exports.values = values, Context.prototype = {
  10897. constructor: Context,
  10898. reset: function reset(skipTempReset) {
  10899. if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {
  10900. "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);
  10901. }
  10902. },
  10903. stop: function stop() {
  10904. this.done = !0;
  10905. var rootRecord = this.tryEntries[0].completion;
  10906. if ("throw" === rootRecord.type) throw rootRecord.arg;
  10907. return this.rval;
  10908. },
  10909. dispatchException: function dispatchException(exception) {
  10910. if (this.done) throw exception;
  10911. var context = this;
  10912. function handle(loc, caught) {
  10913. return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught;
  10914. }
  10915. for (var i = this.tryEntries.length - 1; i >= 0; --i) {
  10916. var entry = this.tryEntries[i],
  10917. record = entry.completion;
  10918. if ("root" === entry.tryLoc) return handle("end");
  10919. if (entry.tryLoc <= this.prev) {
  10920. var hasCatch = hasOwn.call(entry, "catchLoc"),
  10921. hasFinally = hasOwn.call(entry, "finallyLoc");
  10922. if (hasCatch && hasFinally) {
  10923. if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);
  10924. if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);
  10925. } else if (hasCatch) {
  10926. if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);
  10927. } else {
  10928. if (!hasFinally) throw new Error("try statement without catch or finally");
  10929. if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);
  10930. }
  10931. }
  10932. }
  10933. },
  10934. abrupt: function abrupt(type, arg) {
  10935. for (var i = this.tryEntries.length - 1; i >= 0; --i) {
  10936. var entry = this.tryEntries[i];
  10937. if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) {
  10938. var finallyEntry = entry;
  10939. break;
  10940. }
  10941. }
  10942. finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);
  10943. var record = finallyEntry ? finallyEntry.completion : {};
  10944. return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);
  10945. },
  10946. complete: function complete(record, afterLoc) {
  10947. if ("throw" === record.type) throw record.arg;
  10948. return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;
  10949. },
  10950. finish: function finish(finallyLoc) {
  10951. for (var i = this.tryEntries.length - 1; i >= 0; --i) {
  10952. var entry = this.tryEntries[i];
  10953. if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;
  10954. }
  10955. },
  10956. "catch": function _catch(tryLoc) {
  10957. for (var i = this.tryEntries.length - 1; i >= 0; --i) {
  10958. var entry = this.tryEntries[i];
  10959. if (entry.tryLoc === tryLoc) {
  10960. var record = entry.completion;
  10961. if ("throw" === record.type) {
  10962. var thrown = record.arg;
  10963. resetTryEntry(entry);
  10964. }
  10965. return thrown;
  10966. }
  10967. }
  10968. throw new Error("illegal catch attempt");
  10969. },
  10970. delegateYield: function delegateYield(iterable, resultName, nextLoc) {
  10971. return this.delegate = {
  10972. iterator: values(iterable),
  10973. resultName: resultName,
  10974. nextLoc: nextLoc
  10975. }, "next" === this.method && (this.arg = undefined), ContinueSentinel;
  10976. }
  10977. }, exports;
  10978. }
  10979. module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
  10980. /***/ }),
  10981. /* 50 */
  10982. /*!*****************************************************************!*\
  10983. !*** ./node_modules/@babel/runtime/helpers/asyncToGenerator.js ***!
  10984. \*****************************************************************/
  10985. /*! no static exports found */
  10986. /***/ (function(module, exports) {
  10987. function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
  10988. try {
  10989. var info = gen[key](arg);
  10990. var value = info.value;
  10991. } catch (error) {
  10992. reject(error);
  10993. return;
  10994. }
  10995. if (info.done) {
  10996. resolve(value);
  10997. } else {
  10998. Promise.resolve(value).then(_next, _throw);
  10999. }
  11000. }
  11001. function _asyncToGenerator(fn) {
  11002. return function () {
  11003. var self = this,
  11004. args = arguments;
  11005. return new Promise(function (resolve, reject) {
  11006. var gen = fn.apply(self, args);
  11007. function _next(value) {
  11008. asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
  11009. }
  11010. function _throw(err) {
  11011. asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
  11012. }
  11013. _next(undefined);
  11014. });
  11015. };
  11016. }
  11017. module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
  11018. /***/ }),
  11019. /* 51 */
  11020. /*!***********************************************************!*\
  11021. !*** D:/Work2/Orienteering/TrackOffical/utils/usqlite.js ***!
  11022. \***********************************************************/
  11023. /*! no static exports found */
  11024. /***/ (function(module, exports, __webpack_require__) {
  11025. "use strict";
  11026. eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.usqlite = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 48));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 50));\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ 52));\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ 53));\n/**\r\n * 对 SQLite 的 ORM 的封装处理\r\n * @time 2023-04-06\r\n * @version 2.0.0\r\n * @by wzx\r\n */\n\nvar config = {\n deBug: true,\n isConnect: false\n};\n// class Response {\n// \tconstructor(code, msg, data) {\n// \t\tthis.code = code;\n// \t\tthis.msg = msg;\n// \t\tthis.data = data;\n// \t}\n// \ttoString() {\n// \t\treturn JSON.stringify(this);\n// \t}\n// }\nvar Utils = /*#__PURE__*/function () {\n function Utils() {\n (0, _classCallCheck2.default)(this, Utils);\n }\n (0, _createClass2.default)(Utils, null, [{\n key: \"modelSql\",\n value: function modelSql(name, options) {\n var sql;\n var sqlArr = [];\n var primaryKeyArr = [];\n Utils.log('[modelSql] options:', options);\n for (var key in options) {\n if (Object.hasOwnProperty.call(options, key)) {\n var option = options[key];\n sqlArr.push(Utils.restrain(key, option));\n if (option.primaryKey == true) {\n primaryKeyArr.push(key.toString());\n Utils.log(\"[modelSql] \".concat(key, \" is primary key\").concat(primaryKeyArr.length));\n }\n }\n }\n Utils.log(primaryKeyArr.length);\n if (primaryKeyArr.length > 1) {\n sql = \"CREATE TABLE '\".concat(name, \"' (\").concat(sqlArr.join(', ').replaceAll(' PRIMARY KEY', ''), \", PRIMARY KEY (\").concat(primaryKeyArr.join(), \"))\");\n } else {\n sql = \"CREATE TABLE '\".concat(name, \"' (\").concat(sqlArr.join(', '), \")\");\n }\n Utils.log(\"[modelSql] \".concat(sql));\n return sql;\n }\n }, {\n key: \"restrain\",\n value: function restrain(key, options) {\n var restrainArray = [];\n restrainArray.push(\"'\".concat(key, \"'\"));\n\n // 如果是 String 拦截处理\n if (options.constructor != Object) {\n restrainArray.push(Utils.toType(options));\n return restrainArray.join(' ');\n }\n restrainArray.push(Utils.toType(options.type));\n\n // 主键\n if (options.primaryKey == true) {\n if (options.autoIncrement != true) {\n restrainArray.push('PRIMARY KEY');\n }\n }\n\n // 自增\n if (Utils.isNumber(options.type) && options.autoIncrement == true) {\n restrainArray.pop();\n restrainArray.push('INTEGER');\n restrainArray.push('PRIMARY KEY');\n restrainArray.push('AUTOINCREMENT');\n }\n\n // 非空\n if (options.notNull == true) {\n restrainArray.push('NOT NULL');\n }\n\n // 默认值\n if (options.default) {\n restrainArray.push(\"DEFAULT \".concat(options.default));\n }\n\n // 是否是不同的值\n if (options.unique == true) {\n restrainArray.push('UNIQUE');\n }\n\n // 检查\n if (options.check) {\n restrainArray.push(\"CHECK(\".concat(THIS_VALUE.check, \")\"));\n }\n return restrainArray.join(' ');\n }\n }, {\n key: \"toType\",\n value: function toType(jsType) {\n var sqliteType = '';\n if (Utils.isNumber(jsType)) {\n sqliteType = 'numeric';\n } else if (Utils.isDate(jsType)) {\n sqliteType = 'timestamp';\n } else if (Utils.isBlob(jsType)) {\n sqliteType = 'BLOB';\n } else {\n sqliteType = 'varchar';\n }\n return sqliteType;\n }\n }, {\n key: \"log\",\n value: function log() {\n if (config.deBug) {\n console.log.apply(null, arguments);\n }\n }\n }, {\n key: \"warn\",\n value: function warn() {\n if (config.deBug) {\n console.warn.apply(null, arguments);\n }\n }\n }, {\n key: \"error\",\n value: function error() {\n console.error.apply(null, arguments);\n }\n }, {\n key: \"isBlob\",\n value: function isBlob(value) {\n return value === 'BLOB';\n }\n }, {\n key: \"isArray\",\n value: function isArray(value) {\n return Object.prototype.toString.call(value) === '[object Array]';\n }\n }, {\n key: \"isObject\",\n value: function isObject(value) {\n return Object.prototype.toString.call(value) === '[object Object]';\n }\n }, {\n key: \"isString\",\n value: function isString(value) {\n return Object.prototype.toString.call(value) === '[object String]';\n }\n }, {\n key: \"isFunction\",\n value: function isFunction(value) {\n return value === Function || Object.prototype.toString.call(value) === '[object Function]';\n }\n }, {\n key: \"isNumber\",\n value: function isNumber(value) {\n return value === Number || Object.prototype.toString.call(value) === '[object Number]';\n }\n }, {\n key: \"isNaN\",\n value: function (_isNaN) {\n function isNaN(_x) {\n return _isNaN.apply(this, arguments);\n }\n isNaN.toString = function () {\n return _isNaN.toString();\n };\n return isNaN;\n }(function (value) {\n return Object.prototype.toString.call(value) === '[object Number]' && isNaN(value);\n })\n }, {\n key: \"isBoolean\",\n value: function isBoolean(value) {\n return Object.prototype.toString.call(value) === '[object Boolean]';\n }\n }, {\n key: \"isUndefined\",\n value: function isUndefined(value) {\n return Object.prototype.toString.call(value) === '[object Undefined]';\n }\n }, {\n key: \"isModel\",\n value: function isModel(value) {\n return Object.prototype.toString.call(value) === '[object Model]';\n }\n }, {\n key: \"isDate\",\n value: function isDate(value) {\n return value === Date || Object.prototype.toString.call(value) === '[object Date]';\n }\n }]);\n return Utils;\n}();\n/**\r\n * Model 对象内部public方法全部 return this;\r\n */\nvar Model = /*#__PURE__*/function () {\n /**\r\n * @constructor\r\n * @param {String} name 数据库表名\r\n * @param {} options 数据表列对象\r\n * @returns \r\n */\n function Model() {\n (0, _classCallCheck2.default)(this, Model);\n } // constructor(name, options) {\n // this.init(name, options)\n\n // let self = this;\n // self.name = name;\n // self.options = options;\n\n // if (config.isConnect) {\n // \tself.repair();\n // } else {\n // \tif(!config.name||!config.path){\n // \t\tconsole.error('\"config.name\" or \"config.path\" is empty');\n // \t}\n // \tusqlite.connect(config);\n // }\n\n /**\r\n * @param {String} name 数据库表名\r\n * @param {} options 数据表列对象\r\n * @returns \r\n */\n (0, _createClass2.default)(Model, [{\n key: \"init\",\n value: function () {\n var _init = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(name, options) {\n var self;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n self = this;\n self.name = name;\n self.options = options;\n if (!config.isConnect) {\n _context.next = 8;\n break;\n }\n _context.next = 6;\n return self.repair();\n case 6:\n _context.next = 11;\n break;\n case 8:\n if (!config.name || !config.path) {\n __f__(\"error\", '\"config.name\" or \"config.path\" is empty', \" at utils/usqlite.js:189\");\n }\n _context.next = 11;\n return usqlite.connect(config);\n case 11:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n function init(_x2, _x3) {\n return _init.apply(this, arguments);\n }\n return init;\n }()\n /**\r\n * @description 查询表数据\r\n * @param {String|Array} options \r\n * - String WHERE 内容\r\n * - Array 需要查询的列\r\n * @returns \r\n */\n }, {\n key: \"find\",\n value: function find() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var sql = '';\n // let self = this;\n // self.repair();\n\n if (!(Utils.isString(options) || Utils.isArray(options) || Utils.isFunction(options))) {\n Utils.error('The first parameter of Model.find should be \"Array\", \"String\" or \"Function\" (when there is only one parameter).');\n }\n if (options == '') {\n sql = \"SELECT * FROM '\".concat(this.name, \"'\"); // 查找全部\n } else if (Utils.isArray(options)) {\n sql = \"SELECT \".concat(options.join(), \" FROM '\").concat(this.name, \"'\"); // 查找制定列\n } else if (Utils.isString(options)) {\n sql = \"SELECT * FROM '\".concat(this.name, \"' WHERE \").concat(options); // 制定条件查询\n }\n\n Utils.log(\"[find]: \".concat(sql));\n return new Promise(function (resolve, reject) {\n plus.sqlite.selectSql({\n name: config.name,\n sql: sql,\n success: function success(res) {\n __f__(\"log\", '[find] res:', res, \" at utils/usqlite.js:225\");\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[find] err:', err, \" at utils/usqlite.js:229\");\n reject(err);\n }\n });\n });\n }\n\n /**\r\n * @description 分页查询\r\n * @param {Object} options : { where:查询条件, number: 当前页数 , count : 每页数量 }\r\n * @return\r\n */\n }, {\n key: \"limit\",\n value: function limit(options) {\n var sql = '';\n // let self = this;\n // self.repair();\n if (!Utils.isObject(options)) {\n Utils.error('The first parameter of Model.limit should be \"Object\".');\n }\n if (!options.where) {\n // 不存在 where\n sql = \"SELECT * FROM '\".concat(this.name, \"' LIMIT \").concat(options.count, \" OFFSET \").concat((options.number - 1) * options.count);\n } else {\n // 存在 where\n sql = \"SELECT * FROM '\".concat(this.name, \"' WHERE \").concat(options.where, \" LIMIT \").concat(options.count, \" OFFSET \").concat((options.number - 1) * options.count);\n }\n ;\n Utils.log(\"[limit]: \".concat(sql));\n return new Promise(function (resolve, reject) {\n plus.sqlite.selectSql({\n name: config.name,\n sql: sql,\n success: function success(res) {\n __f__(\"log\", '[limit] res:', res, \" at utils/usqlite.js:266\");\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[limit] err:', err, \" at utils/usqlite.js:270\");\n reject(err);\n }\n });\n });\n }\n\n /**\r\n * @description 插入数据\r\n * @param {Object|Array} data: 需要插入的单个或者多个数据\r\n */\n }, {\n key: \"insert\",\n value: function () {\n var _insert = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(data) {\n var i, keys, values, key, sql;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n // let self = this;\n // self.repair();\n\n if (!(Utils.isObject(data) || Util.isArray(data))) {\n Utils.error('The first parameter of Model.insert should be \"Object\" or \"Array\".');\n }\n if (!config.isConnect) {\n _context2.next = 20;\n break;\n }\n if (!Utils.isArray(data)) {\n _context2.next = 13;\n break;\n }\n i = 0;\n case 4:\n if (!(i < data.length)) {\n _context2.next = 10;\n break;\n }\n _context2.next = 7;\n return this.insert(data[i]);\n case 7:\n i++;\n _context2.next = 4;\n break;\n case 10:\n return _context2.abrupt(\"return\");\n case 13:\n if (!Utils.isObject(data)) {\n _context2.next = 20;\n break;\n }\n keys = [];\n values = []; // let index = arguments[3]??null;\n for (key in data) {\n keys.push(key);\n values.push(\"'\".concat(data[key], \"'\"));\n }\n sql = \"INSERT INTO '\".concat(this.name, \"' (\").concat(keys.join(), \") VALUES (\").concat(values.join(), \")\");\n Utils.log(\"[insert]: \".concat(sql));\n return _context2.abrupt(\"return\", new Promise(function (resolve, reject) {\n plus.sqlite.executeSql({\n name: config.name,\n sql: sql,\n success: function success(res) {\n // console.log('[insert] res:', res)\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[insert] err:', err, \" at utils/usqlite.js:317\");\n reject(err);\n }\n });\n }));\n case 20:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n function insert(_x4) {\n return _insert.apply(this, arguments);\n }\n return insert;\n }()\n /**\r\n * @description 更新数据\r\n * @param {Object} data: 修改后的数据 \r\n * @param {String} options:可选参数 更新条件\r\n */\n }, {\n key: \"update\",\n value: function update(data) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n // let self = this;\n // self.repair();\n var sql = '';\n var items = [];\n if (!Utils.isObject(data)) {\n Utils.error('The first parameter of Model.update should be \"Objrct\".');\n }\n if (!(Utils.isObject(options) || Utils.isString(options))) {\n Utils.error('The second parameter of Model.update should be \"Object\" or \"String\".');\n }\n for (var key in data) {\n items.push(\"\".concat(key, \"='\").concat(data[key], \"'\"));\n }\n ;\n if (options == '') {\n sql = \"UPDATE '\".concat(this.name, \"' SET \").concat(items.join());\n } else {\n sql = \"UPDATE \".concat(this.name, \" SET \").concat(items.join(), \" WHERE \").concat(options);\n }\n ;\n Utils.log(\"[update]: \".concat(sql));\n return new Promise(function (resolve, reject) {\n plus.sqlite.executeSql({\n name: config.name,\n sql: sql,\n success: function success(res) {\n // console.log('[update] res:', res)\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[update] err:', err, \" at utils/usqlite.js:364\");\n reject(err);\n }\n });\n });\n }\n\n /**\r\n * @description 删除数据\r\n * @param {String} options :可选参数 删除条件\r\n */\n }, {\n key: \"delete\",\n value: function _delete() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n // let self = this;\n // self.repair();\n var sql = '';\n if (!(Utils.isString(options) || Utils.isFunction(options))) {\n Utils.error('The first parameter of Model.delete should be \"Object\" or \"Function\".');\n }\n if (options == '') {\n sql = \"DELETE FROM '\".concat(this.name, \"'\");\n } else {\n sql = \"DELETE FROM '\".concat(this.name, \"' WHERE \").concat(options);\n }\n ;\n Utils.log(\"[delete]: \".concat(sql));\n return new Promise(function (resolve, reject) {\n plus.sqlite.executeSql({\n name: config.name,\n sql: sql,\n success: function success(res) {\n __f__(\"log\", '[delete] res:', res, \" at utils/usqlite.js:396\");\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[delete] err:', err, \" at utils/usqlite.js:400\");\n reject(err);\n }\n });\n });\n }\n\n /**\r\n * @description 重命名或者新增列\r\n * @param {Object|Array|String} options 参数 数组为新增多列 对象为新增单列{aa} 字符串重命名\r\n * @return: \r\n */\n }, {\n key: \"alter\",\n value: function () {\n var _alter = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(options) {\n var self, sql, i, column;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n self = this; // self.repair();\n sql = '';\n if (!(Utils.isObject(options) || Utils.isArray(options) || Utils.isString(options))) {\n Utils.error('The first parameter of Model.alter should be \"Object\", \"Array\" or \"String\".');\n }\n if (!Utils.isArray(options)) {\n _context3.next = 14;\n break;\n }\n i = 0;\n case 5:\n if (!(i < options.length)) {\n _context3.next = 11;\n break;\n }\n _context3.next = 8;\n return this.alter(options[i]);\n case 8:\n i++;\n _context3.next = 5;\n break;\n case 11:\n return _context3.abrupt(\"return\");\n case 14:\n if (Utils.isObject(options)) {\n // 新增单列\n column = Utils.restrain(options.name, options.option);\n sql = \"ALTER TABLE '\".concat(this.name, \"' ADD COLUMN \").concat(column);\n } else if (options.constructor == String) {\n // 重命名\n sql = \"ALTER TABLE '\".concat(this.name, \"' RENAME TO '\").concat(options, \"'\");\n }\n case 15:\n Utils.log(\"[alter]: \".concat(sql));\n return _context3.abrupt(\"return\", new Promise(function (resolve, reject) {\n plus.sqlite.selectSql({\n name: config.name,\n sql: sql,\n success: function success(res) {\n if (options.constructor == String) {\n // 重命名\n self.name = options;\n }\n // console.log('[alter] res:', res)\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[alter] err:', err, \" at utils/usqlite.js:446\");\n reject(err);\n }\n });\n }));\n case 17:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n function alter(_x5) {\n return _alter.apply(this, arguments);\n }\n return alter;\n }()\n /**\r\n * @description \r\n * @param {Model} model 右 Model\r\n * @param {Object} options \r\n * @returns \r\n */\n }, {\n key: \"join\",\n value: function join(model, options) {\n // let self = this;\n // self.repair();\n if (!model) {\n Utils.error('\"model\" cannot be empty.');\n }\n if (!Utils.isObject(options)) {\n Utils.error('The type of \"options\" is wrong, it should be \"Object\".');\n }\n if (!options.type || !options.predicate) {\n Utils.error('Missing required parameters');\n }\n var leftName = this.name;\n var rightName = model.name;\n var leftValue = options.predicate.left;\n var rightValue = options.predicate.right;\n var cols = ['*'];\n var SQL_MAP = {\n cross: \"SELECT \".concat(cols.join(), \" FROM \").concat(leftName, \" CROSS JOIN \").concat(rightName, \";\"),\n inner: [\"SELECT \".concat(cols.join(), \" FROM \").concat(leftName, \" NATURAL JOIN \").concat(rightName), \"SELECT \".concat(cols.join(), \" FROM \").concat(leftName, \" INNER JOIN \").concat(rightName, \" ON \").concat(leftName, \".\").concat(leftValue, \" = \").concat(rightName, \".\").concat(rightValue)],\n outer: \"SELECT \".concat(cols.join(), \" FROM \").concat(leftName, \" OUTER JOIN \").concat(rightName, \" ON \").concat(leftName, \".\").concat(leftValue, \" = \").concat(rightName, \".\").concat(rightValue)\n };\n var sql = '';\n if (options.type == inner && !options.predicate) {\n sql = SQL_MAP[options.type][0];\n } else if (options.type == inner && !options.predicate) {\n sql = SQL_MAP[options.type][1];\n } else {\n sql = SQL_MAP[options.type];\n }\n Utils.log(\"[join]: \".concat(sql));\n return new Promise(function (resolve, reject) {\n plus.sqlite.selectSql({\n name: config.name,\n sql: sql,\n success: function success(res) {\n __f__(\"log\", '[join] res:', res, \" at utils/usqlite.js:502\");\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[join] err:', err, \" at utils/usqlite.js:506\");\n reject(err);\n }\n });\n });\n }\n\n /**\r\n * @description 执行sql语句\r\n * @param {String} sql : sql语句\r\n */\n }, {\n key: \"sql\",\n value: function sql(_sql) {\n if (!Utils.isString(_sql)) {\n Utils.error('\"The type of \"sql\" is wrong, it should be \"String\".');\n }\n\n // let self = this;\n // self.repair();\n\n Utils.log(\"[sql]: \".concat(_sql));\n return new Promise(function (resolve, reject) {\n plus.sqlite.selectSql({\n name: config.name,\n sql: _sql,\n success: function success(res) {\n __f__(\"log\", '[sql] res:', res, \" at utils/usqlite.js:532\");\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[sql] err:', err, \" at utils/usqlite.js:536\");\n reject(err);\n }\n });\n });\n }\n\n /**\r\n * @description 判断表是否存在 \r\n */\n }, {\n key: \"insertMapData\",\n value: function insertMapData(arrayBuffer) {\n __f__(\"log\", 'arrayBuffer', arrayBuffer, \" at utils/usqlite.js:547\");\n var zipFileData = this.byteArrayToHexString(arrayBuffer);\n __f__(\"log\", 'zipFileData', zipFileData, \" at utils/usqlite.js:549\");\n var sql = \"INSERT INTO 'mapInfo' (shopId,mapName,zipImageUrl,zipImageMd5,zipFileName,zipFileData) \\n\\t\\tVALUES ('1','\\u8DEF\\u7EBF\\u56FE','http://www.beswell.com/download/\\u9F50\\u6E90\\u5927\\u53A6_\\u5DF2\\u4FEE\\u6539.zip','MTExMQ==','\\u9F50\\u6E90\\u5927\\u53A6_\\u5DF2\\u4FEE\\u6539.tif', x'\".concat(zipFileData, \"')\");\n return new Promise(function (resolve, reject) {\n plus.sqlite.executeSql({\n name: config.name,\n sql: sql,\n success: function success(res) {\n // console.log('[insertMapData] res:', res)\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[insertMapData] err:', err, \" at utils/usqlite.js:563\");\n reject(err);\n }\n });\n });\n }\n }, {\n key: \"byteArrayToHexString\",\n value: function byteArrayToHexString(arrayBuffer) {\n // converts byte arrays to string\n var i, j, inn;\n var hex = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\"];\n var out = \"\";\n for (j = 0; j < arrayBuffer.length; ++j) {\n inn = arrayBuffer[j] & 0xff;\n i = inn >>> 4 & 0x0f;\n out += hex[i];\n i = inn & 0x0f;\n out += hex[i];\n }\n return out;\n }\n\n /**\r\n * @description 判断表是否存在 \r\n */\n }, {\n key: \"isExist\",\n value: function isExist() {\n var sql = \"SELECT count(*) AS isExist FROM sqlite_master WHERE type='table' AND name='\".concat(this.name, \"'\");\n // Utils.log(`[isExist] ${config.name}`);\n // Utils.log(`[isExist] ${sql}`);\n\n return new Promise(function (resolve, reject) {\n plus.sqlite.selectSql({\n name: config.name,\n sql: sql,\n success: function success(res) {\n // console.log('[isExist] res:', res)\n if (res[0].isExist == 1) __f__(\"log\", \"[isExist] \".concat(config.name, \" \\u5DF2\\u5B58\\u5728\"), \" at utils/usqlite.js:600\");else __f__(\"log\", \"[isExist] \".concat(config.name, \" \\u4E0D\\u5B58\\u5728\"), \" at utils/usqlite.js:602\");\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[isExist] err:', err, \" at utils/usqlite.js:606\");\n reject(err);\n }\n });\n });\n }\n\n /**\r\n * @description 删除数据表 **不推荐**\r\n */\n }, {\n key: \"drop\",\n value: function drop() {\n var sql = \"DROP TABLE '\".concat(this.name, \"'\");\n // let self = this;\n // self.repair();\n\n Utils.log(\"[drop]: \".concat(sql));\n return new Promise(function (resolve, reject) {\n plus.sqlite.selectSql({\n name: config.name,\n sql: sql,\n success: function success(res) {\n __f__(\"log\", '[drop] res:', res, \" at utils/usqlite.js:628\");\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[drop] err:', err, \" at utils/usqlite.js:632\");\n reject(err);\n }\n });\n });\n }\n\n /**\r\n * @description 创建数据表 **不推荐**\r\n */\n }, {\n key: \"create\",\n value: function create() {\n // let self = this;\n var sql = Utils.modelSql(this.name, this.options);\n Utils.log(\"[create]: \".concat(sql));\n return new Promise(function (resolve, reject) {\n plus.sqlite.selectSql({\n name: config.name,\n sql: sql,\n success: function success(res) {\n // console.log('[create] res:', res)\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[create] err:', err, \" at utils/usqlite.js:656\");\n reject(err);\n }\n });\n });\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return \"[\".concat(this.name, \" Model]\");\n }\n }, {\n key: \"repair\",\n value: function () {\n var _repair = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {\n var self, res;\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n self = this;\n _context4.prev = 1;\n _context4.next = 4;\n return self.isExist();\n case 4:\n res = _context4.sent;\n if (res[0].isExist) {\n _context4.next = 8;\n break;\n }\n _context4.next = 8;\n return self.create();\n case 8:\n _context4.next = 13;\n break;\n case 10:\n _context4.prev = 10;\n _context4.t0 = _context4[\"catch\"](1);\n __f__(\"error\", _context4.t0, \" at utils/usqlite.js:676\");\n case 13:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this, [[1, 10]]);\n }));\n function repair() {\n return _repair.apply(this, arguments);\n }\n return repair;\n }()\n }]);\n return Model;\n}(); // 单例模式\nvar usqlite = /*#__PURE__*/function () {\n /**\r\n * 构造函数\r\n * @param {Object} options 数据库配置信息 *\r\n * {name: 'demo', path: '_doc/demo.db'}\r\n * - name 数据库名称*\r\n * - path 数据库路径\r\n */\n function usqlite(options) {\n (0, _classCallCheck2.default)(this, usqlite);\n __f__(\"warn\", 'No instantiation', \" at utils/usqlite.js:694\");\n }\n\n /**\r\n * @description 链接数据库\r\n * @param {Object} options 数据库配置信息 *\r\n * {name: 'demo', path: '_doc/demo.db'}\r\n * - name 数据库名称*\r\n * - path 数据库路径\r\n */\n (0, _createClass2.default)(usqlite, null, [{\n key: \"connect\",\n value: function connect(options) {\n config.name = options.name; // 数据库名称*\n config.path = options.path; // 数据库名称*\n\n if (config.isConnect) {\n __f__(\"warn\", '[connect] 数据库已连接,无需重连', \" at utils/usqlite.js:709\");\n return;\n }\n return new Promise(function (resolve, reject) {\n plus.sqlite.openDatabase({\n name: config.name,\n //数据库名称\n path: config.path,\n //数据库地址\n success: function success(res) {\n config.isConnect = true;\n // console.log('[connect] res:', res)\n resolve(res);\n },\n fail: function fail(err) {\n if (e.code == -1402) {\n config.isConnect = true;\n __f__(\"warn\", '[connect] warn:', err, \" at utils/usqlite.js:725\");\n } else {\n config.isConnect = false;\n __f__(\"error\", '[connect] err:', err, \" at utils/usqlite.js:728\");\n }\n reject(err);\n }\n });\n });\n }\n\n /**\r\n * @description 断开数据库\r\n * @param {*} callback \r\n */\n }, {\n key: \"close\",\n value: function close() {\n return new Promise(function (resolve, reject) {\n plus.sqlite.closeDatabase({\n name: config.name,\n //数据库名称\n path: config.path,\n //数据库地址\n success: function success(res) {\n config.isConnect = false;\n // console.log('[close] res:', res)\n resolve(res);\n },\n fail: function fail(err) {\n __f__(\"error\", '[close] err:', err, \" at utils/usqlite.js:751\");\n reject(err);\n }\n });\n });\n }\n\n /**\r\n * @description 创建 Model 对象\r\n * @example\r\n * usqlite.model('demo',\r\n * {\r\n * \t\tid: {\r\n * \t\t\ttype: Number\r\n * \t\t},\r\n * \t\tcontent: String\r\n * })\r\n * @param {String} name 数据表名称 *\r\n * @param {String} options 参数配置 *\r\n * @returns 返回 Model 对象\r\n */\n }, {\n key: \"model\",\n value: function () {\n var _model = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(name, options) {\n var model;\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n Utils.log(config);\n // return new Model(name, options);\n model = new Model();\n _context5.next = 4;\n return model.init(name, options);\n case 4:\n return _context5.abrupt(\"return\", model);\n case 5:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }));\n function model(_x6, _x7) {\n return _model.apply(this, arguments);\n }\n return model;\n }()\n }]);\n return usqlite;\n}();\nexports.usqlite = usqlite;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 27)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdXRpbHMvdXNxbGl0ZS5qcyJdLCJuYW1lcyI6WyJjb25maWciLCJkZUJ1ZyIsImlzQ29ubmVjdCIsIlV0aWxzIiwibmFtZSIsIm9wdGlvbnMiLCJzcWwiLCJzcWxBcnIiLCJwcmltYXJ5S2V5QXJyIiwibG9nIiwia2V5IiwiT2JqZWN0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwib3B0aW9uIiwicHVzaCIsInJlc3RyYWluIiwicHJpbWFyeUtleSIsInRvU3RyaW5nIiwibGVuZ3RoIiwiam9pbiIsInJlcGxhY2VBbGwiLCJyZXN0cmFpbkFycmF5IiwiY29uc3RydWN0b3IiLCJ0b1R5cGUiLCJ0eXBlIiwiYXV0b0luY3JlbWVudCIsImlzTnVtYmVyIiwicG9wIiwibm90TnVsbCIsImRlZmF1bHQiLCJ1bmlxdWUiLCJjaGVjayIsIlRISVNfVkFMVUUiLCJqc1R5cGUiLCJzcWxpdGVUeXBlIiwiaXNEYXRlIiwiaXNCbG9iIiwiY29uc29sZSIsImFwcGx5IiwiYXJndW1lbnRzIiwid2FybiIsImVycm9yIiwidmFsdWUiLCJwcm90b3R5cGUiLCJGdW5jdGlvbiIsIk51bWJlciIsImlzTmFOIiwiRGF0ZSIsIk1vZGVsIiwic2VsZiIsInJlcGFpciIsInBhdGgiLCJ1c3FsaXRlIiwiY29ubmVjdCIsImlzU3RyaW5nIiwiaXNBcnJheSIsImlzRnVuY3Rpb24iLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInBsdXMiLCJzcWxpdGUiLCJzZWxlY3RTcWwiLCJzdWNjZXNzIiwicmVzIiwiZmFpbCIsImVyciIsImlzT2JqZWN0Iiwid2hlcmUiLCJjb3VudCIsIm51bWJlciIsImRhdGEiLCJVdGlsIiwiaSIsImluc2VydCIsImtleXMiLCJ2YWx1ZXMiLCJleGVjdXRlU3FsIiwiaXRlbXMiLCJhbHRlciIsImNvbHVtbiIsIlN0cmluZyIsIm1vZGVsIiwicHJlZGljYXRlIiwibGVmdE5hbWUiLCJyaWdodE5hbWUiLCJsZWZ0VmFsdWUiLCJsZWZ0IiwicmlnaHRWYWx1ZSIsInJpZ2h0IiwiY29scyIsIlNRTF9NQVAiLCJjcm9zcyIsImlubmVyIiwib3V0ZXIiLCJhcnJheUJ1ZmZlciIsInppcEZpbGVEYXRhIiwiYnl0ZUFycmF5VG9IZXhTdHJpbmciLCJqIiwiaW5uIiwiaGV4Iiwib3V0IiwiaXNFeGlzdCIsIm1vZGVsU3FsIiwiY3JlYXRlIiwib3BlbkRhdGFiYXNlIiwiZSIsImNvZGUiLCJjbG9zZURhdGFiYXNlIiwiaW5pdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSUEsTUFBTSxHQUFHO0VBQ1pDLEtBQUssRUFBRSxJQUFJO0VBQ1hDLFNBQVMsRUFBRTtBQUNaLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBLElBRU1DLEtBQUs7RUFBQTtJQUFBO0VBQUE7RUFBQTtJQUFBO0lBQUEsT0FDVixrQkFBZ0JDLElBQUksRUFBRUMsT0FBTyxFQUFFO01BQzlCLElBQUlDLEdBQUc7TUFDUCxJQUFJQyxNQUFNLEdBQUcsRUFBRTtNQUNmLElBQUlDLGFBQWEsR0FBRyxFQUFFO01BQ3RCTCxLQUFLLENBQUNNLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRUosT0FBTyxDQUFDO01BRXpDLEtBQUssSUFBTUssR0FBRyxJQUFJTCxPQUFPLEVBQUU7UUFDMUIsSUFBSU0sTUFBTSxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1IsT0FBTyxFQUFFSyxHQUFHLENBQUMsRUFBRTtVQUM3QyxJQUFNSSxNQUFNLEdBQUdULE9BQU8sQ0FBQ0ssR0FBRyxDQUFDO1VBQzNCSCxNQUFNLENBQUNRLElBQUksQ0FBQ1osS0FBSyxDQUFDYSxRQUFRLENBQUNOLEdBQUcsRUFBRUksTUFBTSxDQUFDLENBQUM7VUFDeEMsSUFBSUEsTUFBTSxDQUFDRyxVQUFVLElBQUksSUFBSSxFQUFFO1lBQzlCVCxhQUFhLENBQUNPLElBQUksQ0FBQ0wsR0FBRyxDQUFD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QUN6QnpHLElBQUksRUFBRUosTUFBTSxDQUFDSSxJQUFJO1VBQUU7VUFDbkJnRCxJQUFJLEVBQUVwRCxNQUFNLENBQUNvRCxJQUFJO1VBQUU7VUFDbkJZLE9BQU8sbUJBQUNDLEdBQUcsRUFBRTtZQUNaakUsTUFBTSxDQUFDRSxTQUFTLEdBQUcsS0FBSztZQUN4QjtZQUNBeUQsT0FBTyxDQUFDTSxHQUFHLENBQUM7VUFDYixDQUFDO1VBQ0RDLElBQUksZ0JBQUNDLEdBQUcsRUFBRTtZQUNULGVBQWMsY0FBYyxFQUFFQSxHQUFHO1lBQ2pDUCxNQUFNLENBQUNPLEdBQUcsQ0FBQztVQUNaO1FBQ0QsQ0FBQyxDQUFDO01BQ0gsQ0FBQyxDQUFDO0lBQ0g7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQWJDO0lBQUE7SUFBQTtNQUFBLHFGQWNBLGtCQUFtQi9ELElBQUksRUFBRUMsT0FBTztRQUFBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Z0JBQy9CRixLQUFLLENBQUNNLEdBQUcsQ0FBQ1QsTUFBTSxDQUFDO2dCQUNqQjtnQkFDSW1GLEtBQUssR0FBRyxJQUFJbEMsS0FBSyxFQUFFO2dCQUFBO2dCQUFBLE9BQ2pCa0MsS0FBSyxDQUFDMkIsSUFBSSxDQUFDMUcsSUFBSSxFQUFFQyxPQUFPLENBQUM7Y0FBQTtnQkFBQSxrQ0FDeEI4RSxLQUFLO2NBQUE7Y0FBQTtnQkFBQTtZQUFBO1VBQUE7UUFBQTtNQUFBLENBQ1o7TUFBQTtRQUFBO01BQUE7TUFBQTtJQUFBO0VBQUE7RUFBQTtBQUFBO0FBQUEsMEIiLCJmaWxlIjoiNTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICog5a+5IFNRTGl0ZSDnmoQgT1JNIOeahOWwgeijheWkhOeQhlxyXG4gKiBAdGltZSAyMDIzLTA0LTA2XHJcbiAqIEB2ZXJzaW9uIDIuMC4wXHJcbiAqIEBieSB3enhcclxuICovXHJcblxyXG5sZXQgY29uZmlnID0ge1xyXG5cdGRlQnVnOiB0cnVlLFxyXG5cdGlzQ29ubmVjdDogZmFsc2VcclxufVxyXG4vLyBjbGFzcyBSZXNwb25zZSB7XHJcbi8vIFx0Y29uc3RydWN0b3IoY29kZSwgbXNnLCBkYXRhKSB7XHJcbi8vIFx0XHR0aGlzLmNvZGUgPSBjb2RlO1xyXG4vLyBcdFx0dGhpcy5tc2cgPSBtc2c7XHJcbi8vIFx0XHR0aGlzLmRhdGEgPSBkYXRhO1xyXG4vLyBcdH1cclxuLy8gXHR0b1N0cmluZygpIHtcclxuLy8gXHRcdHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzKTtcclxuLy8gXHR9XHJcbi8vIH1cclxuXHJcbmNsYXNzIFV0aWxzIHtcclxuXHRzdGF0aWMgbW9kZWxTcWwobmFtZSwgb3B0aW9ucykge1xyXG5cdFx0bGV0IHNxbDtcclxuXHRcdGxldCBzcWxBcnIgPSBbXTtcclxuXHRcdGxldCBwcmltYXJ5S2V5QXJyID0gW107XHJcblx0XHRVdGlscy5sb2coJ1ttb2RlbFNxbF0gb3B0aW9uczonLCBvcHRpb25zKTtcclxuXHRcdFxyXG5cdFx0Zm9yIChjb25zdCBrZXkgaW4gb3B0aW9ucykge1xyXG5cdFx0XHRpZiAoT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwob3B0aW9ucywga2V5KSkge1xyXG5cdFx0XHRcdGNvbnN0IG9wdGlvbiA9IG9wdGlvbnNba2V5XTtcclxuXHRcdFx0XHRzcWxBcnIucHVzaChVdGlscy5yZXN0cmFpbihrZXksIG9wdGlvbikpO1xyXG5cdFx0XHRcdGlmIChvcHRpb24ucHJpbWFyeUtleSA9PSB0cnVlKSB7XHJcblx0XHRcdFx0XHRwcmltYXJ5S2V5QXJyLnB1c2goa2V5LnRvU3RyaW5nKCkpO1xyXG5cdFx0XHRcdFx0VXRpbHMubG9nKGBbbW9kZWxTcWxdICR7a2V5fSBpcyBwcmltYXJ5IGtleSR7cHJpbWFyeUtleUFyci5sZW5ndGh9YCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdFV0aWxzLmxvZyhwcmltYXJ5S2V5QXJyLmxlbmd0aCk7XHJcblx0XHRpZiAocHJpbWFyeUtleUFyci5sZW5ndGg+MSkge1xyXG5cdFx0XHRcclxuXHRcdFx0c3FsID0gYENSRUFURSBUQUJMRSAnJHtuYW1lfScgKCR7c3FsQXJyLmpvaW4oJywgJykucmVwbGFjZUFsbCgnIFBSSU1BUlkgS0VZJywnJyl9LCBQUklNQVJZIEtFWSAoJHtwcmltYXJ5S2V5QXJyLmpvaW4oKX0pKWA7XHJcblx0XHR9XHJcblx0XHRlbHNle1xyXG5cdFx0XHRzcWwgPSBgQ1JFQVRFIFRBQkxFICcke25hbWV9JyAoJHtzcWxBcnIuam9pbignLCAnKX0pYDtcclxuXHRcdH1cclxuXHRcdFV0aWxzLmxvZyhgW21vZGVsU3FsXSAke3NxbH1gKTtcclxuXHRcdHJldHVybiBzcWw7XHJcblx0fVxyXG5cclxuXHRzdGF0aWMgcmVzdHJhaW4oa2V5LCBvcHRpb25zKSB7XHJcblx0XHRsZXQgcmVzdHJhaW5BcnJheSA9IFtdO1xyXG5cdFx0cmVzdHJhaW5BcnJheS5wdXNoKGAnJHtrZXl9J2ApO1xyXG5cclxuXHRcdC8vIOWmguaenOaYryBTdHJpbmcg5oum5oiq5aSE55CGXHJcblx0XHRpZiAob3B0aW9ucy5jb25zdHJ1Y3RvciAhPSBPYmplY3QpIHtcclxuXHRcdFx0cmVzdHJhaW5BcnJheS5wdXNoKFV0aWxzLnRvVHlwZShvcHRpb25zKSk7XHJcblx0XHRcdHJldHVybiByZXN0cmFpbkFycmF5LmpvaW4oJyAnKTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXN0cmFpbkFycmF5LnB1c2goVXRpbHMudG9UeXBlKG9wdGlvbnMudHlwZSkpO1xyXG5cdFx0XHJcblx0XHQvLyDkuLvplK5cclxuXHRcdGlmIChvcHRpb25zLnByaW1hcnlLZXkgPT0gdHJ1ZSkge1xyXG5cdFx0XHRpZihvcHRpb25zLmF1dG9JbmNyZW1lbnQgIT0gdHJ1ZSl7XHJcblx0XHRcdFx0cmVzdHJhaW5BcnJheS5wdXNoKCdQUklNQVJZIEtFWScpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC8vIOiHquWinlxyXG5cdFx0aWYgKFV0aWxzLmlzTnVtYmVyKG9wdGlvbnMudHlwZSkmJm9wdGlvbnMuYXV0b0luY3JlbWVudCA9PSB0cnVlKSB7XHJcblx0XHRcdHJlc3RyYWluQXJyYXkucG9wKCk7XHJcblx0XHRcdHJlc3RyYWluQXJyYXkucHVzaCgnSU5URUdFUicpO1xyXG5cdFx0XHRyZXN0cmFpbkFycmF5LnB1c2goJ1BSSU1BUlkgS0VZJyk7XHJcblx0XHRcdHJlc3RyYWluQXJyYXkucHVzaCgnQVVUT0lOQ1JFTUVOVCcpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQvLyDpnZ7nqbpcclxuXHRcdGlmIChvcHRpb25zLm5vdE51bGwgPT0gdHJ1ZSkge1xyXG5cdFx0XHRyZXN0cmFpbkFycmF5LnB1c2goJ05PVCBOVUxMJyk7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8g6buY6K6k5YC8XHJcblx0XHRpZiAob3B0aW9ucy5kZWZhdWx0KSB7XHJcblx0XHRcdHJlc3RyYWluQXJyYXkucHVzaChgREVGQVVMVCAke29wdGlvbnMuZGVmYXVsdH1gKTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyDmmK/lkKbmmK/kuI3lkIznmoTlgLxcclxuXHRcdGlmIChvcHRpb25zLnVuaXF1ZSA9PSB0cnVlKSB7XHJcblx0XHRcdHJlc3RyYWluQXJyYXkucHVzaCgnVU5JUVVFJyk7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8g5qOA5p+lXHJcblx0XHRpZiAob3B0aW9ucy5jaGVjaykge1xyXG5cdFx0XHRyZXN0cmFpbkFycmF5LnB1c2goYENIRUNLKCR7VEhJU19WQUxVRS5jaGVja30pYCk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHJlc3RyYWluQXJyYXkuam9pbignICcpO1xyXG5cdH1cclxuXHJcblx0c3RhdGljIHRvVHlwZShqc1R5cGUpIHtcclxuXHRcdGxldCBzcWxpdGVUeXBlID0gJyc7XHJcblx0XHRpZiAoVXRpbHMuaXNOdW1iZXIoanNUeXBlKSkge1xyXG5cdFx0XHRzcWxpdGVUeXBlID0gJ251bWVyaWMnO1xyXG5cdFx0fSBlbHNlIGlmIChVdGlscy5pc0RhdGUoanNUeXBlKSkge1xyXG5cdFx0XHRzcWxpdGVUeXBlID0gJ3RpbWVzdGFtcCc7XHJcblx0XHR9IGVsc2UgaWYgKFV0aWxzLmlzQmxvYihqc1R5cGUpKSB7XHJcblx0XHRcdHNxbGl0ZVR5cGUgPSAnQkxPQic7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRzcWxpdGVUeXBlID0gJ3ZhcmNoYXInO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHNxbGl0ZVR5cGU7XHJcblx0fVxyXG5cdFxyXG5cdHN0YXRpYyBsb2coKSB7XHJcblx0XHRpZiAoY29uZmlnLmRlQnVnKSB7XHJcblx0XHRcdGNvbnNvbGUubG9nLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdHN0YXRpYyB3YXJuKCkge1xyXG5cdFx0aWYgKGNvbmZpZy5kZUJ1Zykge1xyXG5cdFx0XHRjb25zb2xlLndhcm4uYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0c3RhdGljIGVycm9yKCkge1xyXG5cdFx0Y29uc29sZS5lcnJvci5hcHBseShudWxsLCBhcmd1bWVudHMpO1xyXG5cdH1cclxuXHRcclxuXHRzdGF0aWMgaXNCbG9iKHZhbHVlKXsgcmV0dXJuIHZhbHVlID09PSAnQkxPQicgfVxyXG5cdHN0YXRpYyBpc0FycmF5KHZhbHVlKXsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IEFycmF5XSd9XHJcblx0c3RhdGljIGlzT2JqZWN0KHZhbHVlKXsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IE9iamVjdF0nfVxyXG5cdHN0YXRpYyBpc1N0cmluZyh2YWx1ZSl7IHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSAnW29iamVjdCBTdHJpbmddJ31cclxuXHRzdGF0aWMgaXNGdW5jdGlvbih2YWx1ZSl7IHJldHVybiAodmFsdWUgPT09IEZ1bmN0aW9uIHx8IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXScpfVxyXG5cdHN0YXRpYyBpc051bWJlcih2YWx1ZSl7IHJldHVybiAodmFsdWUgPT09IE51bWJlciB8fCBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSAnW29iamVjdCBOdW1iZXJdJyl9XHJcblx0c3RhdGljIGlzTmFOKHZhbHVlKXsgcmV0dXJuIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSAnW29iamVjdCBOdW1iZXJdJyAmJiBpc05hTih2YWx1ZSkpfVxyXG5cdHN0YXRpYyBpc0Jvb2xlYW4odmFsdWUpeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gJ1tvYmplY3QgQm9vbGVhbl0nfVxyXG5cdHN0YXRpYyBpc1VuZGVmaW5lZCh2YWx1ZSl7IHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSAnW29iamVjdCBVbmRlZmluZWRdJ31cclxuXHRzdGF0aWMgaXNNb2RlbCh2YWx1ZSl7IHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSAnW29iamVjdCBNb2RlbF0nfVxyXG5cdHN0YXRpYyBpc0RhdGUodmFsdWUpeyByZXR1cm4gKHZhbHVlID09PSBEYXRlfHxPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSAnW29iamVjdCBEYXRlXScpfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIE1vZGVsIOWvueixoeWGhemDqHB1YmxpY+aWueazleWFqOmDqCByZXR1cm4gdGhpcztcclxuICovXHJcbmNsYXNzIE1vZGVsIHtcclxuXHQvKipcclxuXHQgKiBAY29uc3RydWN0b3JcclxuXHQgKiBAcGFyYW0ge1N0cmluZ30gbmFtZSDmlbDmja7lupPooajlkI1cclxuXHQgKiBAcGFyYW0ge30gb3B0aW9ucyDmlbDmja7ooajliJflr7nosaFcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRjb25zdHJ1Y3RvcigpIHtcclxuXHQvLyBjb25zdHJ1Y3RvcihuYW1lLCBvcHRpb25zKSB7XHJcblx0XHQvLyB0aGlzLmluaXQobmFtZSwgb3B0aW9ucylcclxuXHRcdFxyXG5cdFx0Ly8gbGV0IHNlbGYgPSB0aGlzO1xyXG5cdFx0Ly8gc2VsZi5uYW1lID0gbmFtZTtcclxuXHRcdC8vIHNlbGYub3B0aW9ucyA9IG9wdGlvbnM7XHJcblxyXG5cdFx0Ly8gaWYgKGNvbmZpZy5pc0Nvbm5lY3QpIHtcclxuXHRcdC8vIFx0c2VsZi5yZXBhaXIoKTtcclxuXHRcdC8vIH0gZWxzZSB7XHJcblx0XHQvLyBcdGlmKCFjb25maWcubmFtZXx8IWNvbmZpZy5wYXRoKXtcclxuXHRcdC8vIFx0XHRjb25zb2xlLmVycm9yKCdcImNvbmZpZy5uYW1lXCIgb3IgXCJjb25maWcucGF0aFwiIGlzIGVtcHR5Jyk7XHJcblx0XHQvLyBcdH1cclxuXHRcdC8vIFx0dXNxbGl0ZS5jb25uZWN0KGNvbmZpZyk7XHJcblx0XHQvLyB9XHJcblx0fVxyXG5cdFxyXG5cdC8qKlxyXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIOaVsOaNruW6k+ihqOWQjVxyXG5cdCAqIEBwYXJhbSB7fSBvcHRpb25zIOaVsOaNruihqOWIl+WvueixoVxyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdGFzeW5jIGluaXQobmFtZSwgb3B0aW9ucykge1xyXG5cdFx0bGV0IHNlbGYgPSB0aGlzO1xyXG5cdFx0c2VsZi5uYW1lID0gbmFtZTtcclxuXHRcdHNlbGYub3B0aW9ucyA9IG9wdGlvbnM7XHJcblx0XHJcblx0XHRpZiAoY29uZmlnLmlzQ29ubmVjdCkge1xyXG5cdFx0XHRhd2FpdCBzZWxmLnJlcGFpcigpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0aWYoIWNvbmZpZy5uYW1lfHwhY29uZmlnLnBhdGgpe1xyXG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ1wiY29uZmlnLm5hbWVcIiBvciBcImNvbmZpZy5wYXRoXCIgaXMgZW1wdHknKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRhd2FpdCB1c3FsaXRlLmNvbm5lY3QoY29uZmlnKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiDmn6Xor6LooajmlbDmja5cclxuXHQgKiBAcGFyYW0ge1N0cmluZ3xBcnJheX0gb3B0aW9ucyBcclxuXHQgKiAtIFN0cmluZyAgV0hFUkUg5YaF5a65XHJcblx0ICogLSBBcnJheSDpnIDopoHmn6Xor6LnmoTliJdcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRmaW5kKG9wdGlvbnM9JycpIHtcclxuXHRcdGxldCBzcWwgPSAnJztcclxuXHRcdC8vIGxldCBzZWxmID0gdGhpcztcclxuXHRcdC8vIHNlbGYucmVwYWlyKCk7XHJcblx0XHRcclxuXHRcdGlmKCEoVXRpbHMuaXNTdHJpbmcob3B0aW9ucyl8fFV0aWxzLmlzQXJyYXkob3B0aW9ucyl8fFV0aWxzLmlzRnVuY3Rpb24ob3B0aW9ucykpKSB7XHJcblx0XHRcdFV0aWxzLmVycm9yKCdUaGUgZmlyc3QgcGFyYW1ldGVyIG9mIE1vZGVsLmZpbmQgc2hvdWxkIGJlIFwiQXJyYXlcIiwgXCJTdHJpbmdcIiBvciBcIkZ1bmN0aW9uXCIgKHdoZW4gdGhlcmUgaXMgb25seSBvbmUgcGFyYW1ldGVyKS4nKVxyXG5cdFx0fVxyXG5cdFx0aWYgKG9wdGlvbnMgPT0gJycpIHtcclxuXHRcdFx0c3FsID0gYFNFTEVDVCAqIEZST00gJyR7dGhpcy5uYW1lfSdgOyAvLyDmn6Xmib7lhajpg6hcclxuXHRcdH0gZWxzZSBpZiAoVXRpbHMuaXNBcnJheShvcHRpb25zKSkge1xyXG5cdFx0XHRzcWwgPSBgU0VMRUNUICR7b3B0aW9ucy5qb2luKCl9IEZST00gJyR7dGhpcy5uYW1lfSdgOyAvLyDmn6Xmib7liLblrprliJdcclxuXHRcdH0gZWxzZSBpZiAoVXRpbHMuaXNTdHJpbmcob3B0aW9ucykpIHtcclxuXHRcdFx0c3FsID0gYFNFTEVDVCAqIEZST00gJyR7dGhpcy5uYW1lfScgV0hFUkUgJHtvcHRpb25zfWA7IC8vIOWItuWumuadoeS7tuafpeivolxyXG5cdFx0fVxyXG5cclxuXHRcdFV0aWxzLmxvZyhgW2ZpbmRdOiAke3NxbH1gKTtcclxuXHJcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHRwbHVzLnNxbGl0ZS5zZWxlY3RTcWwoe1xyXG5cdFx0XHRcdG5hbWU6IGNvbmZpZy5uYW1lLFxyXG5cdFx0XHRcdHNxbDogc3FsLFxyXG5cdFx0XHRcdHN1Y2Nlc3MocmVzKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnW2ZpbmRdIHJlczonLCByZXMpXHJcblx0XHRcdFx0XHRyZXNvbHZlKHJlcylcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGZhaWwoZXJyKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmVycm9yKCdbZmluZF0gZXJyOicsIGVycilcclxuXHRcdFx0XHRcdHJlamVjdChlcnIpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIOWIhumhteafpeivolxyXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIDogICB7IHdoZXJlOuafpeivouadoeS7tiwgbnVtYmVyOiDlvZPliY3pobXmlbAgLCBjb3VudCA6IOavj+mhteaVsOmHjyB9XHJcblx0ICogQHJldHVyblxyXG5cdCAqL1xyXG5cdGxpbWl0KG9wdGlvbnMpIHtcclxuXHRcdGxldCBzcWwgPSAnJztcclxuXHRcdC8vIGxldCBzZWxmID0gdGhpcztcclxuXHRcdC8vIHNlbGYucmVwYWlyKCk7XHJcblx0XHRpZighVXRpbHMuaXNPYmplY3Qob3B0aW9ucykpe1xyXG5cdFx0XHRVdGlscy5lcnJvcignVGhlIGZpcnN0IHBhcmFtZXRlciBvZiBNb2RlbC5saW1pdCBzaG91bGQgYmUgXCJPYmplY3RcIi4nKVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRpZiAoIW9wdGlvbnMud2hlcmUpIHtcclxuXHRcdFx0Ly8g5LiN5a2Y5ZyoIHdoZXJlXHJcblx0XHRcdHNxbCA9XHJcblx0XHRcdFx0YFNFTEVDVCAqIEZST00gJyR7dGhpcy5uYW1lfScgTElNSVQgJHtvcHRpb25zLmNvdW50fSBPRkZTRVQgJHsob3B0aW9ucy5udW1iZXIgLSAxKSAqIG9wdGlvbnMuY291bnR9YFxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Ly8g5a2Y5ZyoIHdoZXJlXHJcblx0XHRcdHNxbCA9XHJcblx0XHRcdFx0YFNFTEVDVCAqIEZST00gJyR7dGhpcy5uYW1lfScgV0hFUkUgJHtvcHRpb25zLndoZXJlfSBMSU1JVCAke29wdGlvbnMuY291bnR9IE9GRlNFVCAkeyhvcHRpb25zLm51bWJlciAtIDEpICogb3B0aW9ucy5jb3VudH1gO1xyXG5cdFx0fTtcclxuXHJcblx0XHRVdGlscy5sb2coYFtsaW1pdF06ICR7c3FsfWApO1xyXG5cclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdHBsdXMuc3FsaXRlLnNlbGVjdFNxbCh7XHJcblx0XHRcdFx0bmFtZTogY29uZmlnLm5hbWUsXHJcblx0XHRcdFx0c3FsOiBzcWwsXHJcblx0XHRcdFx0c3VjY2VzcyhyZXMpIHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCdbbGltaXRdIHJlczonLCByZXMpXHJcblx0XHRcdFx0XHRyZXNvbHZlKHJlcylcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGZhaWwoZXJyKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmVycm9yKCdbbGltaXRdIGVycjonLCBlcnIpXHJcblx0XHRcdFx0XHRyZWplY3QoZXJyKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiDmj5LlhaXmlbDmja5cclxuXHQgKiBAcGFyYW0ge09iamVjdHxBcnJheX0gZGF0YTog6ZyA6KaB5o+S5YWl55qE5Y2V5Liq5oiW6ICF5aSa5Liq5pWw5o2uXHJcblx0ICovXHJcblx0YXN5bmMgaW5zZXJ0KGRhdGEpIHtcclxuXHRcdC8vIGxldCBzZWxmID0gdGhpcztcclxuXHRcdC8vIHNlbGYucmVwYWlyKCk7XHJcblxyXG5cdFx0aWYoIShVdGlscy5pc09iamVjdChkYXRhKXx8VXRpbC5pc0FycmF5KGRhdGEpKSl7XHJcblx0XHRcdFV0aWxzLmVycm9yKCdUaGUgZmlyc3QgcGFyYW1ldGVyIG9mIE1vZGVsLmluc2VydCBzaG91bGQgYmUgXCJPYmplY3RcIiBvciBcIkFycmF5XCIuJylcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0aWYgKGNvbmZpZy5pc0Nvbm5lY3QpIHtcclxuXHRcdFx0aWYgKFV0aWxzLmlzQXJyYXkoZGF0YSkpIHtcclxuXHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMuaW5zZXJ0KGRhdGFbaV0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0fSBlbHNlIGlmIChVdGlscy5pc09iamVjdChkYXRhKSkge1xyXG5cdFx0XHRcdGxldCBrZXlzID0gW107XHJcblx0XHRcdFx0bGV0IHZhbHVlcyA9IFtdO1xyXG5cdFx0XHRcdC8vIGxldCBpbmRleCA9IGFyZ3VtZW50c1szXT8/bnVsbDtcclxuXHRcdFx0XHRmb3IgKHZhciBrZXkgaW4gZGF0YSkge1xyXG5cdFx0XHRcdFx0a2V5cy5wdXNoKGtleSk7XHJcblx0XHRcdFx0XHR2YWx1ZXMucHVzaChgJyR7ZGF0YVtrZXldfSdgKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGxldCBzcWwgPSBgSU5TRVJUIElOVE8gJyR7dGhpcy5uYW1lfScgKCR7a2V5cy5qb2luKCl9KSBWQUxVRVMgKCR7dmFsdWVzLmpvaW4oKX0pYDtcclxuXHJcblx0XHRcdFx0VXRpbHMubG9nKGBbaW5zZXJ0XTogJHtzcWx9YCk7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0XHRcdHBsdXMuc3FsaXRlLmV4ZWN1dGVTcWwoe1xyXG5cdFx0XHRcdFx0XHRuYW1lOiBjb25maWcubmFtZSxcclxuXHRcdFx0XHRcdFx0c3FsOiBzcWwsXHJcblx0XHRcdFx0XHRcdHN1Y2Nlc3MocmVzKSB7XHJcblx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ1tpbnNlcnRdIHJlczonLCByZXMpXHJcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXMpXHJcblx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdGZhaWwoZXJyKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5lcnJvcignW2luc2VydF0gZXJyOicsIGVycilcclxuXHRcdFx0XHRcdFx0XHRyZWplY3QoZXJyKVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH0pO1x0XHRcdFx0XHRcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIOabtOaWsOaVsOaNrlxyXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBkYXRh77yaIOS/ruaUueWQjueahOaVsOaNriBcclxuXHQgKiBAcGFyYW0ge1N0cmluZ30gb3B0aW9uc++8muWPr+mAieWPguaVsCDmm7TmlrDmnaHku7ZcclxuXHQgKi9cclxuXHR1cGRhdGUoZGF0YSwgb3B0aW9ucz0nJykge1xyXG5cdFx0Ly8gbGV0IHNlbGYgPSB0aGlzO1xyXG5cdFx0Ly8gc2VsZi5yZXBhaXIoKTtcclxuXHRcdGxldCBzcWwgPSAnJztcclxuXHRcdGxldCBpdGVtcyA9IFtdO1xyXG5cdFx0XHJcblx0XHRpZighKFV0aWxzLmlzT2JqZWN0KGRhdGEpKSl7XHJcblx0XHRcdFV0aWxzLmVycm9yKCdUaGUgZmlyc3QgcGFyYW1ldGVyIG9mIE1vZGVsLnVwZGF0ZSBzaG91bGQgYmUgXCJPYmpyY3RcIi4nKVxyXG5cdFx0fVxyXG5cdFx0aWYoIShVdGlscy5pc09iamVjdChvcHRpb25zKXx8VXRpbHMuaXNTdHJpbmcob3B0aW9ucykpKXtcclxuXHRcdFx0VXRpbHMuZXJyb3IoJ1RoZSBzZWNvbmQgcGFyYW1ldGVyIG9mIE1vZGVsLnVwZGF0ZSBzaG91bGQgYmUgXCJPYmplY3RcIiBvciBcIlN0cmluZ1wiLicpXHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGZvciAodmFyIGtleSBpbiBkYXRhKSB7XHJcblx0XHRcdGl0ZW1zLnB1c2goYCR7a2V5fT0nJHtkYXRhW2tleV19J2ApO1xyXG5cdFx0fTtcclxuXHRcdFxyXG5cdFx0aWYgKG9wdGlvbnMgPT0gJycpIHtcclxuXHRcdFx0c3FsID0gYFVQREFURSAnJHt0aGlzLm5hbWV9JyBTRVQgJHtpdGVtcy5qb2luKCl9YDtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHNxbCA9IGBVUERBVEUgJHt0aGlzLm5hbWV9IFNFVCAke2l0ZW1zLmpvaW4oKX0gV0hFUkUgJHtvcHRpb25zfWA7XHJcblx0XHR9O1xyXG5cdFx0VXRpbHMubG9nKGBbdXBkYXRlXTogJHtzcWx9YCk7XHJcblx0XHRcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdHBsdXMuc3FsaXRlLmV4ZWN1dGVTcWwoe1xyXG5cdFx0XHRcdG5hbWU6IGNvbmZpZy5uYW1lLFxyXG5cdFx0XHRcdHNxbDogc3FsLFxyXG5cdFx0XHRcdHN1Y2Nlc3MocmVzKSB7XHJcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZygnW3VwZGF0ZV0gcmVzOicsIHJlcylcclxuXHRcdFx0XHRcdHJlc29sdmUocmVzKVxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0ZmFpbChlcnIpIHtcclxuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ1t1cGRhdGVdIGVycjonLCBlcnIpXHJcblx0XHRcdFx0XHRyZWplY3QoZXJyKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiDliKDpmaTmlbDmja5cclxuXHQgKiBAcGFyYW0ge1N0cmluZ30gb3B0aW9ucyDvvJrlj6/pgInlj4LmlbAg5Yig6Zmk5p2h5Lu2XHJcblx0ICovXHJcblx0ZGVsZXRlKG9wdGlvbnM9JycpIHtcclxuXHRcdC8vIGxldCBzZWxmID0gdGhpcztcclxuXHRcdC8vIHNlbGYucmVwYWlyKCk7XHJcblx0XHR2YXIgc3FsID0gJyc7XHRcdFxyXG5cdFx0XHJcblx0XHRpZighKFV0aWxzLmlzU3RyaW5nKG9wdGlvbnMpfHxVdGlscy5pc0Z1bmN0aW9uKG9wdGlvbnMpKSl7XHJcblx0XHRcdFV0aWxzLmVycm9yKCdUaGUgZmlyc3QgcGFyYW1ldGVyIG9mIE1vZGVsLmRlbGV0ZSBzaG91bGQgYmUgXCJPYmplY3RcIiBvciBcIkZ1bmN0aW9uXCIuJylcclxuXHRcdH1cclxuXHJcblx0XHRpZiAob3B0aW9ucyA9PSAnJykge1xyXG5cdFx0XHRzcWwgPSBgREVMRVRFIEZST00gJyR7dGhpcy5uYW1lfSdgO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0c3FsID0gYERFTEVURSBGUk9NICcke3RoaXMubmFtZX0nIFdIRVJFICR7b3B0aW9uc31gO1xyXG5cdFx0fTtcclxuXHRcdFV0aWxzLmxvZyhgW2RlbGV0ZV06ICR7c3FsfWApO1xyXG5cdFx0XHJcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHRwbHVzLnNxbGl0ZS5leGVjdXRlU3FsKHtcclxuXHRcdFx0XHRuYW1lOiBjb25maWcubmFtZSxcclxuXHRcdFx0XHRzcWw6IHNxbCxcclxuXHRcdFx0XHRzdWNjZXNzKHJlcykge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ1tkZWxldGVdIHJlczonLCByZXMpXHJcblx0XHRcdFx0XHRyZXNvbHZlKHJlcylcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGZhaWwoZXJyKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmVycm9yKCdbZGVsZXRlXSBlcnI6JywgZXJyKVxyXG5cdFx0XHRcdFx0cmVqZWN0KGVycilcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gIOmHjeWRveWQjeaIluiAheaWsOWinuWIl1xyXG5cdCAqIEBwYXJhbSB7T2JqZWN0fEFycmF5fFN0cmluZ30gb3B0aW9ucyDlj4LmlbAg5pWw57uE5Li65paw5aKe5aSa5YiXIOWvueixoeS4uuaWsOWinuWNleWIl3thYX0g5a2X56ym5Liy6YeN5ZG95ZCNXHJcblx0ICogQHJldHVybjogXHJcblx0ICovXHJcblx0YXN5bmMgYWx0ZXIob3B0aW9ucykge1xyXG5cdFx0bGV0IHNlbGYgPSB0aGlzO1xyXG5cdFx0Ly8gc2VsZi5yZXBhaXIoKTtcclxuXHRcdGxldCBzcWwgPSAnJztcclxuXHRcdFxyXG5cdFx0aWYoIShVdGlscy5pc09iamVjdChvcHRpb25zKXx8VXRpbHMuaXNBcnJheShvcHRpb25zKXx8VXRpbHMuaXNTdHJpbmcob3B0aW9ucykpKXtcclxuXHRcdFx0VXRpbHMuZXJyb3IoJ1RoZSBmaXJzdCBwYXJhbWV0ZXIgb2YgTW9kZWwuYWx0ZXIgc2hvdWxkIGJlIFwiT2JqZWN0XCIsIFwiQXJyYXlcIiBvciBcIlN0cmluZ1wiLicpXHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGlmIChVdGlscy5pc0FycmF5KG9wdGlvbnMpKSB7IC8vIOaWsOWinuWkmuWIl1xyXG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IG9wdGlvbnMubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRhd2FpdCB0aGlzLmFsdGVyKG9wdGlvbnNbaV0pO1xyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVyblxyXG5cdFx0fSBlbHNlIGlmIChVdGlscy5pc09iamVjdChvcHRpb25zKSkgeyAvLyDmlrDlop7ljZXliJdcclxuXHRcdFx0bGV0IGNvbHVtbiA9IFV0aWxzLnJlc3RyYWluKG9wdGlvbnMubmFtZSwgb3B0aW9ucy5vcHRpb24pO1xyXG5cdFx0XHRzcWwgPSBgQUxURVIgVEFCTEUgJyR7dGhpcy5uYW1lfScgQUREIENPTFVNTiAke2NvbHVtbn1gXHJcblx0XHR9IGVsc2UgaWYgKG9wdGlvbnMuY29uc3RydWN0b3IgPT0gU3RyaW5nKSB7IC8vIOmHjeWRveWQjVxyXG5cdFx0XHRzcWwgPSBgQUxURVIgVEFCTEUgJyR7dGhpcy5uYW1lfScgUkVOQU1FIFRPICcke29wdGlvbnN9J2BcclxuXHRcdH1cclxuXHRcdFV0aWxzLmxvZyhgW2FsdGVyXTogJHtzcWx9YCk7XHJcblx0XHRcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdHBsdXMuc3FsaXRlLnNlbGVjdFNxbCh7XHJcblx0XHRcdFx0bmFtZTogY29uZmlnLm5hbWUsXHJcblx0XHRcdFx0c3FsOiBzcWwsXHJcblx0XHRcdFx0c3VjY2VzcyhyZXMpIHtcclxuXHRcdFx0XHRcdGlmIChvcHRpb25zLmNvbnN0cnVjdG9yID09IFN0cmluZykgeyAvLyDph43lkb3lkI1cclxuXHRcdFx0XHRcdFx0c2VsZi5uYW1lID0gb3B0aW9ucztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKCdbYWx0ZXJdIHJlczonLCByZXMpXHJcblx0XHRcdFx0XHRyZXNvbHZlKHJlcylcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGZhaWwoZXJyKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmVycm9yKCdbYWx0ZXJdIGVycjonLCBlcnIpXHJcblx0XHRcdFx0XHRyZWplY3QoZXJyKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblx0XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIFxyXG5cdCAqIEBwYXJhbSB7TW9kZWx9IG1vZGVsIOWPsyBNb2RlbFxyXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIFxyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdGpvaW4obW9kZWwsIG9wdGlvbnMpIHtcclxuXHRcdC8vIGxldCBzZWxmID0gdGhpcztcclxuXHRcdC8vIHNlbGYucmVwYWlyKCk7XHJcblx0XHRpZiAoIW1vZGVsKSB7XHJcblx0XHRcdFV0aWxzLmVycm9yKCdcIm1vZGVsXCIgY2Fubm90IGJlIGVtcHR5LicpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCFVdGlscy5pc09iamVjdChvcHRpb25zKSkge1xyXG5cdFx0XHRVdGlscy5lcnJvcignVGhlIHR5cGUgb2YgXCJvcHRpb25zXCIgaXMgd3JvbmcsIGl0IHNob3VsZCBiZSBcIk9iamVjdFwiLicpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCFvcHRpb25zLnR5cGUgfHwgIW9wdGlvbnMucHJlZGljYXRlKSB7XHJcblx0XHRcdFV0aWxzLmVycm9yKCdNaXNzaW5nIHJlcXVpcmVkIHBhcmFtZXRlcnMnKTtcclxuXHRcdH1cclxuXHJcblx0XHRsZXQgbGVmdE5hbWUgPSB0aGlzLm5hbWU7XHJcblx0XHRsZXQgcmlnaHROYW1lID0gbW9kZWwubmFtZTtcclxuXHRcdGxldCBsZWZ0VmFsdWUgPSBvcHRpb25zLnByZWRpY2F0ZS5sZWZ0O1xyXG5cdFx0bGV0IHJpZ2h0VmFsdWUgPSBvcHRpb25zLnByZWRpY2F0ZS5yaWdodDtcclxuXHRcdGxldCBjb2xzID0gWycqJ107XHJcblxyXG5cdFx0Y29uc3QgU1FMX01BUCA9IHtcclxuXHRcdFx0Y3Jvc3M6IGBTRUxFQ1QgJHtjb2xzLmpvaW4oKX0gRlJPTSAke2xlZnROYW1lfSBDUk9TUyBKT0lOICR7cmlnaHROYW1lfTtgLFxyXG5cdFx0XHRpbm5lcjogW2BTRUxFQ1QgJHtjb2xzLmpvaW4oKX0gRlJPTSAke2xlZnROYW1lfSBOQVRVUkFMIEpPSU4gJHtyaWdodE5hbWV9YCxcclxuXHRcdFx0YFNFTEVDVCAke2NvbHMuam9pbigpfSBGUk9NICR7bGVmdE5hbWV9ICBJTk5FUiBKT0lOICR7cmlnaHROYW1lfSBPTiAke2xlZnROYW1lfS4ke2xlZnRWYWx1ZX0gPSAke3JpZ2h0TmFtZX0uJHtyaWdodFZhbHVlfWBcclxuXHRcdFx0XSxcclxuXHRcdFx0b3V0ZXI6IGBTRUxFQ1QgJHtjb2xzLmpvaW4oKX0gRlJPTSAke2xlZnROYW1lfSAgT1VURVIgSk9JTiAke3JpZ2h0TmFtZX0gT04gJHtsZWZ0TmFtZX0uJHtsZWZ0VmFsdWV9ID0gJHtyaWdodE5hbWV9LiR7cmlnaHRWYWx1ZX1gXHJcblx0XHR9XHJcblxyXG5cdFx0bGV0IHNxbCA9ICcnO1xyXG5cdFx0aWYgKG9wdGlvbnMudHlwZSA9PSBpbm5lciAmJiAhb3B0aW9ucy5wcmVkaWNhdGUpIHtcclxuXHRcdFx0c3FsID0gU1FMX01BUFtvcHRpb25zLnR5cGVdWzBdO1xyXG5cdFx0fSBlbHNlIGlmIChvcHRpb25zLnR5cGUgPT0gaW5uZXIgJiYgIW9wdGlvbnMucHJlZGljYXRlKSB7XHJcblx0XHRcdHNxbCA9IFNRTF9NQVBbb3B0aW9ucy50eXBlXVsxXTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHNxbCA9IFNRTF9NQVBbb3B0aW9ucy50eXBlXTtcclxuXHRcdH1cclxuXHJcblx0XHRVdGlscy5sb2coYFtqb2luXTogJHtzcWx9YCk7XHJcblx0XHRcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdHBsdXMuc3FsaXRlLnNlbGVjdFNxbCh7XHJcblx0XHRcdFx0bmFtZTogY29uZmlnLm5hbWUsXHJcblx0XHRcdFx0c3FsOiBzcWwsXHJcblx0XHRcdFx0c3VjY2VzcyhyZXMpIHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCdbam9pbl0gcmVzOicsIHJlcylcclxuXHRcdFx0XHRcdHJlc29sdmUocmVzKVxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0ZmFpbChlcnIpIHtcclxuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ1tqb2luXSBlcnI6JywgZXJyKVxyXG5cdFx0XHRcdFx0cmVqZWN0KGVycilcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24g5omn6KGMc3Fs6K+t5Y+lXHJcblx0ICogQHBhcmFtIHtTdHJpbmd9IHNxbCA6IHNxbOivreWPpVxyXG5cdCAqL1xyXG5cdHNxbChzcWwpIHtcclxuXHRcdGlmICghVXRpbHMuaXNTdHJpbmcoc3FsKSkge1xyXG5cdFx0XHRVdGlscy5lcnJvcignXCJUaGUgdHlwZSBvZiBcInNxbFwiIGlzIHdyb25nLCBpdCBzaG91bGQgYmUgXCJTdHJpbmdcIi4nKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ly8gbGV0IHNlbGYgPSB0aGlzO1xyXG5cdFx0Ly8gc2VsZi5yZXBhaXIoKTtcclxuXHJcblx0XHRVdGlscy5sb2coYFtzcWxdOiAke3NxbH1gKTtcclxuXHRcdFxyXG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0cGx1cy5zcWxpdGUuc2VsZWN0U3FsKHtcclxuXHRcdFx0XHRuYW1lOiBjb25maWcubmFtZSxcclxuXHRcdFx0XHRzcWw6IHNxbCxcclxuXHRcdFx0XHRzdWNjZXNzKHJlcykge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ1tzcWxdIHJlczonLCByZXMpXHJcblx0XHRcdFx0XHRyZXNvbHZlKHJlcylcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGZhaWwoZXJyKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmVycm9yKCdbc3FsXSBlcnI6JywgZXJyKVxyXG5cdFx0XHRcdFx0cmVqZWN0KGVycilcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24g5Yik5pat6KGo5piv5ZCm5a2Y5ZyoIFxyXG5cdCAqL1xyXG5cdGluc2VydE1hcERhdGEoYXJyYXlCdWZmZXIpIHtcclxuXHRcdGNvbnNvbGUubG9nKCdhcnJheUJ1ZmZlcicsIGFycmF5QnVmZmVyKVxyXG5cdFx0bGV0IHppcEZpbGVEYXRhID0gdGhpcy5ieXRlQXJyYXlUb0hleFN0cmluZyhhcnJheUJ1ZmZlcilcclxuXHRcdGNvbnNvbGUubG9nKCd6aXBGaWxlRGF0YScsIHppcEZpbGVEYXRhKVxyXG5cdFx0XHJcblx0XHRsZXQgc3FsID0gYElOU0VSVCBJTlRPICdtYXBJbmZvJyAoc2hvcElkLG1hcE5hbWUsemlwSW1hZ2VVcmwsemlwSW1hZ2VNZDUsemlwRmlsZU5hbWUsemlwRmlsZURhdGEpIFxyXG5cdFx0VkFMVUVTICgnMScsJ+i3r+e6v+WbvicsJ2h0dHA6Ly93d3cuYmVzd2VsbC5jb20vZG93bmxvYWQv6b2Q5rqQ5aSn5Y6mX+W3suS/ruaUuS56aXAnLCdNVEV4TVE9PScsJ+m9kOa6kOWkp+WOpl/lt7Lkv67mlLkudGlmJywgeCcke3ppcEZpbGVEYXRhfScpYDtcclxuXHRcdFxyXG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0cGx1cy5zcWxpdGUuZXhlY3V0ZVNxbCh7XHJcblx0XHRcdFx0bmFtZTogY29uZmlnLm5hbWUsXHJcblx0XHRcdFx0c3FsOiBzcWwsXHJcblx0XHRcdFx0c3VjY2VzcyhyZXMpIHtcclxuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKCdbaW5zZXJ0TWFwRGF0YV0gcmVzOicsIHJlcylcclxuXHRcdFx0XHRcdHJlc29sdmUocmVzKVxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0ZmFpbChlcnIpIHtcclxuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ1tpbnNlcnRNYXBEYXRhXSBlcnI6JywgZXJyKVxyXG5cdFx0XHRcdFx0cmVqZWN0KGVycilcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cdFxyXG5cdGJ5dGVBcnJheVRvSGV4U3RyaW5nKGFycmF5QnVmZmVyKSB7IC8vIGNvbnZlcnRzIGJ5dGUgYXJyYXlzIHRvIHN0cmluZ1xyXG5cdFx0bGV0IGksIGosIGlubjtcclxuXHRcdGxldCBoZXggPSBbXCIwXCIsIFwiMVwiLCBcIjJcIiwgXCIzXCIsIFwiNFwiLCBcIjVcIiwgXCI2XCIsIFwiN1wiLCBcIjhcIiwgXCI5XCIsIFwiQVwiLCBcIkJcIiwgXCJDXCIsIFwiRFwiLCBcIkVcIiwgXCJGXCJdO1xyXG5cdFx0bGV0IG91dCA9IFwiXCI7XHJcblx0XHJcblx0XHRmb3IgKGogPSAwOyBqIDwgYXJyYXlCdWZmZXIubGVuZ3RoOyArK2opIHtcclxuXHRcdFx0aW5uID0gYXJyYXlCdWZmZXJbal0gJiAweGZmO1xyXG5cdFx0XHRpID0gKGlubiA+Pj4gNCkgJiAweDBmO1xyXG5cdFx0XHRvdXQgKz0gaGV4W2ldO1xyXG5cdFx0XHRpID0gaW5uICYgMHgwZjtcclxuXHRcdFx0b3V0ICs9IGhleFtpXTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBvdXQ7XHJcblx0fVxyXG5cdFxyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiDliKTmlq3ooajmmK/lkKblrZjlnKggXHJcblx0ICovXHJcblx0aXNFeGlzdCgpIHtcclxuXHRcdGxldCBzcWwgPSBgU0VMRUNUIGNvdW50KCopIEFTIGlzRXhpc3QgRlJPTSBzcWxpdGVfbWFzdGVyIFdIRVJFIHR5cGU9J3RhYmxlJyBBTkQgbmFtZT0nJHt0aGlzLm5hbWV9J2A7XHJcblx0XHQvLyBVdGlscy5sb2coYFtpc0V4aXN0XSAke2NvbmZpZy5uYW1lfWApO1xyXG5cdFx0Ly8gVXRpbHMubG9nKGBbaXNFeGlzdF0gJHtzcWx9YCk7XHJcblx0XHRcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdHBsdXMuc3FsaXRlLnNlbGVjdFNxbCh7XHJcblx0XHRcdFx0bmFtZTogY29uZmlnLm5hbWUsXHJcblx0XHRcdFx0c3FsOiBzcWwsXHJcblx0XHRcdFx0c3VjY2VzcyhyZXMpIHtcclxuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKCdbaXNFeGlzdF0gcmVzOicsIHJlcylcclxuXHRcdFx0XHRcdGlmIChyZXNbMF0uaXNFeGlzdCA9PSAxKVxyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhgW2lzRXhpc3RdICR7Y29uZmlnLm5hbWV9IOW3suWtmOWcqGApO1xyXG5cdFx0XHRcdFx0ZWxzZVxyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhgW2lzRXhpc3RdICR7Y29uZmlnLm5hbWV9IOS4jeWtmOWcqGApO1xyXG5cdFx0XHRcdFx0cmVzb2x2ZShyZXMpXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRmYWlsKGVycikge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5lcnJvcignW2lzRXhpc3RdIGVycjonLCBlcnIpXHJcblx0XHRcdFx0XHRyZWplY3QoZXJyKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblx0XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIOWIoOmZpOaVsOaNruihqCAqKuS4jeaOqOiNkCoqXHJcblx0ICovXHJcblx0ZHJvcCgpIHtcclxuXHRcdHZhciBzcWwgPSBgRFJPUCBUQUJMRSAnJHt0aGlzLm5hbWV9J2A7XHJcblx0XHQvLyBsZXQgc2VsZiA9IHRoaXM7XHJcblx0XHQvLyBzZWxmLnJlcGFpcigpO1xyXG5cclxuXHRcdFV0aWxzLmxvZyhgW2Ryb3BdOiAke3NxbH1gKTtcclxuXHRcdFxyXG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0cGx1cy5zcWxpdGUuc2VsZWN0U3FsKHtcclxuXHRcdFx0XHRuYW1lOiBjb25maWcubmFtZSxcclxuXHRcdFx0XHRzcWw6IHNxbCxcclxuXHRcdFx0XHRzdWNjZXNzKHJlcykge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ1tkcm9wXSByZXM6JywgcmVzKVxyXG5cdFx0XHRcdFx0cmVzb2x2ZShyZXMpXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRmYWlsKGVycikge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5lcnJvcignW2Ryb3BdIGVycjonLCBlcnIpXHJcblx0XHRcdFx0XHRyZWplY3QoZXJyKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiDliJvlu7rmlbDmja7ooaggKirkuI3mjqjojZAqKlxyXG5cdCAqL1xyXG5cdGNyZWF0ZSgpIHtcclxuXHRcdC8vIGxldCBzZWxmID0gdGhpcztcclxuXHRcdGxldCBzcWwgPSBVdGlscy5tb2RlbFNxbCh0aGlzLm5hbWUsIHRoaXMub3B0aW9ucyk7XHJcblx0XHRVdGlscy5sb2coYFtjcmVhdGVdOiAke3NxbH1gKTtcclxuXHRcdFxyXG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0cGx1cy5zcWxpdGUuc2VsZWN0U3FsKHtcclxuXHRcdFx0XHRuYW1lOiBjb25maWcubmFtZSxcclxuXHRcdFx0XHRzcWw6IHNxbCxcclxuXHRcdFx0XHRzdWNjZXNzKHJlcykge1xyXG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ1tjcmVhdGVdIHJlczonLCByZXMpXHJcblx0XHRcdFx0XHRyZXNvbHZlKHJlcylcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGZhaWwoZXJyKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmVycm9yKCdbY3JlYXRlXSBlcnI6JywgZXJyKVxyXG5cdFx0XHRcdFx0cmVqZWN0KGVycilcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHR0b1N0cmluZygpIHtcclxuXHRcdHJldHVybiBgWyR7dGhpcy5uYW1lfSBNb2RlbF1gO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgcmVwYWlyKCkge1xyXG5cdFx0bGV0IHNlbGYgPSB0aGlzO1xyXG5cdFx0XHJcblx0XHR0cnkge1xyXG5cdFx0XHRsZXQgcmVzID0gYXdhaXQgc2VsZi5pc0V4aXN0KClcclxuXHRcdFx0aWYgKCFyZXNbMF0uaXNFeGlzdCkge1xyXG5cdFx0XHRcdGF3YWl0IHNlbGYuY3JlYXRlKCk7XHJcblx0XHRcdH1cclxuXHRcdH0gY2F0Y2goZSkge1xyXG5cdFx0XHRjb25zb2xlLmVycm9yKGUpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0fVxyXG5cclxufVxyXG5cclxuXHJcbi8vIOWNleS+i+aooeW8j1xyXG5leHBvcnQgY2xhc3MgdXNxbGl0ZSB7XHJcblx0LyoqXHJcblx0ICog5p6E6YCg5Ye95pWwXHJcblx0ICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMg5pWw5o2u5bqT6YWN572u5L+h5oGvICpcclxuXHQgKiB7bmFtZTogJ2RlbW8nLCBwYXRoOiAnX2RvYy9kZW1vLmRiJ31cclxuXHQgKiAtIG5hbWUg5pWw5o2u5bqT5ZCN56ewKlxyXG5cdCAqIC0gcGF0aCDmlbDmja7lupPot6/lvoRcclxuXHQgKi9cclxuXHRjb25zdHJ1Y3RvcihvcHRpb25zKSB7XHJcblx0XHRjb25zb2xlLndhcm4oJ05vIGluc3RhbnRpYXRpb24nKTtcclxuXHR9XHJcblx0XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIOmTvuaOpeaVsOaNruW6k1xyXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIOaVsOaNruW6k+mFjee9ruS/oeaBryAqXHJcblx0ICoge25hbWU6ICdkZW1vJywgcGF0aDogJ19kb2MvZGVtby5kYid9XHJcblx0ICogLSBuYW1lIOaVsOaNruW6k+WQjeensCpcclxuXHQgKiAtIHBhdGgg5pWw5o2u5bqT6Lev5b6EXHJcblx0ICovXHJcblx0c3RhdGljIGNvbm5lY3Qob3B0aW9ucykge1xyXG5cdFx0Y29uZmlnLm5hbWUgPSBvcHRpb25zLm5hbWU7IC8vIOaVsOaNruW6k+WQjeensCpcclxuXHRcdGNvbmZpZy5wYXRoID0gb3B0aW9ucy5wYXRoOyAvLyDmlbDmja7lupPlkI3np7AqXHJcblxyXG5cdFx0aWYgKGNvbmZpZy5pc0Nvbm5lY3QpIHtcclxuXHRcdFx0Y29uc29sZS53YXJuKCdbY29ubmVjdF0g5pWw5o2u5bqT5bey6L+e5o6l77yM5peg6ZyA6YeN6L+eJylcclxuXHRcdFx0cmV0dXJuXHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdHBsdXMuc3FsaXRlLm9wZW5EYXRhYmFzZSh7XHJcblx0XHRcdFx0bmFtZTogY29uZmlnLm5hbWUsIC8v5pWw5o2u5bqT5ZCN56ewXHJcblx0XHRcdFx0cGF0aDogY29uZmlnLnBhdGgsIC8v5pWw5o2u5bqT5Zyw5Z2AXHJcblx0XHRcdFx0c3VjY2VzcyhyZXMpIHtcclxuXHRcdFx0XHRcdGNvbmZpZy5pc0Nvbm5lY3QgPSB0cnVlO1xyXG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ1tjb25uZWN0XSByZXM6JywgcmVzKVxyXG5cdFx0XHRcdFx0cmVzb2x2ZShyZXMpXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRmYWlsKGVycikge1xyXG5cdFx0XHRcdFx0aWYgKGUuY29kZSA9PSAtMTQwMikge1xyXG5cdFx0XHRcdFx0XHRjb25maWcuaXNDb25uZWN0ID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS53YXJuKCdbY29ubmVjdF0gd2FybjonLCBlcnIpXHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRjb25maWcuaXNDb25uZWN0ID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ1tjb25uZWN0XSBlcnI6JywgZXJyKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0cmVqZWN0KGVycilcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cdFxyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiDmlq3lvIDmlbDmja7lupNcclxuXHQgKiBAcGFyYW0geyp9IGNhbGxiYWNrIFxyXG5cdCAqL1xyXG5cdHN0YXRpYyBjbG9zZSgpIHtcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdHBsdXMuc3FsaXRlLmNsb3NlRGF0YWJhc2Uoe1xyXG5cdFx0XHRcdG5hbWU6IGNvbmZpZy5uYW1lLCAvL+aVsOaNruW6k+WQjeensFxyXG5cdFx0XHRcdHBhdGg6IGNvbmZpZy5wYXRoLCAvL+aVsOaNruW6k+WcsOWdgFxyXG5cdFx0XHRcdHN1Y2Nlc3MocmVzKSB7XHJcblx0XHRcdFx0XHRjb25maWcuaXNDb25uZWN0ID0gZmFsc2U7XHJcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZygnW2Nsb3NlXSByZXM6JywgcmVzKVxyXG5cdFx0XHRcdFx0cmVzb2x2ZShyZXMpXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRmYWlsKGVycikge1x0XHRcdFx0XHRcclxuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ1tjbG9zZV0gZXJyOicsIGVycilcclxuXHRcdFx0XHRcdHJlamVjdChlcnIpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24g5Yib5bu6IE1vZGVsIOWvueixoVxyXG5cdCAqIEBleGFtcGxlXHJcblx0ICogdXNxbGl0ZS5tb2RlbCgnZGVtbycsXHJcblx0ICoge1xyXG5cdCAqIFx0XHRpZDoge1xyXG5cdCAqIFx0XHRcdHR5cGU6IE51bWJlclxyXG5cdCAqIFx0XHR9LFxyXG5cdCAqIFx0XHRjb250ZW50OiBTdHJpbmdcclxuXHQgKiB9KVxyXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIOaVsOaNruihqOWQjeensCAqXHJcblx0ICogQHBhcmFtIHtTdHJpbmd9IG9wdGlvbnMg5Y+C5pWw6YWN572uICpcclxuXHQgKiBAcmV0dXJucyDov5Tlm54gTW9kZWwg5a+56LGhXHJcblx0ICovXHJcblx0c3RhdGljIGFzeW5jIG1vZGVsKG5hbWUsIG9wdGlvbnMpIHtcclxuXHRcdFV0aWxzLmxvZyhjb25maWcpO1xyXG5cdFx0Ly8gcmV0dXJuIG5ldyBNb2RlbChuYW1lLCBvcHRpb25zKTtcclxuXHRcdGxldCBtb2RlbCA9IG5ldyBNb2RlbCgpO1xyXG5cdFx0YXdhaXQgbW9kZWwuaW5pdChuYW1lLCBvcHRpb25zKVxyXG5cdFx0cmV0dXJuIG1vZGVsXHJcblx0fVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///51\n");
  11027. /***/ }),
  11028. /* 52 */
  11029. /*!***************************************************************!*\
  11030. !*** ./node_modules/@babel/runtime/helpers/classCallCheck.js ***!
  11031. \***************************************************************/
  11032. /*! no static exports found */
  11033. /***/ (function(module, exports) {
  11034. function _classCallCheck(instance, Constructor) {
  11035. if (!(instance instanceof Constructor)) {
  11036. throw new TypeError("Cannot call a class as a function");
  11037. }
  11038. }
  11039. module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;
  11040. /***/ }),
  11041. /* 53 */
  11042. /*!************************************************************!*\
  11043. !*** ./node_modules/@babel/runtime/helpers/createClass.js ***!
  11044. \************************************************************/
  11045. /*! no static exports found */
  11046. /***/ (function(module, exports, __webpack_require__) {
  11047. var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ 3);
  11048. function _defineProperties(target, props) {
  11049. for (var i = 0; i < props.length; i++) {
  11050. var descriptor = props[i];
  11051. descriptor.enumerable = descriptor.enumerable || false;
  11052. descriptor.configurable = true;
  11053. if ("value" in descriptor) descriptor.writable = true;
  11054. Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);
  11055. }
  11056. }
  11057. function _createClass(Constructor, protoProps, staticProps) {
  11058. if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  11059. if (staticProps) _defineProperties(Constructor, staticProps);
  11060. Object.defineProperty(Constructor, "prototype", {
  11061. writable: false
  11062. });
  11063. return Constructor;
  11064. }
  11065. module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports;
  11066. /***/ }),
  11067. /* 54 */
  11068. /*!***********************************************************!*\
  11069. !*** D:/Work2/Orienteering/TrackOffical/utils/ouu-nfc.js ***!
  11070. \***********************************************************/
  11071. /*! no static exports found */
  11072. /***/ (function(module, exports, __webpack_require__) {
  11073. "use strict";
  11074. eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n// 包路径\nvar package_NdefRecord = 'android.nfc.NdefRecord';\nvar package_NdefMessage = 'android.nfc.NdefMessage';\nvar package_TECH_DISCOVERED = 'android.nfc.action.TECH_DISCOVERED';\nvar package_Intent = 'android.content.Intent';\nvar package_Activity = 'android.app.Activity';\nvar package_PendingIntent = 'android.app.PendingIntent';\nvar package_IntentFilter = 'android.content.IntentFilter';\nvar package_NfcAdapter = 'android.nfc.NfcAdapter';\nvar package_Ndef = 'android.nfc.tech.Ndef';\nvar package_NdefFormatable = 'android.nfc.tech.NdefFormatable';\nvar package_Parcelable = 'android.os.Parcelable';\nvar package_String = 'java.lang.String';\nvar NfcAdapter;\nvar NdefRecord;\nvar NdefMessage;\nvar Uri;\nvar readyWriteData = false;\nvar readyRead = false;\nvar readySetPwd = false;\nvar readyDelPwd = false;\nvar readyGetNfcState = false;\nvar readyWriteAndLock = false;\nvar noNFC = false;\nvar techListsArray = [['android.nfc.tech.IsoDep'], ['android.nfc.tech.NfcA'], ['android.nfc.tech.NfcB'], ['android.nfc.tech.NfcF'], ['android.nfc.tech.Nfcf'], ['android.nfc.tech.NfcV'], ['android.net.Uri'], ['android.nfc.tech.NdefFormatable'], ['android.nfc.tech.MifareClassi'], ['android.nfc.tech.MifareUltralight']];\nvar UriPrefixMap = [];\nUriPrefixMap[0x00] = '';\nUriPrefixMap[0x01] = 'http://www.';\nUriPrefixMap[0x02] = 'https://www.';\nUriPrefixMap[0x03] = 'http://';\nUriPrefixMap[0x04] = 'https://';\nUriPrefixMap[0x05] = 'tel:';\nUriPrefixMap[0x06] = 'mailto:';\nUriPrefixMap[0x07] = 'ftp://anonymous:anonymous@';\nUriPrefixMap[0x08] = 'ftp://ftp.';\nUriPrefixMap[0x09] = 'ftps://';\nvar writeUri = 'http://www.beswell.com'; // 要写入的数据\nvar readResult = ''; // NFC读取到的数据\nvar pwdBytes = [1, 2, 3, 4]; // 待写入的密码\nvar pwdDefault = [0xFF, 0xFF, 0xFF, 0xFF]; // 清除密码后设置的默认值\nvar _default = {\n listenNFCStatus: function listenNFCStatus() {\n var that = this;\n try {\n var main = plus.android.runtimeMainActivity();\n var Intent = plus.android.importClass('android.content.Intent');\n var Activity = plus.android.importClass('android.app.Activity');\n var PendingIntent = plus.android.importClass('android.app.PendingIntent');\n var IntentFilter = plus.android.importClass('android.content.IntentFilter');\n Uri = plus.android.importClass('android.net.Uri');\n NfcAdapter = plus.android.importClass('android.nfc.NfcAdapter');\n var nfcAdapter = NfcAdapter.getDefaultAdapter(main);\n if (nfcAdapter == null) {\n uni.showToast({\n title: '设备不支持NFC!',\n icon: 'none'\n });\n noNFC = true;\n return;\n }\n if (!nfcAdapter.isEnabled()) {\n uni.showToast({\n title: '请在系统设置中先启用NFC功能!',\n icon: 'none'\n });\n noNFC = true;\n return;\n } else {\n noNFC = false;\n }\n var intent = new Intent(main, main.getClass());\n intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);\n var pendingIntent = PendingIntent.getActivity(main, 0, intent, 0);\n var ndef = new IntentFilter(\"android.nfc.action.TECH_DISCOVERED\");\n ndef.addDataType(\"*/*\");\n var intentFiltersArray = [ndef];\n plus.globalEvent.addEventListener('newintent', function () {\n __f__(\"log\", 'newintent running', \" at utils/ouu-nfc.js:97\");\n // 监听 NFC\n setTimeout(function () {\n that.nfcRuning();\n }, 100);\n });\n plus.globalEvent.addEventListener('pause', function (e) {\n __f__(\"log\", 'pause running', \" at utils/ouu-nfc.js:104\");\n if (nfcAdapter) {\n //关闭前台调度系统\n //恢复默认状态\n nfcAdapter.disableForegroundDispatch(main);\n }\n });\n plus.globalEvent.addEventListener('resume', function (e) {\n __f__(\"log\", 'resume running', \" at utils/ouu-nfc.js:112\");\n if (nfcAdapter) {\n //开启前台调度系统\n nfcAdapter.enableForegroundDispatch(main, pendingIntent, intentFiltersArray, techListsArray);\n }\n });\n nfcAdapter.enableForegroundDispatch(main, pendingIntent, intentFiltersArray, techListsArray);\n } catch (e) {\n __f__(\"error\", e, \" at utils/ouu-nfc.js:121\");\n }\n },\n nfcRuning: function nfcRuning() {\n NdefRecord = plus.android.importClass(\"android.nfc.NdefRecord\");\n NdefMessage = plus.android.importClass(\"android.nfc.NdefMessage\");\n var main = plus.android.runtimeMainActivity();\n var intent = main.getIntent();\n // let intent = plus.android.invoke(main, 'getIntent');\n var that = this;\n __f__(\"log\", \"action type:\" + intent.getAction(), \" at utils/ouu-nfc.js:132\");\n if (package_TECH_DISCOVERED == intent.getAction()) {\n if (readyWriteData) {\n that.write(intent);\n readyWriteData = false;\n } else if (readyRead) {\n that.read(intent);\n readyRead = false;\n } else if (readySetPwd) {\n that.setPassword(intent);\n readySetPwd = false;\n } else if (readyDelPwd) {\n that.delPassword(intent);\n readyDelPwd = false;\n } else if (readyGetNfcState) {\n that.getState(intent);\n readyGetNfcState = false;\n } else if (readyWriteAndLock) {\n var result = that.write(intent);\n if (result == 999) {\n // 已设置密码保护\n readyWriteAndLock = false;\n return;\n }\n setTimeout(function () {\n that.setPassword(intent);\n }, 100);\n readyWriteAndLock = false;\n } else {\n that.read(intent);\n readyRead = false;\n }\n }\n },\n write: function write(intent) {\n try {\n toast('请勿移开标签 正在写入...');\n __f__(\"log\", \"NFC写入内容 writeUri = \" + writeUri, \" at utils/ouu-nfc.js:170\");\n // let textBytes = plus.android.invoke(writeUri, \"getBytes\");\n var uri = Uri.parse(writeUri);\n var message = new NdefMessage([new NdefRecord.createUri(uri)]);\n __f__(\"log\", \"==== message ===>\", message, \" at utils/ouu-nfc.js:174\");\n var Ndef = plus.android.importClass('android.nfc.tech.Ndef');\n var NdefFormatable = plus.android.importClass('android.nfc.tech.NdefFormatable');\n var tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);\n var MifareUltralight = plus.android.importClass('android.nfc.tech.MifareUltralight');\n var mfc = MifareUltralight.get(tag);\n if (mfc != null) {\n mfc.connect();\n var responseAuth0 = mfc.readPages(0x29);\n __f__(\"log\", \"responseAuth0=\" + JSON.stringify(responseAuth0), \" at utils/ouu-nfc.js:186\");\n if (responseAuth0[3] == 0x00) {\n toast('已设置密码保护,无法写入数据');\n return 999;\n }\n mfc.close();\n }\n var ndef = Ndef.get(tag);\n if (ndef != null) {\n // 待写入的数据长度\n var size = message.toByteArray().length;\n ndef.connect();\n if (!ndef.isWritable()) {\n ndef.close();\n toast('tag不允许写入!');\n return;\n }\n if (ndef.getMaxSize() < size) {\n ndef.close();\n toast('文件大小超出容量!');\n return;\n }\n ndef.writeNdefMessage(message);\n ndef.close();\n toast('写入数据成功!');\n return;\n } else {\n var format = NdefFormatable.get(tag);\n if (format != null) {\n try {\n format.connect();\n format.format(message);\n format.close();\n toast('格式化tag并且写入message');\n return;\n } catch (e) {\n toast('格式化tag失败.');\n return;\n }\n } else {\n toast('Tag不支持NDEF');\n return;\n }\n }\n } catch (e) {\n toast('写入失败');\n __f__(\"log\", \"error=\" + e, \" at utils/ouu-nfc.js:236\");\n }\n },\n read: function read(intent) {\n toast('请勿移开标签正在读取数据');\n var that = this;\n // NFC id\n var bytesId = intent.getByteArrayExtra(NfcAdapter.EXTRA_ID);\n var nfc_id = that.byteArrayToHexString(bytesId);\n // console.log('nfc_id: ' + nfc_id);\n // let Parcelable = plus.android.importClass(\"android.os.Parcelable\");\n\n // tmp add\n // let Tag = plus.android.importClass('android.nfc.Tag');\n // let Ndef = plus.android.importClass('android.nfc.tech.Ndef');\n // let tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);\n // let ndef = Ndef.get(tag);\n // let nfc_type = that.byteArrayToHexString(ndef.getType());\n // console.log('nfc_type:\"' + nfc_type + '\"')\n\n var rawmsgs = intent.getParcelableArrayExtra(\"android.nfc.extra.NDEF_MESSAGES\");\n // let rawmsgs = plus.android.invoke(intent, 'getParcelableArrayExtra', 'android.nfc.extra.NDEF_MESSAGES');\n // let rawmsgs = intent.getParcelableArrayExtra();\n\n if (rawmsgs != null && rawmsgs.length > 0) {\n // console.log('rawmsgs:\"' + JSON.stringify(rawmsgs) + '\"')\n var records = rawmsgs[0].getRecords();\n // let records = plus.android.invoke(rawmsgs[0], 'getRecords');\n var tnf = records[0].getTnf();\n // let tnf = plus.android.invoke(records[0], 'getTnf');\n // console.log('tnf = ' + JSON.stringify(tnf))\n // console.log('TNF_WELL_KNOWN = ' + JSON.stringify(NdefRecord.TNF_WELL_KNOWN))\n // console.log('TNF_ABSOLUTE_URI = ' + JSON.stringify(NdefRecord.TNF_ABSOLUTE_URI))\n\n var recordType = records[0].getType();\n // console.log('recordType = ' + JSON.stringify(recordType))\n // console.log('RTD_URI = ' + JSON.stringify(NdefRecord.RTD_URI))\n\n var result = records[0].getPayload();\n var data = '';\n if (tnf.__UUID__ == NdefRecord.TNF_WELL_KNOWN.value) {\n __f__(\"log\", 'tnf == TNF_WELL_KNOWN', \" at utils/ouu-nfc.js:279\");\n if (recordType == NdefRecord.RTD_URI) {\n // URI based on payload\n // 在URI Record Payload中,第一个字节指明URI的ID码,对应 UriPrefixMap\n __f__(\"log\", 'recordType == NdefRecord.RTD_URI', \" at utils/ouu-nfc.js:282\");\n // console.log('result[0]:\"' + result[0] + '\"')\n\n var uriPrefix = UriPrefixMap[result[0]];\n __f__(\"log\", 'uriPrefix:\"' + uriPrefix + '\"', \" at utils/ouu-nfc.js:286\");\n result.shift(); // 去除URI的ID码\n\n data = plus.android.newObject(\"java.lang.String\", result);\n data = uriPrefix + data;\n }\n // } else if (tnf.__UUID__ == NdefRecord.TNF_ABSOLUTE_URI.value) {\n // \tconsole.log('tnf == TNF_ABSOLUTE_URI')\n } else {\n __f__(\"log\", 'tnf:\"' + tnf + '\"', \" at utils/ouu-nfc.js:295\");\n data = plus.android.newObject(\"java.lang.String\", result);\n }\n\n // console.log('result:\"' + result + '\"')\n // console.log('NFC 数据:\"' + data + '\"')\n // toast('NFC 数据:' + data);\n // plus.runtime.openURL(data, function(res) { \n // \tconsole.log(\"打开浏览器路径失败!----\", res); \n // }); \n // return data;\n readResult = {\n id: nfc_id,\n data: data\n };\n } else {\n // toast('没有读取到数据');\n readResult = {\n id: nfc_id,\n data: ''\n };\n }\n __f__(\"log\", 'NFC 数据:' + JSON.stringify(readResult), \" at utils/ouu-nfc.js:317\");\n uni.$emit('NfcRead', readResult);\n },\n setPassword: function setPassword(intent) {\n try {\n toast('请勿移开标签 正在设置密码...');\n var MifareUltralight = plus.android.importClass('android.nfc.tech.MifareUltralight');\n var tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);\n var mfc = MifareUltralight.get(tag);\n if (mfc != null) {\n mfc.connect();\n\n // let response = plus.android.invoke(mfc, 'transceive', [0x1B, pwdDefault[0], pwdDefault[1], pwdDefault[2], pwdDefault[3]])\n // // let response = mfc.transceive([0x1B, pwdDefault[0], pwdDefault[1], pwdDefault[2], pwdDefault[3]])\n // console.log(\"询问登录 response=\" + JSON.stringify(response));\n\n //pack置为默认\n mfc.writePage(0x2C, [0x00, 0x00, 0x00, 0x00]);\n\n // set PWD: 设置密码为用户设置的密码\n mfc.writePage(0x2B, pwdBytes);\n\n // 设置Auth0 auth0实际控制是否启用密码保护 设置为00表示从第0页开始提供保护\n // let responseAuth0 = mfc.readPages(0x29)\n // console.log(\"responseAuth0=\" + JSON.stringify(responseAuth0));\n mfc.writePage(0x29, [0x04, 0x00, 0x00, 0x00]);\n mfc.close();\n toast('设置密码成功!');\n return;\n } else {\n toast('Tag不支持MifareUltralight');\n return;\n }\n } catch (e) {\n toast('设置密码失败');\n __f__(\"log\", \"设置密码失败 error=\" + e, \" at utils/ouu-nfc.js:355\");\n }\n },\n delPassword: function delPassword(intent) {\n try {\n toast('请勿移开标签 正在清除密码...');\n var MifareUltralight = plus.android.importClass('android.nfc.tech.MifareUltralight');\n var tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);\n var mfc = MifareUltralight.get(tag);\n // let mfc2 = plus.android.invoke(MifareUltralight, 'get', tag) // to do \n\n if (mfc != null) {\n mfc.connect();\n\n //js不支持无符号整数,无法传输大于0X7F的值\n // mfc.writePage(0x08, [0x01, 0x02, 0x03, 0x04])\n // mfc.writePage(0x09, [0x7D, 0x7E, 0x7F, (0x80>>>0)])\n // mfc.writePage(0x0A, [0x80>>>0, 0x81>>>0, 0xFE>>>0, 0xFF>>>0])\n // return\n\n //用用户设置的密码询问登录\n // let response = plus.android.invoke(mfc, 'transceive', [0x1B, pwdBytes[0], pwdBytes[1], pwdBytes[2], pwdBytes[3]])\n var response = mfc.transceive([0x1B, pwdBytes[0], pwdBytes[1], pwdBytes[2], pwdBytes[3]]);\n __f__(\"log\", \"询问登录 response=\" + JSON.stringify(response), \" at utils/ouu-nfc.js:379\");\n if (response != null) {\n // if (response[0] == 0x00 && response[1] == 0x00) {\n if (response == '0,0') {\n __f__(\"log\", \"密码校验正确\", \" at utils/ouu-nfc.js:384\");\n } else {\n mfc.close();\n __f__(\"log\", \"密码校验失败\", \" at utils/ouu-nfc.js:387\");\n toast('密码校验失败');\n return;\n }\n } else {\n mfc.close();\n __f__(\"log\", \"询问登录 response 无效\", \" at utils/ouu-nfc.js:393\");\n toast('密码验证失败 或 未设置密码');\n return;\n }\n\n //pack置为默认\n mfc.writePage(0x2C, [0x00, 0x00, 0x00, 0x00]);\n\n // set PWD: 设置密码为默认密码\n mfc.writePage(0x2B, pwdDefault);\n\n // set AUTHLIM:\n //将AUTHLIM(第42页,字节0,位2-0)设置为失败的最大密码验证尝试次数\n mfc.writePage(0x2A, [0x00, 0x05, 0x00, 0x00]);\n\n // 设置Auth0 auth0实际控制是否启用密码保护 设置为FF表示禁用密码保护\n // let responseAuth0 = mfc.readPages(0x29)\n // console.log(\"responseAuth0=\" + JSON.stringify(responseAuth0));\n // mfc.writePage(0x29, [0x04, 0x00, 0x00, 0xFF])\n //js不支持无符号整数,无法传输大于0X7F的值\n mfc.writePage(0x29, [0x04, 0x00, 0x00, 0x7F]);\n mfc.close();\n toast('清除密码成功!');\n return;\n } else {\n toast('Tag不支持MifareUltralight');\n return;\n }\n } catch (e) {\n toast('清除密码失败');\n __f__(\"log\", \"清除密码失败 error=\" + e, \" at utils/ouu-nfc.js:424\");\n }\n },\n getState: function getState(intent) {\n try {\n toast('请勿移开标签 正在获取NFC状态...');\n var MifareUltralight = plus.android.importClass('android.nfc.tech.MifareUltralight');\n var tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);\n var mfc = MifareUltralight.get(tag);\n if (mfc != null) {\n mfc.connect();\n var responseAuth0 = mfc.readPages(0x29);\n __f__(\"log\", \"responseAuth0=\" + JSON.stringify(responseAuth0), \" at utils/ouu-nfc.js:439\");\n if (responseAuth0[3] == 0x00) {\n toast('已设置密码保护');\n } else if (responseAuth0[3] == 0x7F || responseAuth0[3] == 0xFF || responseAuth0[3] == -1) {\n toast('尚未设置密码保护');\n } else {\n toast('NFC状态未知:' + JSON.stringify(responseAuth0));\n }\n mfc.close();\n return;\n } else {\n toast('Tag不支持MifareUltralight');\n return;\n }\n } catch (e) {\n toast('获取NFC状态失败');\n __f__(\"log\", \"获取NFC状态失败 error=\" + e, \" at utils/ouu-nfc.js:457\");\n }\n },\n byteArrayToHexString: function byteArrayToHexString(inarray) {\n // converts byte arrays to string \n var i, j, inn;\n var hex = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\"];\n var out = \"\";\n for (j = 0; j < inarray.length; ++j) {\n inn = inarray[j] & 0xff;\n i = inn >>> 4 & 0x0f;\n out += hex[i];\n i = inn & 0x0f;\n out += hex[i];\n }\n return out;\n },\n writeData: function writeData() {\n if (noNFC) {\n toast('请检查设备是否支持并开启 NFC 功能!');\n return;\n }\n // 监听事件,触发条件\n readyWriteData = true;\n toast('请将NFC标签靠近!');\n },\n readData: function readData() {\n if (noNFC) {\n toast('请检查设备是否支持并开启 NFC 功能!');\n return;\n }\n // 监听事件,触发条件\n readyRead = true;\n toast('请将NFC标签靠近!');\n },\n setPwdData: function setPwdData() {\n if (noNFC) {\n toast('请检查设备是否支持并开启 NFC 功能!');\n S;\n return;\n }\n // 监听事件,触发条件\n readySetPwd = true;\n toast('请将NFC标签靠近!');\n },\n delPwdData: function delPwdData() {\n if (noNFC) {\n toast('请检查设备是否支持并开启 NFC 功能!');\n return;\n }\n // 监听事件,触发条件\n readyDelPwd = true;\n toast('请将NFC标签靠近!');\n },\n getNfcState: function getNfcState() {\n if (noNFC) {\n toast('请检查设备是否支持并开启 NFC 功能!');\n return;\n }\n // 监听事件,触发条件\n readyGetNfcState = true;\n toast('请将NFC标签靠近!');\n },\n writeAndLock: function writeAndLock() {\n if (noNFC) {\n toast('请检查设备是否支持并开启 NFC 功能!');\n return;\n }\n // 监听事件,触发条件\n readyWriteAndLock = true;\n toast('请将NFC标签靠近!');\n },\n // 输入文本改变\n inputChanage: function inputChanage(res) {\n __f__(\"log\", \"正在编辑写入数据...\", res, \" at utils/ouu-nfc.js:530\");\n writeUri = res;\n }\n};\nexports.default = _default;\nfunction toast(content) {\n uni.showToast({\n title: content,\n icon: 'none'\n });\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 27)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdXRpbHMvb3V1LW5mYy5qcyJdLCJuYW1lcyI6WyJwYWNrYWdlX05kZWZSZWNvcmQiLCJwYWNrYWdlX05kZWZNZXNzYWdlIiwicGFja2FnZV9URUNIX0RJU0NPVkVSRUQiLCJwYWNrYWdlX0ludGVudCIsInBhY2thZ2VfQWN0aXZpdHkiLCJwYWNrYWdlX1BlbmRpbmdJbnRlbnQiLCJwYWNrYWdlX0ludGVudEZpbHRlciIsInBhY2thZ2VfTmZjQWRhcHRlciIsInBhY2thZ2VfTmRlZiIsInBhY2thZ2VfTmRlZkZvcm1hdGFibGUiLCJwYWNrYWdlX1BhcmNlbGFibGUiLCJwYWNrYWdlX1N0cmluZyIsIk5mY0FkYXB0ZXIiLCJOZGVmUmVjb3JkIiwiTmRlZk1lc3NhZ2UiLCJVcmkiLCJyZWFkeVdyaXRlRGF0YSIsInJlYWR5UmVhZCIsInJlYWR5U2V0UHdkIiwicmVhZHlEZWxQd2QiLCJyZWFkeUdldE5mY1N0YXRlIiwicmVhZHlXcml0ZUFuZExvY2siLCJub05GQyIsInRlY2hMaXN0c0FycmF5IiwiVXJpUHJlZml4TWFwIiwid3JpdGVVcmkiLCJyZWFkUmVzdWx0IiwicHdkQnl0ZXMiLCJwd2REZWZhdWx0IiwibGlzdGVuTkZDU3RhdHVzIiwidGhhdCIsIm1haW4iLCJwbHVzIiwiYW5kcm9pZCIsInJ1bnRpbWVNYWluQWN0aXZpdHkiLCJJbnRlbnQiLCJpbXBvcnRDbGFzcyIsIkFjdGl2aXR5IiwiUGVuZGluZ0ludGVudCIsIkludGVudEZpbHRlciIsIm5mY0FkYXB0ZXIiLCJnZXREZWZhdWx0QWRhcHRlciIsInVuaSIsInNob3dUb2FzdCIsInRpdGxlIiwiaWNvbiIsImlzRW5hYmxlZCIsImludGVudCIsImdldENsYXNzIiwiYWRkRmxhZ3MiLCJGTEFHX0FDVElWSVRZX1NJTkdMRV9UT1AiLCJwZW5kaW5nSW50ZW50IiwiZ2V0QWN0aXZpdHkiLCJuZGVmIiwiYWRkRGF0YVR5cGUiLCJpbnRlbnRGaWx0ZXJzQXJyYXkiLCJnbG9iYWxFdmVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJzZXRUaW1lb3V0IiwibmZjUnVuaW5nIiwiZSIsImRpc2FibGVGb3JlZ3JvdW5kRGlzcGF0Y2giLCJlbmFibGVGb3JlZ3JvdW5kRGlzcGF0Y2giLCJnZXRJbnRlbnQiLCJnZXRBY3Rpb24iLCJ3cml0ZSIsInJlYWQiLCJzZXRQYXNzd29yZCIsImRlbFBhc3N3b3JkIiwiZ2V0U3RhdGUiLCJyZXN1bHQiLCJ0b2FzdCIsInVyaSIsInBhcnNlIiwibWVzc2FnZSIsImNyZWF0ZVVyaSIsIk5kZWYiLCJOZGVmRm9ybWF0YWJsZSIsInRhZyIsImdldFBhcmNlbGFibGVFeHRyYSIsIkVYVFJBX1RBRyIsIk1pZmFyZVVsdHJhbGlnaHQiLCJtZmMiLCJnZXQiLCJjb25uZWN0IiwicmVzcG9uc2VBdXRoMCIsInJlYWRQYWdlcyIsIkpTT04iLCJzdHJpbmdpZnkiLCJjbG9zZSIsInNpemUiLCJ0b0J5dGVBcnJheSIsImxlbmd0aCIsImlzV3JpdGFibGUiLCJnZXRNYXhTaXplIiwid3JpdGVOZGVmTWVzc2FnZSIsImZvcm1hdCIsImJ5dGVzSWQiLCJnZXRCeXRlQXJyYXlFeHRyYSIsIkVYVFJBX0lEIiwibmZjX2lkIiwiYnl0ZUFycmF5VG9IZXhTdHJpbmciLCJyYXdtc2dzIiwiZ2V0UGFyY2VsYWJsZUFycmF5RXh0cmEiLCJyZWNvcmRzIiwiZ2V0UmVjb3JkcyIsInRuZiIsImdldFRuZiIsInJlY29yZFR5cGUiLCJnZXRUeXBlIiwiZ2V0UGF5bG9hZCIsImRhdGEiLCJfX1VVSURfXyIsIlRORl9XRUxMX0tOT1dOIiwidmFsdWUiLCJSVERfVVJJIiwidXJpUHJlZml4Iiwic2hpZnQiLCJuZXdPYmplY3QiLCJpZCIsIiRlbWl0Iiwid3JpdGVQYWdlIiwicmVzcG9uc2UiLCJ0cmFuc2NlaXZlIiwiaW5hcnJheSIsImkiLCJqIiwiaW5uIiwiaGV4Iiwib3V0Iiwid3JpdGVEYXRhIiwicmVhZERhdGEiLCJzZXRQd2REYXRhIiwiUyIsImRlbFB3ZERhdGEiLCJnZXROZmNTdGF0ZSIs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QVUsRUFBRSxzQkFBVztJQUN0QixJQUFJaEgsS0FBSyxFQUFFO01BQ1ZpRCxLQUFLLENBQUMsc0JBQXNCLENBQUM7TUFDN0I7SUFDRDtJQUNBO0lBQ0FwRCxXQUFXLEdBQUcsSUFBSTtJQUNsQm9ELEtBQUssQ0FBQyxZQUFZLENBQUM7RUFDcEIsQ0FBQztFQUNEZ0UsV0FBVyxFQUFFLHVCQUFXO0lBQ3ZCLElBQUlqSCxLQUFLLEVBQUU7TUFDVmlELEtBQUssQ0FBQyxzQkFBc0IsQ0FBQztNQUM3QjtJQUNEO0lBQ0E7SUFDQW5ELGdCQUFnQixHQUFHLElBQUk7SUFDdkJtRCxLQUFLLENBQUMsWUFBWSxDQUFDO0VBQ3BCLENBQUM7RUFDRGlFLFlBQVksRUFBRSx3QkFBVztJQUN4QixJQUFJbEgsS0FBSyxFQUFFO01BQ1ZpRCxLQUFLLENBQUMsc0JBQXNCLENBQUM7TUFDN0I7SUFDRDtJQUNBO0lBQ0FsRCxpQkFBaUIsR0FBRyxJQUFJO0lBQ3hCa0QsS0FBSyxDQUFDLFlBQVksQ0FBQztFQUNwQixDQUFDO0VBQ0Q7RUFDQWtFLFlBQVksRUFBRSxzQkFBU0MsR0FBRyxFQUFFO0lBQzNCLGFBQVksYUFBYSxFQUFFQSxHQUFHO0lBQzlCakgsUUFBUSxHQUFHaUgsR0FBRztFQUNmO0FBQ0QsQ0FBQztBQUFBO0FBRUQsU0FBU25FLEtBQUssQ0FBQ29FLE9BQU8sRUFBRTtFQUN2QmpHLEdBQUcsQ0FBQ0MsU0FBUyxDQUFDO0lBQ2JDLEtBQUssRUFBRStGLE9BQU87SUFDZDlGLElBQUksRUFBRTtFQUNQLENBQUMsQ0FBQztBQUNILEMiLCJmaWxlIjoiNTQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyDljIXot6/lvoRcclxuY29uc3QgcGFja2FnZV9OZGVmUmVjb3JkID0gJ2FuZHJvaWQubmZjLk5kZWZSZWNvcmQnO1xyXG5jb25zdCBwYWNrYWdlX05kZWZNZXNzYWdlID0gJ2FuZHJvaWQubmZjLk5kZWZNZXNzYWdlJztcclxuY29uc3QgcGFja2FnZV9URUNIX0RJU0NPVkVSRUQgPSAnYW5kcm9pZC5uZmMuYWN0aW9uLlRFQ0hfRElTQ09WRVJFRCc7XHJcbmNvbnN0IHBhY2thZ2VfSW50ZW50ID0gJ2FuZHJvaWQuY29udGVudC5JbnRlbnQnO1xyXG5jb25zdCBwYWNrYWdlX0FjdGl2aXR5ID0gJ2FuZHJvaWQuYXBwLkFjdGl2aXR5JztcclxuY29uc3QgcGFja2FnZV9QZW5kaW5nSW50ZW50ID0gJ2FuZHJvaWQuYXBwLlBlbmRpbmdJbnRlbnQnO1xyXG5jb25zdCBwYWNrYWdlX0ludGVudEZpbHRlciA9ICdhbmRyb2lkLmNvbnRlbnQuSW50ZW50RmlsdGVyJztcclxuY29uc3QgcGFja2FnZV9OZmNBZGFwdGVyID0gJ2FuZHJvaWQubmZjLk5mY0FkYXB0ZXInO1xyXG5jb25zdCBwYWNrYWdlX05kZWYgPSAnYW5kcm9pZC5uZmMudGVjaC5OZGVmJztcclxuY29uc3QgcGFja2FnZV9OZGVmRm9ybWF0YWJsZSA9ICdhbmRyb2lkLm5mYy50ZWNoLk5kZWZGb3JtYXRhYmxlJztcclxuY29uc3QgcGFja2FnZV9QYXJjZWxhYmxlID0gJ2FuZHJvaWQub3MuUGFyY2VsYWJsZSc7XHJcbmNvbnN0IHBhY2thZ2VfU3RyaW5nID0gJ2phdmEubGFuZy5TdHJpbmcnO1xyXG5cclxubGV0IE5mY0FkYXB0ZXI7XHJcbmxldCBOZGVmUmVjb3JkO1xyXG5sZXQgTmRlZk1lc3NhZ2U7XHJcbmxldCBVcmk7XHJcbmxldCByZWFkeVdyaXRlRGF0YSA9IGZhbHNlO1xyXG5sZXQgcmVhZHlSZWFkID0gZmFsc2U7XHJcbmxldCByZWFkeVNldFB3ZCA9IGZhbHNlO1xyXG5sZXQgcmVhZHlEZWxQd2QgPSBmYWxzZTtcclxubGV0IHJlYWR5R2V0TmZjU3RhdGUgPSBmYWxzZTtcclxubGV0IHJlYWR5V3JpdGVBbmRMb2NrID0gZmFsc2U7XHJcbmxldCBub05GQyA9IGZhbHNlO1xyXG5sZXQgdGVjaExpc3RzQXJyYXkgPSBbXHJcblx0WydhbmRyb2lkLm5mYy50ZWNoLklzb0RlcCddLFxyXG5cdFsnYW5kcm9pZC5uZmMudGVjaC5OZmNBJ10sXHJcblx0WydhbmRyb2lkLm5mYy50ZWNoLk5mY0InXSxcclxuXHRbJ2FuZHJvaWQubmZjLnRlY2guTmZjRiddLFxyXG5cdFsnYW5kcm9pZC5uZmMudGVjaC5OZmNmJ10sXHJcblx0WydhbmRyb2lkLm5mYy50ZWNoLk5mY1YnXSxcclxuXHRbJ2FuZHJvaWQubmV0LlVyaSddLFxyXG5cdFsnYW5kcm9pZC5uZmMudGVjaC5OZGVmRm9ybWF0YWJsZSddLFxyXG5cdFsnYW5kcm9pZC5uZmMudGVjaC5NaWZhcmVDbGFzc2knXSxcclxuXHRbJ2FuZHJvaWQubmZjLnRlY2guTWlmYXJlVWx0cmFsaWdodCddXHJcbl07XHJcblxyXG5sZXQgVXJpUHJlZml4TWFwID0gW107XHJcblVyaVByZWZpeE1hcFsweDAwXSA9ICcnO1xyXG5VcmlQcmVmaXhNYXBbMHgwMV0gPSAnaHR0cDovL3d3dy4nO1xyXG5VcmlQcmVmaXhNYXBbMHgwMl0gPSAnaHR0cHM6Ly93d3cuJztcclxuVXJpUHJlZml4TWFwWzB4MDNdID0gJ2h0dHA6Ly8nO1xyXG5VcmlQcmVmaXhNYXBbMHgwNF0gPSAnaHR0cHM6Ly8nO1xyXG5VcmlQcmVmaXhNYXBbMHgwNV0gPSAndGVsOic7XHJcblVyaVByZWZpeE1hcFsweDA2XSA9ICdtYWlsdG86JztcclxuVXJpUHJlZml4TWFwWzB4MDddID0gJ2Z0cDovL2Fub255bW91czphbm9ueW1vdXNAJztcclxuVXJpUHJlZml4TWFwWzB4MDhdID0gJ2Z0cDovL2Z0cC4nO1xyXG5VcmlQcmVmaXhNYXBbMHgwOV0gPSAnZnRwczovLyc7XHJcblxyXG5sZXQgd3JpdGVVcmkgPSAnaHR0cDovL3d3dy5iZXN3ZWxsLmNvbSc7IC8vIOimgeWGmeWFpeeahOaVsOaNrlxyXG5sZXQgcmVhZFJlc3VsdCA9ICcnOyAvLyBORkPor7vlj5bliLDnmoTmlbDmja5cclxubGV0IHB3ZEJ5dGVzID0gWzEsIDIsIDMsIDRdOyAvLyDlvoXlhpnlhaXnmoTlr4bnoIFcclxubGV0IHB3ZERlZmF1bHQgPSBbMHhGRiwgMHhGRiwgMHhGRiwgMHhGRl0gLy8g5riF6Zmk5a+G56CB5ZCO6K6+572u55qE6buY6K6k5YC8XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcblx0bGlzdGVuTkZDU3RhdHVzOiBmdW5jdGlvbigpIHtcclxuXHRcdGxldCB0aGF0ID0gdGhpcztcclxuXHRcdHRyeSB7XHJcblx0XHRcdGxldCBtYWluID0gcGx1cy5hbmRyb2lkLnJ1bnRpbWVNYWluQWN0aXZpdHkoKTtcclxuXHRcdFx0bGV0IEludGVudCA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcygnYW5kcm9pZC5jb250ZW50LkludGVudCcpO1xyXG5cdFx0XHRsZXQgQWN0aXZpdHkgPSBwbHVzLmFuZHJvaWQuaW1wb3J0Q2xhc3MoJ2FuZHJvaWQuYXBwLkFjdGl2aXR5Jyk7XHJcblx0XHRcdGxldCBQZW5kaW5nSW50ZW50ID0gcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKCdhbmRyb2lkLmFwcC5QZW5kaW5nSW50ZW50Jyk7XHJcblx0XHRcdGxldCBJbnRlbnRGaWx0ZXIgPSBwbHVzLmFuZHJvaWQuaW1wb3J0Q2xhc3MoJ2FuZHJvaWQuY29udGVudC5JbnRlbnRGaWx0ZXInKTtcclxuXHRcdFx0VXJpID0gcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKCdhbmRyb2lkLm5ldC5VcmknKTtcclxuXHRcdFx0TmZjQWRhcHRlciA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcygnYW5kcm9pZC5uZmMuTmZjQWRhcHRlcicpO1xyXG5cdFx0XHRsZXQgbmZjQWRhcHRlciA9IE5mY0FkYXB0ZXIuZ2V0RGVmYXVsdEFkYXB0ZXIobWFpbik7XHJcblxyXG5cdFx0XHRpZiAobmZjQWRhcHRlciA9PSBudWxsKSB7XHJcblx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHR0aXRsZTogJ+iuvuWkh+S4jeaUr+aMgU5GQ++8gScsXHJcblx0XHRcdFx0XHRpY29uOiAnbm9uZSdcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHRcdG5vTkZDID0gdHJ1ZTtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmICghbmZjQWRhcHRlci5pc0VuYWJsZWQoKSkge1xyXG5cdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0dGl0bGU6ICfor7flnKjns7vnu5/orr7nva7kuK3lhYjlkK/nlKhORkPlip/og73vvIEnLFxyXG5cdFx0XHRcdFx0aWNvbjogJ25vbmUnXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0bm9ORkMgPSB0cnVlO1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRub05GQyA9IGZhbHNlO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRsZXQgaW50ZW50ID0gbmV3IEludGVudChtYWluLCBtYWluLmdldENsYXNzKCkpO1xyXG5cdFx0XHRpbnRlbnQuYWRkRmxhZ3MoSW50ZW50LkZMQUdfQUNUSVZJVFlfU0lOR0xFX1RPUCk7XHJcblx0XHRcdGxldCBwZW5kaW5nSW50ZW50ID0gUGVuZGluZ0ludGVudC5nZXRBY3Rpdml0eShtYWluLCAwLCBpbnRlbnQsIDApO1xyXG5cdFx0XHRsZXQgbmRlZiA9IG5ldyBJbnRlbnRGaWx0ZXIoXCJhbmRyb2lkLm5mYy5hY3Rpb24uVEVDSF9ESVNDT1ZFUkVEXCIpO1xyXG5cdFx0XHRuZGVmLmFkZERhdGFUeXBlKFwiKi8qXCIpO1xyXG5cdFx0XHRsZXQgaW50ZW50RmlsdGVyc0FycmF5ID0gW25kZWZdO1xyXG5cclxuXHRcdFx0cGx1cy5nbG9iYWxFdmVudC5hZGRFdmVudExpc3RlbmVyKCduZXdpbnRlbnQnLCBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZygnbmV3aW50ZW50IHJ1bm5pbmcnKTtcclxuXHRcdFx0XHQvLyDnm5HlkKwgTkZDXHJcblx0XHRcdFx0c2V0VGltZW91dCgoKT0+e1xyXG5cdFx0XHRcdFx0dGhhdC5uZmNSdW5pbmcoKVxyXG5cdFx0XHRcdH0sIDEwMCk7XHJcblx0XHRcdH0pO1xyXG5cdFx0XHRwbHVzLmdsb2JhbEV2ZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BhdXNlJywgZnVuY3Rpb24oZSkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCdwYXVzZSBydW5uaW5nJyk7XHJcblx0XHRcdFx0aWYgKG5mY0FkYXB0ZXIpIHtcclxuXHRcdFx0XHRcdC8v5YWz6Zet5YmN5Y+w6LCD5bqm57O757ufXHJcblx0XHRcdFx0XHQvL+aBouWkjem7mOiupOeKtuaAgVxyXG5cdFx0XHRcdFx0bmZjQWRhcHRlci5kaXNhYmxlRm9yZWdyb3VuZERpc3BhdGNoKG1haW4pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHRcdHBsdXMuZ2xvYmFsRXZlbnQuYWRkRXZlbnRMaXN0ZW5lcigncmVzdW1lJywgZnVuY3Rpb24oZSkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCdyZXN1bWUgcnVubmluZycpO1xyXG5cdFx0XHRcdGlmIChuZmNBZGFwdGVyKSB7XHJcblx0XHRcdFx0XHQvL+W8gOWQr+WJjeWPsOiwg+W6puezu+e7n1xyXG5cdFx0XHRcdFx0bmZjQWRhcHRlci5lbmFibGVGb3JlZ3JvdW5kRGlzcGF0Y2gobWFpbiwgcGVuZGluZ0ludGVudCwgaW50ZW50RmlsdGVyc0FycmF5LFxyXG5cdFx0XHRcdFx0XHR0ZWNoTGlzdHNBcnJheSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdFx0bmZjQWRhcHRlci5lbmFibGVGb3JlZ3JvdW5kRGlzcGF0Y2gobWFpbiwgcGVuZGluZ0ludGVudCwgaW50ZW50RmlsdGVyc0FycmF5LCB0ZWNoTGlzdHNBcnJheSk7XHJcblx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdGNvbnNvbGUuZXJyb3IoZSk7XHJcblx0XHR9XHJcblx0fSxcclxuXHRuZmNSdW5pbmc6IGZ1bmN0aW9uKCkge1xyXG5cdFx0TmRlZlJlY29yZCA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImFuZHJvaWQubmZjLk5kZWZSZWNvcmRcIik7XHJcblx0XHROZGVmTWVzc2FnZSA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImFuZHJvaWQubmZjLk5kZWZNZXNzYWdlXCIpO1xyXG5cdFx0bGV0IG1haW4gPSBwbHVzLmFuZHJvaWQucnVudGltZU1haW5BY3Rpdml0eSgpO1xyXG5cdFx0bGV0IGludGVudCA9IG1haW4uZ2V0SW50ZW50KCk7XHJcblx0XHQvLyBsZXQgaW50ZW50ID0gcGx1cy5hbmRyb2lkLmludm9rZShtYWluLCAnZ2V0SW50ZW50Jyk7XHJcblx0XHRsZXQgdGhhdCA9IHRoaXM7XHJcblxyXG5cdFx0Y29uc29sZS5sb2coXCJhY3Rpb24gdHlwZTpcIiArIGludGVudC5nZXRBY3Rpb24oKSk7XHJcblxyXG5cdFx0aWYgKHBhY2thZ2VfVEVDSF9ESVNDT1ZFUkVEID09IGludGVudC5nZXRBY3Rpb24oKSkge1xyXG5cdFx0XHRpZiAocmVhZHlXcml0ZURhdGEpIHtcclxuXHRcdFx0XHR0aGF0LndyaXRlKGludGVudCk7XHJcblx0XHRcdFx0cmVhZHlXcml0ZURhdGEgPSBmYWxzZTtcclxuXHRcdFx0fSBlbHNlIGlmIChyZWFkeVJlYWQpIHtcclxuXHRcdFx0XHR0aGF0LnJlYWQoaW50ZW50KTtcclxuXHRcdFx0XHRyZWFkeVJlYWQgPSBmYWxzZTtcclxuXHRcdFx0fSBlbHNlIGlmIChyZWFkeVNldFB3ZCkge1xyXG5cdFx0XHRcdHRoYXQuc2V0UGFzc3dvcmQoaW50ZW50KTtcclxuXHRcdFx0XHRyZWFkeVNldFB3ZCA9IGZhbHNlO1xyXG5cdFx0XHR9IGVsc2UgaWYgKHJlYWR5RGVsUHdkKSB7XHJcblx0XHRcdFx0dGhhdC5kZWxQYXNzd29yZChpbnRlbnQpO1xyXG5cdFx0XHRcdHJlYWR5RGVsUHdkID0gZmFsc2U7XHJcblx0XHRcdH0gZWxzZSBpZiAocmVhZHlHZXROZmNTdGF0ZSkge1xyXG5cdFx0XHRcdHRoYXQuZ2V0U3RhdGUoaW50ZW50KTtcclxuXHRcdFx0XHRyZWFkeUdldE5mY1N0YXRlID0gZmFsc2U7XHJcblx0XHRcdH0gZWxzZSBpZiAocmVhZHlXcml0ZUFuZExvY2spIHtcclxuXHRcdFx0XHRsZXQgcmVzdWx0ID0gdGhhdC53cml0ZShpbnRlbnQpO1xyXG5cdFx0XHRcdGlmIChyZXN1bHQgPT0gOTk5KSB7IC8vIOW3suiuvue9ruWvhueggeS/neaKpFxyXG5cdFx0XHRcdFx0cmVhZHlXcml0ZUFuZExvY2sgPSBmYWxzZTtcclxuXHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHRzZXRUaW1lb3V0KCgpPT57XHJcblx0XHRcdFx0XHR0aGF0LnNldFBhc3N3b3JkKGludGVudClcclxuXHRcdFx0XHR9LCAxMDApO1xyXG5cdFx0XHRcdHJlYWR5V3JpdGVBbmRMb2NrID0gZmFsc2U7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhhdC5yZWFkKGludGVudCk7XHJcblx0XHRcdFx0cmVhZHlSZWFkID0gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9LFxyXG5cdHdyaXRlKGludGVudCkge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0dG9hc3QoJ+ivt+WLv+enu+W8gOagh+etviDmraPlnKjlhpnlhaUuLi4nKTtcclxuXHRcdFx0Y29uc29sZS5sb2coXCJORkPlhpnlhaXlhoXlrrkgd3JpdGVVcmkgPSBcIiArIHdyaXRlVXJpKTtcclxuXHRcdFx0Ly8gbGV0IHRleHRCeXRlcyA9IHBsdXMuYW5kcm9pZC5pbnZva2Uod3JpdGVVcmksIFwiZ2V0Qnl0ZXNcIik7XHJcblx0XHRcdGxldCB1cmkgPSBVcmkucGFyc2Uod3JpdGVVcmkpXHJcblx0XHRcdGxldCBtZXNzYWdlID0gbmV3IE5kZWZNZXNzYWdlKFtuZXcgTmRlZlJlY29yZC5jcmVhdGVVcmkodXJpKV0pO1xyXG5cdFx0XHRjb25zb2xlLmxvZyhcIj09PT0gbWVzc2FnZSA9PT0+XCIsIG1lc3NhZ2UpXHJcblx0XHRcdGxldCBOZGVmID0gcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKCdhbmRyb2lkLm5mYy50ZWNoLk5kZWYnKTtcclxuXHRcdFx0bGV0IE5kZWZGb3JtYXRhYmxlID0gcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKCdhbmRyb2lkLm5mYy50ZWNoLk5kZWZGb3JtYXRhYmxlJyk7XHJcblx0XHRcdGxldCB0YWcgPSBpbnRlbnQuZ2V0UGFyY2VsYWJsZUV4dHJhKE5mY0FkYXB0ZXIuRVhUUkFfVEFHKTtcclxuXHRcdFx0XHJcblx0XHRcdGxldCBNaWZhcmVVbHRyYWxpZ2h0ID0gcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKCdhbmRyb2lkLm5mYy50ZWNoLk1pZmFyZVVsdHJhbGlnaHQnKTtcclxuXHRcdFx0bGV0IG1mYyA9IE1pZmFyZVVsdHJhbGlnaHQuZ2V0KHRhZyk7XHJcblx0XHRcdFxyXG5cdFx0XHRpZiAobWZjICE9IG51bGwpIHtcclxuXHRcdFx0XHRtZmMuY29ubmVjdCgpO1xyXG5cdFx0XHRcclxuXHRcdFx0XHRsZXQgcmVzcG9uc2VBdXRoMCA9IG1mYy5yZWFkUGFnZXMoMHgyOSlcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhcInJlc3BvbnNlQXV0aDA9XCIgKyBKU09OLnN0cmluZ2lmeShyZXNwb25zZUF1dGgwKSk7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0aWYgKHJlc3BvbnNlQXV0aDBbM10gPT0gMHgwMCkge1xyXG5cdFx0XHRcdFx0dG9hc3QoJ+W3suiuvue9ruWvhueggeS/neaKpO+8jOaXoOazleWGmeWFpeaVsOaNricpO1xyXG5cdFx0XHRcdFx0cmV0dXJuIDk5OTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0bWZjLmNsb3NlKCk7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdGxldCBuZGVmID0gTmRlZi5nZXQodGFnKTtcclxuXHRcdFx0aWYgKG5kZWYgIT0gbnVsbCkge1xyXG5cdFx0XHRcdC8vIOW+heWGmeWFpeeahOaVsOaNrumVv+W6plxyXG5cdFx0XHRcdGxldCBzaXplID0gbWVzc2FnZS50b0J5dGVBcnJheSgpLmxlbmd0aDtcclxuXHRcdFx0XHRuZGVmLmNvbm5lY3QoKTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHRpZiAoIW5kZWYuaXNXcml0YWJsZSgpKSB7XHJcblx0XHRcdFx0XHRuZGVmLmNsb3NlKCk7XHJcblx0XHRcdFx0XHR0b2FzdCgndGFn5LiN5YWB6K645YaZ5YWl77yBJyk7XHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmIChuZGVmLmdldE1heFNpemUoKSA8IHNpemUpIHtcclxuXHRcdFx0XHRcdG5kZWYuY2xvc2UoKTtcclxuXHRcdFx0XHRcdHRvYXN0KCfmlofku7blpKflsI/otoXlh7rlrrnph4/vvIEnKTtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0bmRlZi53cml0ZU5kZWZNZXNzYWdlKG1lc3NhZ2UpO1xyXG5cdFx0XHRcdG5kZWYuY2xvc2UoKTtcclxuXHRcdFx0XHR0b2FzdCgn5YaZ5YWl5pWw5o2u5oiQ5Yqf77yBJyk7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGxldCBmb3JtYXQgPSBOZGVmRm9ybWF0YWJsZS5nZXQodGFnKTtcclxuXHRcdFx0XHRpZiAoZm9ybWF0ICE9IG51bGwpIHtcclxuXHRcdFx0XHRcdHRyeSB7XHJcblx0XHRcdFx0XHRcdGZvcm1hdC5jb25uZWN0KCk7XHJcblx0XHRcdFx0XHRcdGZvcm1hdC5mb3JtYXQobWVzc2FnZSk7XHJcblx0XHRcdFx0XHRcdGZvcm1hdC5jbG9zZSgpO1xyXG5cdFx0XHRcdFx0XHR0b2FzdCgn5qC85byP5YyWdGFn5bm25LiU5YaZ5YWlbWVzc2FnZScpO1xyXG5cdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdFx0XHRcdHRvYXN0KCfmoLzlvI/ljJZ0YWflpLHotKUuJyk7XHJcblx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dG9hc3QoJ1RhZ+S4jeaUr+aMgU5ERUYnKTtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0dG9hc3QoJ+WGmeWFpeWksei0pScpO1xyXG5cdFx0XHRjb25zb2xlLmxvZyhcImVycm9yPVwiICsgZSk7XHJcblx0XHR9XHJcblxyXG5cdH0sXHJcblx0cmVhZChpbnRlbnQpIHtcclxuXHRcdHRvYXN0KCfor7fli7/np7vlvIDmoIfnrb7mraPlnKjor7vlj5bmlbDmja4nKTtcclxuXHRcdGxldCB0aGF0ID0gdGhpcztcclxuXHRcdC8vIE5GQyBpZFxyXG5cdFx0bGV0IGJ5dGVzSWQgPSBpbnRlbnQuZ2V0Qnl0ZUFycmF5RXh0cmEoTmZjQWRhcHRlci5FWFRSQV9JRCk7XHJcblx0XHRsZXQgbmZjX2lkID0gdGhhdC5ieXRlQXJyYXlUb0hleFN0cmluZyhieXRlc0lkKTtcclxuXHRcdC8vIGNvbnNvbGUubG9nKCduZmNfaWQ6ICcgKyBuZmNfaWQpO1xyXG5cdFx0Ly8gbGV0IFBhcmNlbGFibGUgPSBwbHVzLmFuZHJvaWQuaW1wb3J0Q2xhc3MoXCJhbmRyb2lkLm9zLlBhcmNlbGFibGVcIik7XHJcblxyXG5cdFx0Ly8gdG1wIGFkZFxyXG5cdFx0Ly8gbGV0IFRhZyA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcygnYW5kcm9pZC5uZmMuVGFnJyk7XHJcblx0XHQvLyBsZXQgTmRlZiA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcygnYW5kcm9pZC5uZmMudGVjaC5OZGVmJyk7XHJcblx0XHQvLyBsZXQgdGFnID0gaW50ZW50LmdldFBhcmNlbGFibGVFeHRyYShOZmNBZGFwdGVyLkVYVFJBX1RBRyk7XHJcblx0XHQvLyBsZXQgbmRlZiA9IE5kZWYuZ2V0KHRhZyk7XHJcblx0XHQvLyBsZXQgbmZjX3R5cGUgPSB0aGF0LmJ5dGVBcnJheVRvSGV4U3RyaW5nKG5kZWYuZ2V0VHlwZSgpKTtcclxuXHRcdC8vIGNvbnNvbGUubG9nKCduZmNfdHlwZe+8mlwiJyArIG5mY190eXBlICsgJ1wiJylcclxuXHJcblx0XHRsZXQgcmF3bXNncyA9IGludGVudC5nZXRQYXJjZWxhYmxlQXJyYXlFeHRyYShcImFuZHJvaWQubmZjLmV4dHJhLk5ERUZfTUVTU0FHRVNcIik7XHJcblx0XHQvLyBsZXQgcmF3bXNncyA9IHBsdXMuYW5kcm9pZC5pbnZva2UoaW50ZW50LCAnZ2V0UGFyY2VsYWJsZUFycmF5RXh0cmEnLCAnYW5kcm9pZC5uZmMuZXh0cmEuTkRFRl9NRVNTQUdFUycpO1xyXG5cdFx0Ly8gbGV0IHJhd21zZ3MgPSBpbnRlbnQuZ2V0UGFyY2VsYWJsZUFycmF5RXh0cmEoKTtcclxuXHJcblx0XHRpZiAocmF3bXNncyAhPSBudWxsICYmIHJhd21zZ3MubGVuZ3RoID4gMCkge1xyXG5cdFx0XHQvLyBjb25zb2xlLmxvZygncmF3bXNnc++8mlwiJyArIEpTT04uc3RyaW5naWZ5KHJhd21zZ3MpICsgJ1wiJylcclxuXHRcdFx0bGV0IHJlY29yZHMgPSByYXdtc2dzWzBdLmdldFJlY29yZHMoKTtcclxuXHRcdFx0Ly8gbGV0IHJlY29yZHMgPSBwbHVzLmFuZHJvaWQuaW52b2tlKHJhd21zZ3NbMF0sICdnZXRSZWNvcmRzJyk7XHJcblx0XHRcdGxldCB0bmYgPSByZWNvcmRzWzBdLmdldFRuZigpO1xyXG5cdFx0XHQvLyBsZXQgdG5mID0gcGx1cy5hbmRyb2lkLmludm9rZShyZWNvcmRzWzBdLCAnZ2V0VG5mJyk7XHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKCd0bmYgPSAnICsgSlNPTi5zdHJpbmdpZnkodG5mKSlcclxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ1RORl9XRUxMX0tOT1dOID0gJyArIEpTT04uc3RyaW5naWZ5KE5kZWZSZWNvcmQuVE5GX1dFTExfS05PV04pKVxyXG5cdFx0XHQvLyBjb25zb2xlLmxvZygnVE5GX0FCU09MVVRFX1VSSSA9ICcgKyBKU09OLnN0cmluZ2lmeShOZGVmUmVjb3JkLlRORl9BQlNPTFVURV9VUkkpKVxyXG5cclxuXHRcdFx0bGV0IHJlY29yZFR5cGUgPSByZWNvcmRzWzBdLmdldFR5cGUoKTtcclxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ3JlY29yZFR5cGUgPSAnICsgSlNPTi5zdHJpbmdpZnkocmVjb3JkVHlwZSkpXHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKCdSVERfVVJJID0gJyArIEpTT04uc3RyaW5naWZ5KE5kZWZSZWNvcmQuUlREX1VSSSkpXHJcblxyXG5cdFx0XHRsZXQgcmVzdWx0ID0gcmVjb3Jkc1swXS5nZXRQYXlsb2FkKCk7XHJcblx0XHRcdGxldCBkYXRhID0gJydcclxuXHJcblx0XHRcdGlmICh0bmYuX19VVUlEX18gPT0gTmRlZlJlY29yZC5UTkZfV0VMTF9LTk9XTi52YWx1ZSkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCd0bmYgPT0gVE5GX1dFTExfS05PV04nKVxyXG5cdFx0XHRcdGlmIChyZWNvcmRUeXBlID09IE5kZWZSZWNvcmQuUlREX1VSSSkgeyAvLyBVUkkgYmFzZWQgb24gcGF5bG9hZFxyXG5cdFx0XHRcdFx0Ly8g5ZyoVVJJIFJlY29yZCBQYXlsb2Fk5Lit77yM56ys5LiA5Liq5a2X6IqC5oyH5piOVVJJ55qESUTnoIHvvIzlr7nlupQgVXJpUHJlZml4TWFwXHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygncmVjb3JkVHlwZSA9PSBOZGVmUmVjb3JkLlJURF9VUkknKVxyXG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ3Jlc3VsdFswXe+8mlwiJyArIHJlc3VsdFswXSArICdcIicpXHJcblxyXG5cdFx0XHRcdFx0bGV0IHVyaVByZWZpeCA9IFVyaVByZWZpeE1hcFtyZXN1bHRbMF1dXHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygndXJpUHJlZml477yaXCInICsgdXJpUHJlZml4ICsgJ1wiJylcclxuXHRcdFx0XHRcdHJlc3VsdC5zaGlmdCgpIC8vIOWOu+mZpFVSSeeahElE56CBXHJcblxyXG5cdFx0XHRcdFx0ZGF0YSA9IHBsdXMuYW5kcm9pZC5uZXdPYmplY3QoXCJqYXZhLmxhbmcuU3RyaW5nXCIsIHJlc3VsdCk7XHJcblx0XHRcdFx0XHRkYXRhID0gdXJpUHJlZml4ICsgZGF0YVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQvLyB9IGVsc2UgaWYgKHRuZi5fX1VVSURfXyA9PSBOZGVmUmVjb3JkLlRORl9BQlNPTFVURV9VUkkudmFsdWUpIHtcclxuXHRcdFx0XHQvLyBcdGNvbnNvbGUubG9nKCd0bmYgPT0gVE5GX0FCU09MVVRFX1VSSScpXHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ3RuZu+8mlwiJyArIHRuZiArICdcIicpXHJcblx0XHRcdFx0ZGF0YSA9IHBsdXMuYW5kcm9pZC5uZXdPYmplY3QoXCJqYXZhLmxhbmcuU3RyaW5nXCIsIHJlc3VsdCk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKCdyZXN1bHTvvJpcIicgKyByZXN1bHQgKyAnXCInKVxyXG5cdFx0XHQvLyBjb25zb2xlLmxvZygnTkZDIOaVsOaNru+8mlwiJyArIGRhdGEgKyAnXCInKVxyXG5cdFx0XHQvLyB0b2FzdCgnTkZDIOaVsOaNru+8micgKyBkYXRhKTtcclxuXHRcdFx0Ly8gcGx1cy5ydW50aW1lLm9wZW5VUkwoZGF0YSwgZnVuY3Rpb24ocmVzKSB7ICBcclxuXHRcdFx0Ly8gXHRjb25zb2xlLmxvZyhcIuaJk+W8gOa1j+iniOWZqOi3r+W+hOWksei0pe+8gS0tLS1cIiwgcmVzKTsgIFxyXG5cdFx0XHQvLyB9KTsgIFxyXG5cdFx0XHQvLyByZXR1cm4gZGF0YTtcclxuXHRcdFx0cmVhZFJlc3VsdCA9IHtcclxuXHRcdFx0XHRpZDogbmZjX2lkLFxyXG5cdFx0XHRcdGRhdGE6IGRhdGFcclxuXHRcdFx0fTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdC8vIHRvYXN0KCfmsqHmnInor7vlj5bliLDmlbDmja4nKTtcclxuXHRcdFx0cmVhZFJlc3VsdCA9IHtcclxuXHRcdFx0XHRpZDogbmZjX2lkLFxyXG5cdFx0XHRcdGRhdGE6ICcnXHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0XHRjb25zb2xlLmxvZygnTkZDIOaVsOaNru+8micgKyBKU09OLnN0cmluZ2lmeShyZWFkUmVzdWx0KSk7XHJcblx0XHR1bmkuJGVtaXQoJ05mY1JlYWQnLCByZWFkUmVzdWx0KVxyXG5cdH0sXHJcblx0c2V0UGFzc3dvcmQoaW50ZW50KSB7XHJcblx0XHR0cnkge1xyXG5cdFx0XHR0b2FzdCgn6K+35Yu/56e75byA5qCH562+IOato+WcqOiuvue9ruWvhueggS4uLicpO1xyXG5cclxuXHRcdFx0bGV0IE1pZmFyZVVsdHJhbGlnaHQgPSBwbHVzLmFuZHJvaWQuaW1wb3J0Q2xhc3MoJ2FuZHJvaWQubmZjLnRlY2guTWlmYXJlVWx0cmFsaWdodCcpO1xyXG5cdFx0XHRsZXQgdGFnID0gaW50ZW50LmdldFBhcmNlbGFibGVFeHRyYShOZmNBZGFwdGVyLkVYVFJBX1RBRyk7XHJcblx0XHRcdGxldCBtZmMgPSBNaWZhcmVVbHRyYWxpZ2h0LmdldCh0YWcpO1xyXG5cclxuXHRcdFx0aWYgKG1mYyAhPSBudWxsKSB7XHJcblx0XHRcdFx0bWZjLmNvbm5lY3QoKTtcclxuXHJcblx0XHRcdFx0Ly8gbGV0IHJlc3BvbnNlID0gcGx1cy5hbmRyb2lkLmludm9rZShtZmMsICd0cmFuc2NlaXZlJywgWzB4MUIsIHB3ZERlZmF1bHRbMF0sIHB3ZERlZmF1bHRbMV0sIHB3ZERlZmF1bHRbMl0sIHB3ZERlZmF1bHRbM11dKVxyXG5cdFx0XHRcdC8vIC8vIGxldCByZXNwb25zZSA9IG1mYy50cmFuc2NlaXZlKFsweDFCLCBwd2REZWZhdWx0WzBdLCBwd2REZWZhdWx0WzFdLCBwd2REZWZhdWx0WzJdLCBwd2REZWZhdWx0WzNdXSlcclxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhcIuivoumXrueZu+W9lSByZXNwb25zZT1cIiArIEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlKSk7XHJcblxyXG5cdFx0XHRcdC8vcGFja+e9ruS4uum7mOiupFxyXG5cdFx0XHRcdG1mYy53cml0ZVBhZ2UoMHgyQywgWzB4MDAsIDB4MDAsIDB4MDAsIDB4MDBdKVxyXG5cclxuXHRcdFx0XHQvLyBzZXQgUFdEOiAg6K6+572u5a+G56CB5Li655So5oi36K6+572u55qE5a+G56CBXHJcblx0XHRcdFx0bWZjLndyaXRlUGFnZSgweDJCLCBwd2RCeXRlcylcclxuXHJcblx0XHRcdFx0Ly8g6K6+572uQXV0aDAgIGF1dGgw5a6e6ZmF5o6n5Yi25piv5ZCm5ZCv55So5a+G56CB5L+d5oqkIOiuvue9ruS4ujAw6KGo56S65LuO56ysMOmhteW8gOWni+aPkOS+m+S/neaKpFxyXG5cdFx0XHRcdC8vIGxldCByZXNwb25zZUF1dGgwID0gbWZjLnJlYWRQYWdlcygweDI5KVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKFwicmVzcG9uc2VBdXRoMD1cIiArIEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlQXV0aDApKTtcclxuXHRcdFx0XHRtZmMud3JpdGVQYWdlKDB4MjksIFsweDA0LCAweDAwLCAweDAwLCAweDAwXSlcclxuXHJcblx0XHRcdFx0bWZjLmNsb3NlKCk7XHJcblx0XHRcdFx0dG9hc3QoJ+iuvue9ruWvhueggeaIkOWKn++8gScpO1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0b2FzdCgnVGFn5LiN5pSv5oyBTWlmYXJlVWx0cmFsaWdodCcpO1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHR0b2FzdCgn6K6+572u5a+G56CB5aSx6LSlJyk7XHJcblx0XHRcdGNvbnNvbGUubG9nKFwi6K6+572u5a+G56CB5aSx6LSlIGVycm9yPVwiICsgZSk7XHJcblx0XHR9XHJcblx0fSxcclxuXHRkZWxQYXNzd29yZChpbnRlbnQpIHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdHRvYXN0KCfor7fli7/np7vlvIDmoIfnrb4g5q2j5Zyo5riF6Zmk5a+G56CBLi4uJyk7XHJcblxyXG5cdFx0XHRsZXQgTWlmYXJlVWx0cmFsaWdodCA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcygnYW5kcm9pZC5uZmMudGVjaC5NaWZhcmVVbHRyYWxpZ2h0Jyk7XHJcblx0XHRcdGxldCB0YWcgPSBpbnRlbnQuZ2V0UGFyY2VsYWJsZUV4dHJhKE5mY0FkYXB0ZXIuRVhUUkFfVEFHKTtcclxuXHRcdFx0bGV0IG1mYyA9IE1pZmFyZVVsdHJhbGlnaHQuZ2V0KHRhZyk7XHJcblx0XHRcdC8vIGxldCBtZmMyID0gcGx1cy5hbmRyb2lkLmludm9rZShNaWZhcmVVbHRyYWxpZ2h0LCAnZ2V0JywgdGFnKSAvLyB0byBkbyBcclxuXHJcblx0XHRcdGlmIChtZmMgIT0gbnVsbCkge1xyXG5cdFx0XHRcdG1mYy5jb25uZWN0KCk7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Ly9qc+S4jeaUr+aMgeaXoOespuWPt+aVtOaVsO+8jOaXoOazleS8oOi+k+Wkp+S6jjBYN0bnmoTlgLxcclxuXHRcdFx0XHQvLyBtZmMud3JpdGVQYWdlKDB4MDgsIFsweDAxLCAweDAyLCAweDAzLCAweDA0XSlcclxuXHRcdFx0XHQvLyBtZmMud3JpdGVQYWdlKDB4MDksIFsweDdELCAweDdFLCAweDdGLCAoMHg4MD4+PjApXSlcclxuXHRcdFx0XHQvLyBtZmMud3JpdGVQYWdlKDB4MEEsIFsweDgwPj4+MCwgMHg4MT4+PjAsIDB4RkU+Pj4wLCAweEZGPj4+MF0pXHJcblx0XHRcdFx0Ly8gcmV0dXJuXHJcblxyXG5cdFx0XHRcdC8v55So55So5oi36K6+572u55qE5a+G56CB6K+i6Zeu55m75b2VXHJcblx0XHRcdFx0Ly8gbGV0IHJlc3BvbnNlID0gcGx1cy5hbmRyb2lkLmludm9rZShtZmMsICd0cmFuc2NlaXZlJywgWzB4MUIsIHB3ZEJ5dGVzWzBdLCBwd2RCeXRlc1sxXSwgcHdkQnl0ZXNbMl0sIHB3ZEJ5dGVzWzNdXSlcclxuXHRcdFx0XHRsZXQgcmVzcG9uc2UgPSBtZmMudHJhbnNjZWl2ZShbMHgxQiwgcHdkQnl0ZXNbMF0sIHB3ZEJ5dGVzWzFdLCBwd2RCeXRlc1syXSwgcHdkQnl0ZXNbM11dKVxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKFwi6K+i6Zeu55m75b2VIHJlc3BvbnNlPVwiICsgSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UpKTtcclxuXHJcblx0XHRcdFx0aWYgKHJlc3BvbnNlICE9IG51bGwpIHtcclxuXHRcdFx0XHRcdC8vIGlmIChyZXNwb25zZVswXSA9PSAweDAwICYmIHJlc3BvbnNlWzFdID09IDB4MDApIHtcclxuXHRcdFx0XHRcdGlmIChyZXNwb25zZSA9PSAnMCwwJykge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuWvhueggeagoemqjOato+ehrlwiKTtcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdG1mYy5jbG9zZSgpO1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuWvhueggeagoemqjOWksei0pVwiKTtcclxuXHRcdFx0XHRcdFx0dG9hc3QoJ+WvhueggeagoemqjOWksei0pScpO1xyXG5cdFx0XHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0bWZjLmNsb3NlKCk7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuivoumXrueZu+W9lSByZXNwb25zZSDml6DmlYhcIik7XHJcblx0XHRcdFx0XHR0b2FzdCgn5a+G56CB6aqM6K+B5aSx6LSlIOaIliDmnKrorr7nva7lr4bnoIEnKTtcclxuXHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly9wYWNr572u5Li66buY6K6kXHJcblx0XHRcdFx0bWZjLndyaXRlUGFnZSgweDJDLCBbMHgwMCwgMHgwMCwgMHgwMCwgMHgwMF0pXHJcblxyXG5cdFx0XHRcdC8vIHNldCBQV0Q6ICDorr7nva7lr4bnoIHkuLrpu5jorqTlr4bnoIFcclxuXHRcdFx0XHRtZmMud3JpdGVQYWdlKDB4MkIsIHB3ZERlZmF1bHQpXHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Ly8gc2V0IEFVVEhMSU06XHJcblx0XHRcdFx0Ly/lsIZBVVRITElN77yI56ysNDLpobXvvIzlrZfoioIw77yM5L2NMi0w77yJ6K6+572u5Li65aSx6LSl55qE5pyA5aSn5a+G56CB6aqM6K+B5bCd6K+V5qyh5pWwXHJcblx0XHRcdFx0bWZjLndyaXRlUGFnZSgweDJBLCBbMHgwMCwgMHgwNSwgMHgwMCwgMHgwMF0pXHJcblxyXG5cdFx0XHRcdC8vIOiuvue9rkF1dGgwICBhdXRoMOWunumZheaOp+WItuaYr+WQpuWQr+eUqOWvhueggeS/neaKpCDorr7nva7kuLpGRuihqOekuuemgeeUqOWvhueggeS/neaKpFxyXG5cdFx0XHRcdC8vIGxldCByZXNwb25zZUF1dGgwID0gbWZjLnJlYWRQYWdlcygweDI5KVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKFwicmVzcG9uc2VBdXRoMD1cIiArIEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlQXV0aDApKTtcclxuXHRcdFx0XHQvLyBtZmMud3JpdGVQYWdlKDB4MjksIFsweDA0LCAweDAwLCAweDAwLCAweEZGXSlcclxuXHRcdFx0XHQvL2pz5LiN5pSv5oyB5peg56ym5Y+35pW05pWw77yM5peg5rOV5Lyg6L6T5aSn5LqOMFg3RueahOWAvFxyXG5cdFx0XHRcdG1mYy53cml0ZVBhZ2UoMHgyOSwgWzB4MDQsIDB4MDAsIDB4MDAsIDB4N0ZdKVxyXG5cclxuXHRcdFx0XHRtZmMuY2xvc2UoKTtcclxuXHRcdFx0XHR0b2FzdCgn5riF6Zmk5a+G56CB5oiQ5Yqf77yBJyk7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRvYXN0KCdUYWfkuI3mlK/mjIFNaWZhcmVVbHRyYWxpZ2h0Jyk7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdHRvYXN0KCfmuIXpmaTlr4bnoIHlpLHotKUnKTtcclxuXHRcdFx0Y29uc29sZS5sb2coXCLmuIXpmaTlr4bnoIHlpLHotKUgZXJyb3I9XCIgKyBlKTtcclxuXHRcdH1cclxuXHR9LFxyXG5cdGdldFN0YXRlKGludGVudCkge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0dG9hc3QoJ+ivt+WLv+enu+W8gOagh+etviDmraPlnKjojrflj5ZORkPnirbmgIEuLi4nKTtcclxuXHJcblx0XHRcdGxldCBNaWZhcmVVbHRyYWxpZ2h0ID0gcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKCdhbmRyb2lkLm5mYy50ZWNoLk1pZmFyZVVsdHJhbGlnaHQnKTtcclxuXHRcdFx0bGV0IHRhZyA9IGludGVudC5nZXRQYXJjZWxhYmxlRXh0cmEoTmZjQWRhcHRlci5FWFRSQV9UQUcpO1xyXG5cdFx0XHRsZXQgbWZjID0gTWlmYXJlVWx0cmFsaWdodC5nZXQodGFnKTtcclxuXHJcblx0XHRcdGlmIChtZmMgIT0gbnVsbCkge1xyXG5cdFx0XHRcdG1mYy5jb25uZWN0KCk7XHJcblxyXG5cdFx0XHRcdGxldCByZXNwb25zZUF1dGgwID0gbWZjLnJlYWRQYWdlcygweDI5KVxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKFwicmVzcG9uc2VBdXRoMD1cIiArIEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlQXV0aDApKTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHRpZiAocmVzcG9uc2VBdXRoMFszXSA9PSAweDAwKSB7XHJcblx0XHRcdFx0XHR0b2FzdCgn5bey6K6+572u5a+G56CB5L+d5oqkJyk7XHJcblx0XHRcdFx0fSBlbHNlIGlmIChyZXNwb25zZUF1dGgwWzNdID09IDB4N0YgfHwgcmVzcG9uc2VBdXRoMFszXSA9PSAweEZGIHx8IHJlc3BvbnNlQXV0aDBbM10gPT0gLTEpIHtcclxuXHRcdFx0XHRcdHRvYXN0KCflsJrmnKrorr7nva7lr4bnoIHkv53miqQnKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dG9hc3QoJ05GQ+eKtuaAgeacquefpe+8micgKyBKU09OLnN0cmluZ2lmeShyZXNwb25zZUF1dGgwKSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdG1mYy5jbG9zZSgpO1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0b2FzdCgnVGFn5LiN5pSv5oyBTWlmYXJlVWx0cmFsaWdodCcpO1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHR0b2FzdCgn6I635Y+WTkZD54q25oCB5aSx6LSlJyk7XHJcblx0XHRcdGNvbnNvbGUubG9nKFwi6I635Y+WTkZD54q25oCB5aSx6LSlIGVycm9yPVwiICsgZSk7XHJcblx0XHR9XHJcblx0fSxcclxuXHRieXRlQXJyYXlUb0hleFN0cmluZzogZnVuY3Rpb24oaW5hcnJheSkgeyAvLyBjb252ZXJ0cyBieXRlIGFycmF5cyB0byBzdHJpbmcgIFxyXG5cdFx0bGV0IGksIGosIGlubjtcclxuXHRcdGxldCBoZXggPSBbXCIwXCIsIFwiMVwiLCBcIjJcIiwgXCIzXCIsIFwiNFwiLCBcIjVcIiwgXCI2XCIsIFwiN1wiLCBcIjhcIiwgXCI5XCIsIFwiQVwiLCBcIkJcIiwgXCJDXCIsIFwiRFwiLCBcIkVcIiwgXCJGXCJdO1xyXG5cdFx0bGV0IG91dCA9IFwiXCI7XHJcblxyXG5cdFx0Zm9yIChqID0gMDsgaiA8IGluYXJyYXkubGVuZ3RoOyArK2opIHtcclxuXHRcdFx0aW5uID0gaW5hcnJheVtqXSAmIDB4ZmY7XHJcblx0XHRcdGkgPSAoaW5uID4+PiA0KSAmIDB4MGY7XHJcblx0XHRcdG91dCArPSBoZXhbaV07XHJcblx0XHRcdGkgPSBpbm4gJiAweDBmO1xyXG5cdFx0XHRvdXQgKz0gaGV4W2ldO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIG91dDtcclxuXHR9LFxyXG5cdHdyaXRlRGF0YTogZnVuY3Rpb24oKSB7XHJcblx0XHRpZiAobm9ORkMpIHtcclxuXHRcdFx0dG9hc3QoJ+ivt+ajgOafpeiuvuWkh+aYr+WQpuaUr+aMgeW5tuW8gOWQryBORkMg5Yqf6IO977yBJyk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdC8vIOebkeWQrOS6i+S7tu+8jOinpuWPkeadoeS7tlxyXG5cdFx0cmVhZHlXcml0ZURhdGEgPSB0cnVlO1xyXG5cdFx0dG9hc3QoJ+ivt+Wwhk5GQ+agh+etvumdoOi/ke+8gScpO1xyXG5cdH0sXHJcblx0cmVhZERhdGE6IGZ1bmN0aW9uKCkge1xyXG5cdFx0aWYgKG5vTkZDKSB7XHJcblx0XHRcdHRvYXN0KCfor7fmo4Dmn6Xorr7lpIfmmK/lkKbmlK/mjIHlubblvIDlkK8gTkZDIOWKn+iDve+8gScpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHQvLyDnm5HlkKzkuovku7bvvIzop6blj5HmnaHku7ZcclxuXHRcdHJlYWR5UmVhZCA9IHRydWU7XHJcblx0XHR0b2FzdCgn6K+35bCGTkZD5qCH562+6Z2g6L+R77yBJyk7XHJcblx0fSxcclxuXHRzZXRQd2REYXRhOiBmdW5jdGlvbigpIHtcclxuXHRcdGlmIChub05GQykge1xyXG5cdFx0XHR0b2FzdCgn6K+35qOA5p+l6K6+5aSH5piv5ZCm5pSv5oyB5bm25byA5ZCvIE5GQyDlip/og73vvIEnKTtTXHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdC8vIOebkeWQrOS6i+S7tu+8jOinpuWPkeadoeS7tlxyXG5cdFx0cmVhZHlTZXRQd2QgPSB0cnVlO1xyXG5cdFx0dG9hc3QoJ+ivt+Wwhk5GQ+agh+etvumdoOi/ke+8gScpO1xyXG5cdH0sXHJcblx0ZGVsUHdkRGF0YTogZnVuY3Rpb24oKSB7XHJcblx0XHRpZiAobm9ORkMpIHtcclxuXHRcdFx0dG9hc3QoJ+ivt+ajgOafpeiuvuWkh+aYr+WQpuaUr+aMgeW5tuW8gOWQryBORkMg5Yqf6IO977yBJyk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdC8vIOebkeWQrOS6i+S7tu+8jOinpuWPkeadoeS7tlxyXG5cdFx0cmVhZHlEZWxQd2QgPSB0cnVlO1xyXG5cdFx0dG9hc3QoJ+ivt+Wwhk5GQ+agh+etvumdoOi/ke+8gScpO1xyXG5cdH0sXHJcblx0Z2V0TmZjU3RhdGU6IGZ1bmN0aW9uKCkge1xyXG5cdFx0aWYgKG5vTkZDKSB7XHJcblx0XHRcdHRvYXN0KCfor7fmo4Dmn6Xorr7lpIfmmK/lkKbmlK/mjIHlubblvIDlkK8gTkZDIOWKn+iDve+8gScpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHQvLyDnm5HlkKzkuovku7bvvIzop6blj5HmnaHku7ZcclxuXHRcdHJlYWR5R2V0TmZjU3RhdGUgPSB0cnVlO1xyXG5cdFx0dG9hc3QoJ+ivt+Wwhk5GQ+agh+etvumdoOi/ke+8gScpO1xyXG5cdH0sXHJcblx0d3JpdGVBbmRMb2NrOiBmdW5jdGlvbigpIHtcclxuXHRcdGlmIChub05GQykge1xyXG5cdFx0XHR0b2FzdCgn6K+35qOA5p+l6K6+5aSH5piv5ZCm5pSv5oyB5bm25byA5ZCvIE5GQyDlip/og73vvIEnKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0Ly8g55uR5ZCs5LqL5Lu277yM6Kem5Y+R5p2h5Lu2XHJcblx0XHRyZWFkeVdyaXRlQW5kTG9jayA9IHRydWU7XHJcblx0XHR0b2FzdCgn6K+35bCGTkZD5qCH562+6Z2g6L+R77yBJyk7XHJcblx0fSxcclxuXHQvLyDovpPlhaXmlofmnKzmlLnlj5hcclxuXHRpbnB1dENoYW5hZ2U6IGZ1bmN0aW9uKHJlcykge1xyXG5cdFx0Y29uc29sZS5sb2coXCLmraPlnKjnvJbovpHlhpnlhaXmlbDmja4uLi5cIiwgcmVzKVxyXG5cdFx0d3JpdGVVcmkgPSByZXNcclxuXHR9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRvYXN0KGNvbnRlbnQpIHtcclxuXHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdHRpdGxlOiBjb250ZW50LFxyXG5cdFx0aWNvbjogJ25vbmUnXHJcblx0fSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///54\n");
  11075. /***/ }),
  11076. /* 55 */
  11077. /*!***************************************************************************************************!*\
  11078. !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-popup/components/uni-popup/uni-popup.vue ***!
  11079. \***************************************************************************************************/
  11080. /*! no static exports found */
  11081. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  11082. "use strict";
  11083. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-popup.vue?vue&type=template&id=7c43d41b& */ 56);\n/* harmony import */ var _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-popup.vue?vue&type=script&lang=js& */ 70);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-popup/components/uni-popup/uni-popup.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBc0g7QUFDdEg7QUFDNkQ7QUFDTDs7O0FBR3hEO0FBQzBMO0FBQzFMLGdCQUFnQiwyTEFBVTtBQUMxQixFQUFFLCtFQUFNO0FBQ1IsRUFBRSxvRkFBTTtBQUNSLEVBQUUsNkZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsd0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNTUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS1wb3B1cC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2M0M2Q0MWImXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi91bmktcG9wdXAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi91bmktcG9wdXAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwL3VuaS1wb3B1cC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///55\n");
  11084. /***/ }),
  11085. /* 56 */
  11086. /*!**********************************************************************************************************************************!*\
  11087. !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-popup/components/uni-popup/uni-popup.vue?vue&type=template&id=7c43d41b& ***!
  11088. \**********************************************************************************************************************************/
  11089. /*! exports provided: render, staticRenderFns, recyclableRender, components */
  11090. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  11091. "use strict";
  11092. __webpack_require__.r(__webpack_exports__);
  11093. /* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup.vue?vue&type=template&id=7c43d41b& */ 57);
  11094. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__["render"]; });
  11095. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
  11096. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
  11097. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__["components"]; });
  11098. /***/ }),
  11099. /* 57 */
  11100. /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  11101. !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/uni_modules/uni-popup/components/uni-popup/uni-popup.vue?vue&type=template&id=7c43d41b& ***!
  11102. \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  11103. /*! exports provided: render, staticRenderFns, recyclableRender, components */
  11104. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  11105. "use strict";
  11106. __webpack_require__.r(__webpack_exports__);
  11107. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
  11108. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
  11109. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
  11110. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
  11111. var components
  11112. try {
  11113. components = {
  11114. uniTransition:
  11115. __webpack_require__(/*! @/uni_modules/uni-transition/components/uni-transition/uni-transition.vue */ 58)
  11116. .default,
  11117. }
  11118. } catch (e) {
  11119. if (
  11120. e.message.indexOf("Cannot find module") !== -1 &&
  11121. e.message.indexOf(".vue") !== -1
  11122. ) {
  11123. console.error(e.message)
  11124. console.error("1. 排查组件名称拼写是否正确")
  11125. console.error(
  11126. "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"
  11127. )
  11128. console.error(
  11129. "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件"
  11130. )
  11131. } else {
  11132. throw e
  11133. }
  11134. }
  11135. var render = function () {
  11136. var _vm = this
  11137. var _h = _vm.$createElement
  11138. var _c = _vm._self._c || _h
  11139. return _vm._$s(0, "i", _vm.showPopup || _vm.onceRender)
  11140. ? _c(
  11141. "view",
  11142. {
  11143. directives: [
  11144. {
  11145. name: "show",
  11146. rawName: "v-show",
  11147. value: _vm._$s(0, "v-show", _vm.showPopup),
  11148. expression: "_$s(0,'v-show',showPopup)",
  11149. },
  11150. ],
  11151. staticClass: _vm._$s(0, "sc", "uni-popup"),
  11152. class: _vm._$s(0, "c", [
  11153. _vm.popupstyle,
  11154. _vm.isDesktop ? "fixforpc-z-index" : "",
  11155. ]),
  11156. attrs: { _i: 0 },
  11157. },
  11158. [
  11159. _c(
  11160. "view",
  11161. { attrs: { _i: 1 }, on: { touchstart: _vm.touchstart } },
  11162. [
  11163. _vm._$s(2, "i", _vm.maskShow)
  11164. ? _c("uni-transition", {
  11165. key: "1",
  11166. attrs: {
  11167. name: "mask",
  11168. "mode-class": "fade",
  11169. styles: _vm.maskClass,
  11170. duration: _vm.duration,
  11171. show: _vm.showTrans,
  11172. _i: 2,
  11173. },
  11174. on: { click: _vm.onTap },
  11175. })
  11176. : _vm._e(),
  11177. _c(
  11178. "uni-transition",
  11179. {
  11180. key: "2",
  11181. attrs: {
  11182. "mode-class": _vm.ani,
  11183. name: "content",
  11184. styles: _vm.transClass,
  11185. duration: _vm.duration,
  11186. show: _vm.showTrans,
  11187. "once-render": _vm.onceRender,
  11188. _i: 3,
  11189. },
  11190. on: { click: _vm.onTap },
  11191. },
  11192. [
  11193. _c(
  11194. "view",
  11195. {
  11196. staticClass: _vm._$s(4, "sc", "uni-popup__wrapper"),
  11197. class: _vm._$s(4, "c", [_vm.popupstyle]),
  11198. style: _vm._$s(4, "s", { backgroundColor: _vm.bg }),
  11199. attrs: { _i: 4 },
  11200. on: { click: _vm.clear },
  11201. },
  11202. [_vm._t("default", null, { _i: 5 })],
  11203. 2
  11204. ),
  11205. ]
  11206. ),
  11207. ],
  11208. 1
  11209. ),
  11210. ]
  11211. )
  11212. : _vm._e()
  11213. }
  11214. var recyclableRender = false
  11215. var staticRenderFns = []
  11216. render._withStripped = true
  11217. /***/ }),
  11218. /* 58 */
  11219. /*!******************************************************************************************************************!*\
  11220. !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-transition/components/uni-transition/uni-transition.vue ***!
  11221. \******************************************************************************************************************/
  11222. /*! no static exports found */
  11223. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  11224. "use strict";
  11225. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-transition.vue?vue&type=template&id=6369f8c4& */ 59);\n/* harmony import */ var _uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-transition.vue?vue&type=script&lang=js& */ 61);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-transition/components/uni-transition/uni-transition.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBMkg7QUFDM0g7QUFDa0U7QUFDTDs7O0FBRzdEO0FBQzBMO0FBQzFMLGdCQUFnQiwyTEFBVTtBQUMxQixFQUFFLG9GQUFNO0FBQ1IsRUFBRSx5RkFBTTtBQUNSLEVBQUUsa0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsNkZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNTguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS10cmFuc2l0aW9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02MzY5ZjhjNCZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3VuaS10cmFuc2l0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vdW5pLXRyYW5zaXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvdW5pLXRyYW5zaXRpb24vY29tcG9uZW50cy91bmktdHJhbnNpdGlvbi91bmktdHJhbnNpdGlvbi52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///58\n");
  11226. /***/ }),
  11227. /* 59 */
  11228. /*!*************************************************************************************************************************************************!*\
  11229. !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-transition/components/uni-transition/uni-transition.vue?vue&type=template&id=6369f8c4& ***!
  11230. \*************************************************************************************************************************************************/
  11231. /*! exports provided: render, staticRenderFns, recyclableRender, components */
  11232. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  11233. "use strict";
  11234. __webpack_require__.r(__webpack_exports__);
  11235. /* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-transition.vue?vue&type=template&id=6369f8c4& */ 60);
  11236. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__["render"]; });
  11237. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
  11238. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
  11239. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_template_id_6369f8c4___WEBPACK_IMPORTED_MODULE_0__["components"]; });
  11240. /***/ }),
  11241. /* 60 */
  11242. /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  11243. !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/uni_modules/uni-transition/components/uni-transition/uni-transition.vue?vue&type=template&id=6369f8c4& ***!
  11244. \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  11245. /*! exports provided: render, staticRenderFns, recyclableRender, components */
  11246. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  11247. "use strict";
  11248. __webpack_require__.r(__webpack_exports__);
  11249. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
  11250. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
  11251. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
  11252. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
  11253. var components
  11254. var render = function () {
  11255. var _vm = this
  11256. var _h = _vm.$createElement
  11257. var _c = _vm._self._c || _h
  11258. return _vm._$s(0, "i", _vm.isShow || _vm.onceRender)
  11259. ? _c(
  11260. "view",
  11261. {
  11262. directives: [
  11263. {
  11264. name: "show",
  11265. rawName: "v-show",
  11266. value: _vm._$s(0, "v-show", _vm.isShow),
  11267. expression: "_$s(0,'v-show',isShow)",
  11268. },
  11269. ],
  11270. ref: "ani",
  11271. class: _vm._$s(0, "c", _vm.customClass),
  11272. style: _vm._$s(0, "s", _vm.transformStyles),
  11273. attrs: {
  11274. animation: _vm._$s(0, "a-animation", _vm.animationData),
  11275. _i: 0,
  11276. },
  11277. on: { click: _vm.onClick },
  11278. },
  11279. [_vm._t("default", null, { _i: 1 })],
  11280. 2
  11281. )
  11282. : _vm._e()
  11283. }
  11284. var recyclableRender = false
  11285. var staticRenderFns = []
  11286. render._withStripped = true
  11287. /***/ }),
  11288. /* 61 */
  11289. /*!*******************************************************************************************************************************************!*\
  11290. !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-transition/components/uni-transition/uni-transition.vue?vue&type=script&lang=js& ***!
  11291. \*******************************************************************************************************************************************/
  11292. /*! no static exports found */
  11293. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  11294. "use strict";
  11295. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-transition.vue?vue&type=script&lang=js& */ 62);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQXNvQixDQUFnQiw0bkJBQUcsRUFBQyIsImZpbGUiOiI2MS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vdW5pLXRyYW5zaXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS10cmFuc2l0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///61\n");
  11296. /***/ }),
  11297. /* 62 */
  11298. /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  11299. !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/uni_modules/uni-transition/components/uni-transition/uni-transition.vue?vue&type=script&lang=js& ***!
  11300. \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  11301. /*! no static exports found */
  11302. /***/ (function(module, exports, __webpack_require__) {
  11303. "use strict";
  11304. eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 63));\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _createAnimation = __webpack_require__(/*! ./createAnimation */ 69);\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n/**\n * Transition 过渡动画\n * @description 简单过渡动画组件\n * @tutorial https://ext.dcloud.net.cn/plugin?id=985\n * @property {Boolean} show = [false|true] 控制组件显示或隐藏\n * @property {Array|String} modeClass = [fade|slide-top|slide-right|slide-bottom|slide-left|zoom-in|zoom-out] 过渡动画类型\n * @value fade 渐隐渐出过渡\n * @value slide-top 由上至下过渡\n * @value slide-right 由右至左过渡\n * @value slide-bottom 由下至上过渡\n * @value slide-left 由左至右过渡\n * @value zoom-in 由小到大过渡\n * @value zoom-out 由大到小过渡\n * @property {Number} duration 过渡动画持续时间\n * @property {Object} styles 组件样式,同 css 样式,注意带’-‘连接符的属性需要使用小驼峰写法如:`backgroundColor:red`\n */\nvar _default2 = {\n name: 'uniTransition',\n emits: ['click', 'change'],\n props: {\n show: {\n type: Boolean,\n default: false\n },\n modeClass: {\n type: [Array, String],\n default: function _default() {\n return 'fade';\n }\n },\n duration: {\n type: Number,\n default: 300\n },\n styles: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n customClass: {\n type: String,\n default: ''\n },\n onceRender: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n isShow: false,\n transform: '',\n opacity: 1,\n animationData: {},\n durationTime: 300,\n config: {}\n };\n },\n watch: {\n show: {\n handler: function handler(newVal) {\n if (newVal) {\n this.open();\n } else {\n // 避免上来就执行 close,导致动画错乱\n if (this.isShow) {\n this.close();\n }\n }\n },\n immediate: true\n }\n },\n computed: {\n // 生成样式数据\n stylesObject: function stylesObject() {\n var styles = _objectSpread(_objectSpread({}, this.styles), {}, {\n 'transition-duration': this.duration / 1000 + 's'\n });\n var transform = '';\n for (var i in styles) {\n var line = this.toLine(i);\n transform += line + ':' + styles[i] + ';';\n }\n return transform;\n },\n // 初始化动画条件\n transformStyles: function transformStyles() {\n return 'transform:' + this.transform + ';' + 'opacity:' + this.opacity + ';' + this.stylesObject;\n }\n },\n created: function created() {\n // 动画默认配置\n this.config = {\n duration: this.duration,\n timingFunction: 'ease',\n transformOrigin: '50% 50%',\n delay: 0\n };\n this.durationTime = this.duration;\n },\n methods: {\n /**\n * ref 触发 初始化动画\n */\n init: function init() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (obj.duration) {\n this.durationTime = obj.duration;\n }\n this.animation = (0, _createAnimation.createAnimation)(Object.assign(this.config, obj), this);\n },\n /**\n * 点击组件触发回调\n */\n onClick: function onClick() {\n this.$emit('click', {\n detail: this.isShow\n });\n },\n /**\n * ref 触发 动画分组\n * @param {Object} obj\n */\n step: function step(obj) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.animation) return;\n for (var i in obj) {\n try {\n if ((0, _typeof2.default)(obj[i]) === 'object') {\n var _this$animation;\n (_this$animation = this.animation)[i].apply(_this$animation, (0, _toConsumableArray2.default)(obj[i]));\n } else {\n this.animation[i](obj[i]);\n }\n } catch (e) {\n __f__(\"error\", \"\\u65B9\\u6CD5 \".concat(i, \" \\u4E0D\\u5B58\\u5728\"), \" at uni_modules/uni-transition/components/uni-transition/uni-transition.vue:143\");\n }\n }\n this.animation.step(config);\n return this;\n },\n /**\n * ref 触发 执行动画\n */\n run: function run(fn) {\n if (!this.animation) return;\n this.animation.run(fn);\n },\n // 开始过度动画\n open: function open() {\n var _this = this;\n clearTimeout(this.timer);\n this.transform = '';\n this.isShow = true;\n var _this$styleInit = this.styleInit(false),\n opacity = _this$styleInit.opacity,\n transform = _this$styleInit.transform;\n if (typeof opacity !== 'undefined') {\n this.opacity = opacity;\n }\n this.transform = transform;\n // 确保动态样式已经生效后,执行动画,如果不加 nextTick ,会导致 wx 动画执行异常\n this.$nextTick(function () {\n // TODO 定时器保证动画完全执行,目前有些问题,后面会取消定时器\n _this.timer = setTimeout(function () {\n _this.animation = (0, _createAnimation.createAnimation)(_this.config, _this);\n _this.tranfromInit(false).step();\n _this.animation.run();\n _this.$emit('change', {\n detail: _this.isShow\n });\n }, 20);\n });\n },\n // 关闭过度动画\n close: function close(type) {\n var _this2 = this;\n if (!this.animation) return;\n this.tranfromInit(true).step().run(function () {\n _this2.isShow = false;\n _this2.animationData = null;\n _this2.animation = null;\n var _this2$styleInit = _this2.styleInit(false),\n opacity = _this2$styleInit.opacity,\n transform = _this2$styleInit.transform;\n _this2.opacity = opacity || 1;\n _this2.transform = transform;\n _this2.$emit('change', {\n detail: _this2.isShow\n });\n });\n },\n // 处理动画开始前的默认样式\n styleInit: function styleInit(type) {\n var _this3 = this;\n var styles = {\n transform: ''\n };\n var buildStyle = function buildStyle(type, mode) {\n if (mode === 'fade') {\n styles.opacity = _this3.animationType(type)[mode];\n } else {\n styles.transform += _this3.animationType(type)[mode] + ' ';\n }\n };\n if (typeof this.modeClass === 'string') {\n buildStyle(type, this.modeClass);\n } else {\n this.modeClass.forEach(function (mode) {\n buildStyle(type, mode);\n });\n }\n return styles;\n },\n // 处理内置组合动画\n tranfromInit: function tranfromInit(type) {\n var _this4 = this;\n var buildTranfrom = function buildTranfrom(type, mode) {\n var aniNum = null;\n if (mode === 'fade') {\n aniNum = type ? 0 : 1;\n } else {\n aniNum = type ? '-100%' : '0';\n if (mode === 'zoom-in') {\n aniNum = type ? 0.8 : 1;\n }\n if (mode === 'zoom-out') {\n aniNum = type ? 1.2 : 1;\n }\n if (mode === 'slide-right') {\n aniNum = type ? '100%' : '0';\n }\n if (mode === 'slide-bottom') {\n aniNum = type ? '100%' : '0';\n }\n }\n _this4.animation[_this4.animationMode()[mode]](aniNum);\n };\n if (typeof this.modeClass === 'string') {\n buildTranfrom(type, this.modeClass);\n } else {\n this.modeClass.forEach(function (mode) {\n buildTranfrom(type, mode);\n });\n }\n return this.animation;\n },\n animationType: function animationType(type) {\n return {\n fade: type ? 1 : 0,\n 'slide-top': \"translateY(\".concat(type ? '0' : '-100%', \")\"),\n 'slide-right': \"translateX(\".concat(type ? '0' : '100%', \")\"),\n 'slide-bottom': \"translateY(\".concat(type ? '0' : '100%', \")\"),\n 'slide-left': \"translateX(\".concat(type ? '0' : '-100%', \")\"),\n 'zoom-in': \"scaleX(\".concat(type ? 1 : 0.8, \") scaleY(\").concat(type ? 1 : 0.8, \")\"),\n 'zoom-out': \"scaleX(\".concat(type ? 1 : 1.2, \") scaleY(\").concat(type ? 1 : 1.2, \")\")\n };\n },\n // 内置动画类型与实际动画对应字典\n animationMode: function animationMode() {\n return {\n fade: 'opacity',\n 'slide-top': 'translateY',\n 'slide-right': 'translateX',\n 'slide-bottom': 'translateY',\n 'slide-left': 'translateX',\n 'zoom-in': 'scale',\n 'zoom-out': 'scale'\n };\n },\n // 驼峰转中横线\n toLine: function toLine(name) {\n return name.replace(/([A-Z])/g, '-$1').toLowerCase();\n }\n }\n};\nexports.default = _default2;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 27)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXRyYW5zaXRpb24vY29tcG9uZW50cy91bmktdHJhbnNpdGlvbi91bmktdHJhbnNpdGlvbi52dWUiXSwibmFtZXMiOlsibmFtZSIsImVtaXRzIiwicHJvcHMiLCJzaG93IiwidHlwZSIsImRlZmF1bHQiLCJtb2RlQ2xhc3MiLCJkdXJhdGlvbiIsInN0eWxlcyIsImN1c3RvbUNsYXNzIiwib25jZVJlbmRlciIsImRhdGEiLCJpc1Nob3ciLCJ0cmFuc2Zvcm0iLCJvcGFjaXR5IiwiYW5pbWF0aW9uRGF0YSIsImR1cmF0aW9uVGltZSIsImNvbmZpZyIsIndhdGNoIiwiaGFuZGxlciIsImltbWVkaWF0ZSIsImNvbXB1dGVkIiwic3R5bGVzT2JqZWN0IiwidHJhbnNmb3JtU3R5bGVzIiwiY3JlYXRlZCIsInRpbWluZ0Z1bmN0aW9uIiwidHJhbnNmb3JtT3JpZ2luIiwiZGVsYXkiLCJtZXRob2RzIiwiaW5pdCIsIm9uQ2xpY2siLCJkZXRhaWwiLCJzdGVwIiwicnVuIiwib3BlbiIsImNsZWFyVGltZW91dCIsImNsb3NlIiwic3R5bGVJbml0IiwiYnVpbGRTdHlsZSIsInRyYW5mcm9tSW5pdCIsImFuaU51bSIsImJ1aWxkVHJhbmZyb20iLCJhbmltYXRpb25UeXBlIiwiZmFkZSIsImFuaW1hdGlvbk1vZGUiLCJ0b0xpbmUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFLQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWZBLGdCQWdCQTtFQUNBQTtFQUNBQztFQUNBQztJQUNBQztNQUNBQztNQUNBQztJQUNBO0lBQ0FDO01BQ0FGO01BQ0FDO1FBQ0E7TUFDQTtJQUNBO0lBQ0FFO01BQ0FIO01BQ0FDO0lBQ0E7SUFDQUc7TUFDQUo7TUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFDQUk7TUFDQUw7TUFDQUM7SUFDQTtJQUNBSztNQUNBTjtNQUNBQztJQUNBO0VBQ0E7RUFDQU07SUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQWY7TUFDQWdCO1FBQ0E7VUFDQTtRQUNBO1VBQ0E7VUFDQTtZQUNBO1VBQ0E7UUFDQTtNQUNBO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0FDO01BQ0EsNkNBQ0E7UUFDQTtNQUFBLEVBQ0E7TUFDQTtNQUNBO1FBQ0E7UUFDQVQ7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBVTtNQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0E7TUFDQWpCO01BQ0FrQjtNQUNBQztNQUNBQztJQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0FBQ0E7QUFDQTtJQUNBQztNQUFBO01BQ0E7UUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBQztNQUNBO1FBQ0FDO01BQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0FDO01BQUE7TUFDQTtNQUNBO1FBQ0E7VUFDQTtZQUFBO1lBQ0E7VUFDQTtZQUNBO1VBQ0E7UUFDQTtVQUNBO1FBQ0E7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQUE7TUFDQUM7TUFDQTtNQUNBO01BQ0E7UUFBQXJCO1FBQUFEO01BQ0E7UUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0E7UUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1lBQ0FrQjtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUs7TUFBQTtNQUNBO01BQ0Esd0JBQ0FKLE9BQ0FDO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7VUFBQW5CO1VBQUFEO1FBQ0E7UUFDQTtRQUNBO1VBQ0FrQjtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FNO01BQUE7TUFDQTtRQUNBeEI7TUFDQTtNQUNBO1FBQ0E7VUFDQUw7UUFDQTtVQUNBQTtRQUNBO01BQ0E7TUFDQTtRQUNBOEI7TUFDQTtRQUNBO1VBQ0FBO1FBQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUFBO01BQ0E7UUFDQTtRQUNBO1VBQ0FDO1FBQ0E7VUFDQUE7VUFDQTtZQUNBQTtVQUNBO1VBQ0E7WUFDQUE7VUFDQTtVQUNBO1lBQ0FBO1VBQ0E7VUFDQTtZQUNBQTtVQUNBO1FBQ0E7UUFDQTtNQUNBO01BQ0E7UUFDQUM7TUFDQTtRQUNBO1VBQ0FBO1FBQ0E7TUFDQTtNQUVBO0lBQ0E7SUFDQUM7TUFDQTtRQUNBQztRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO1FBQ0FEO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FFO01BQ0E7SUFDQTtFQUNBO0FBQ0E7QUFBQSw0QiIsImZpbGUiOiI2Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cblx0PHZpZXcgdi1pZj1cImlzU2hvd3x8b25jZVJlbmRlclwiIHYtc2hvdz1cImlzU2hvd1wiIHJlZj1cImFuaVwiIDphbmltYXRpb249XCJhbmltYXRpb25EYXRhXCIgOmNsYXNzPVwiY3VzdG9tQ2xhc3NcIiA6c3R5bGU9XCJ0cmFuc2Zvcm1TdHlsZXNcIiBAY2xpY2s9XCJvbkNsaWNrXCI+PHNsb3Q+PC9zbG90Pjwvdmlldz5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5pbXBvcnQgeyBjcmVhdGVBbmltYXRpb24gfSBmcm9tICcuL2NyZWF0ZUFuaW1hdGlvbidcblxuLyoqXG4gKiBUcmFuc2l0aW9uIOi/h+a4oeWKqOeUu1xuICogQGRlc2NyaXB0aW9uIOeugOWNlei/h+a4oeWKqOeUu+e7hOS7tlxuICogQHR1dG9yaWFsIGh0dHBzOi8vZXh0LmRjbG91ZC5uZXQuY24vcGx1Z2luP2lkPTk4NVxuICogQHByb3BlcnR5IHtCb29sZWFufSBzaG93ID0gW2ZhbHNlfHRydWVdIOaOp+WItue7hOS7tuaYvuekuuaIlumakOiXj1xuICogQHByb3BlcnR5IHtBcnJheXxTdHJpbmd9IG1vZGVDbGFzcyA9IFtmYWRlfHNsaWRlLXRvcHxzbGlkZS1yaWdodHxzbGlkZS1ib3R0b218c2xpZGUtbGVmdHx6b29tLWlufHpvb20tb3V0XSDov4fmuKHliqjnlLvnsbvlnotcbiAqICBAdmFsdWUgZmFkZSDmuJDpmpDmuJDlh7rov4fmuKFcbiAqICBAdmFsdWUgc2xpZGUtdG9wIOeUseS4iuiHs+S4i+i/h+a4oVxuICogIEB2YWx1ZSBzbGlkZS1yaWdodCDnlLHlj7Poh7Plt6bov4fmuKFcbiAqICBAdmFsdWUgc2xpZGUtYm90dG9tIOeUseS4i+iHs+S4iui/h+a4oVxuICogIEB2YWx1ZSBzbGlkZS1sZWZ0IOeUseW3puiHs+WPs+i/h+a4oVxuICogIEB2YWx1ZSB6b29tLWluIOeUseWwj+WIsOWkp+i/h+a4oVxuICogIEB2YWx1ZSB6b29tLW91dCDnlLHlpKfliLDlsI/ov4fmuKFcbiAqIEBwcm9wZXJ0eSB7TnVtYmVyfSBkdXJhdGlvbiDov4fmuKHliqjnlLvmjIHnu63ml7bpl7RcbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBzdHlsZXMg57uE5Lu25qC35byP77yM5ZCMIGNzcyDmoLflvI/vvIzms6jmhI/luKbigJkt4oCY6L+e5o6l56ym55qE5bGe5oCn6ZyA6KaB5L2/55So5bCP6am85bOw5YaZ5rOV5aaC77yaYGJhY2tncm91bmRDb2xvcjpyZWRgXG4gKi9cbmV4cG9ydCBkZWZhdWx0IHtcblx0bmFtZTogJ3VuaVRyYW5zaXRpb24nLFxuXHRlbWl0czpbJ2NsaWNrJywnY2hhbmdlJ10sXG5cdHByb3BzOiB7XG5cdFx0c2hvdzoge1xuXHRcdFx0dHlwZTogQm9vbGVhbixcblx0XHRcdGRlZmF1bHQ6IGZhbHNlXG5cdFx0fSxcblx0XHRtb2RlQ2xhc3M6IHtcblx0XHRcdHR5cGU6IFtBcnJheSwgU3RyaW5nXSxcblx0XHRcdGRlZmF1bHQoKSB7XG5cdFx0XHRcdHJldHVybiAnZmFkZSdcblx0XHRcdH1cblx0XHR9LFxuXHRcdGR1cmF0aW9uOiB7XG5cdFx0XHR0eXBlOiBOdW1iZXIsXG5cdFx0XHRkZWZhdWx0OiAzMDBcblx0XHR9LFxuXHRcdHN0eWxlczoge1xuXHRcdFx0dHlwZTogT2JqZWN0LFxuXHRcdFx0ZGVmYXVsdCgpIHtcblx0XHRcdFx0cmV0dXJuIHt9XG5cdFx0XHR9XG5cdFx0fSxcblx0XHRjdXN0b21DbGFzczp7XG5cdFx0XHR0eXBlOiBTdHJpbmcsXG5cdFx0XHRkZWZhdWx0OiAnJ1xuXHRcdH0sXG5cdFx0b25jZVJlbmRlcjp7XG5cdFx0XHR0eXBlOkJvb2xlYW4sXG5cdFx0XHRkZWZhdWx0OmZhbHNlXG5cdFx0fSxcblx0fSxcblx0ZGF0YSgpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0aXNTaG93OiBmYWxzZSxcblx0XHRcdHRyYW5zZm9ybTogJycsXG5cdFx0XHRvcGFjaXR5OiAxLFxuXHRcdFx0YW5pbWF0aW9uRGF0YToge30sXG5cdFx0XHRkdXJhdGlvblRpbWU6IDMwMCxcblx0XHRcdGNvbmZpZzoge31cblx0XHR9XG5cdH0sXG5cdHdhdGNoOiB7XG5cdFx0c2hvdzoge1xuXHRcdFx0aGFuZGxlcihuZXdWYWwpIHtcblx0XHRcdFx0aWYgKG5ld1ZhbCkge1xuXHRcdFx0XHRcdHRoaXMub3BlbigpXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly8g6YG/5YWN5LiK5p2l5bCx5omn6KGMIGNsb3NlLOWvvOiHtOWKqOeUu+mUmeS5sVxuXHRcdFx0XHRcdGlmICh0aGlzLmlzU2hvdykge1xuXHRcdFx0XHRcdFx0dGhpcy5jbG9zZSgpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0aW1tZWRpYXRlOiB0cnVlXG5cdFx0fVxuXHR9LFxuXHRjb21wdXRlZDoge1xuXHRcdC8vIOeUn+aIkOagt+W8j+aVsOaNrlxuXHRcdHN0eWxlc09iamVjdCgpIHtcblx0XHRcdGxldCBzdHlsZXMgPSB7XG5cdFx0XHRcdC4uLnRoaXMuc3R5bGVzLFxuXHRcdFx0XHQndHJhbnNpdGlvbi1kdXJhdGlvbic6IHRoaXMuZHVyYXRpb24gLyAxMDAwICsgJ3MnXG5cdFx0XHR9XG5cdFx0XHRsZXQgdHJhbnNmb3JtID0gJydcblx0XHRcdGZvciAobGV0IGkgaW4gc3R5bGVzKSB7XG5cdFx0XHRcdGxldCBsaW5lID0gdGhpcy50b0xpbmUoaSlcblx0XHRcdFx0dHJhbnNmb3JtICs9IGxpbmUgKyAnOicgKyBzdHlsZXNbaV0gKyAnOydcblx0XHRcdH1cblx0XHRcdHJldHVybiB0cmFuc2Zvcm1cblx0XHR9LFxuXHRcdC8vIOWIneWni+WMluWKqOeUu+adoeS7tlxuXHRcdHRyYW5zZm9ybVN0eWxlcygpIHtcblx0XHRcdHJldHVybiAndHJhbnNmb3JtOicgKyB0aGlzLnRyYW5zZm9ybSArICc7JyArICdvcGFjaXR5OicgKyB0aGlzLm9wYWNpdHkgKyAnOycgKyB0aGlzLnN0eWxlc09iamVjdFxuXHRcdH1cblx0fSxcblx0Y3JlYXRlZCgpIHtcblx0XHQvLyDliqjnlLvpu5jorqTphY3nva5cblx0XHR0aGlzLmNvbmZpZyA9IHtcblx0XHRcdGR1cmF0aW9uOiB0aGlzLmR1cmF0aW9uLFxuXHRcdFx0dGltaW5nRnVuY3Rpb246ICdlYXNlJyxcblx0XHRcdHRyYW5zZm9ybU9yaWdpbjogJzUwJSA1MCUnLFxuXHRcdFx0ZGVsYXk6IDBcblx0XHR9XG5cdFx0dGhpcy5kdXJhdGlvblRpbWUgPSB0aGlzLmR1cmF0aW9uXG5cdH0sXG5cdG1ldGhvZHM6IHtcblx0XHQvKipcblx0XHQgKiAgcmVmIOinpuWPkSDliJ3lp4vljJbliqjnlLtcblx0XHQgKi9cblx0XHRpbml0KG9iaiA9IHt9KSB7XG5cdFx0XHRpZiAob2JqLmR1cmF0aW9uKSB7XG5cdFx0XHRcdHRoaXMuZHVyYXRpb25UaW1lID0gb2JqLmR1cmF0aW9uXG5cdFx0XHR9XG5cdFx0XHR0aGlzLmFuaW1hdGlvbiA9IGNyZWF0ZUFuaW1hdGlvbihPYmplY3QuYXNzaWduKHRoaXMuY29uZmlnLCBvYmopLHRoaXMpXG5cdFx0fSxcblx0XHQvKipcblx0XHQgKiDngrnlh7vnu4Tku7bop6blj5Hlm57osINcblx0XHQgKi9cblx0XHRvbkNsaWNrKCkge1xuXHRcdFx0dGhpcy4kZW1pdCgnY2xpY2snLCB7XG5cdFx0XHRcdGRldGFpbDogdGhpcy5pc1Nob3dcblx0XHRcdH0pXG5cdFx0fSxcblx0XHQvKipcblx0XHQgKiByZWYg6Kem5Y+RIOWKqOeUu+WIhue7hFxuXHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcblx0XHQgKi9cblx0XHRzdGVwKG9iaiwgY29uZmlnID0ge30pIHtcblx0XHRcdGlmICghdGhpcy5hbmltYXRpb24pIHJldHVyblxuXHRcdFx0Zm9yIChsZXQgaSBpbiBvYmopIHtcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRpZih0eXBlb2Ygb2JqW2ldID09PSAnb2JqZWN0Jyl7XG5cdFx0XHRcdFx0XHR0aGlzLmFuaW1hdGlvbltpXSguLi5vYmpbaV0pXG5cdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHR0aGlzLmFuaW1hdGlvbltpXShvYmpbaV0pXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdFx0Y29uc29sZS5lcnJvcihg5pa55rOVICR7aX0g5LiN5a2Y5ZyoYClcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0dGhpcy5hbmltYXRpb24uc3RlcChjb25maWcpXG5cdFx0XHRyZXR1cm4gdGhpc1xuXHRcdH0sXG5cdFx0LyoqXG5cdFx0ICogIHJlZiDop6blj5Eg5omn6KGM5Yqo55S7XG5cdFx0ICovXG5cdFx0cnVuKGZuKSB7XG5cdFx0XHRpZiAoIXRoaXMuYW5pbWF0aW9uKSByZXR1cm5cblx0XHRcdHRoaXMuYW5pbWF0aW9uLnJ1bihmbilcblx0XHR9LFxuXHRcdC8vIOW8gOWni+i/h+W6puWKqOeUu1xuXHRcdG9wZW4oKSB7XG5cdFx0XHRjbGVhclRpbWVvdXQodGhpcy50aW1lcilcblx0XHRcdHRoaXMudHJhbnNmb3JtID0gJydcblx0XHRcdHRoaXMuaXNTaG93ID0gdHJ1ZVxuXHRcdFx0bGV0IHsgb3BhY2l0eSwgdHJhbnNmb3JtIH0gPSB0aGlzLnN0eWxlSW5pdChmYWxzZSlcblx0XHRcdGlmICh0eXBlb2Ygb3BhY2l0eSAhPT0gJ3VuZGVmaW5lZCcpIHtcblx0XHRcdFx0dGhpcy5vcGFjaXR5ID0gb3BhY2l0eVxuXHRcdFx0fVxuXHRcdFx0dGhpcy50cmFuc2Zvcm0gPSB0cmFuc2Zvcm1cblx0XHRcdC8vIOehruS/neWKqOaAgeagt+W8j+W3sue7j+eUn+aViOWQju+8jOaJp+ihjOWKqOeUu++8jOWmguaenOS4jeWKoCBuZXh0VGljayDvvIzkvJrlr7zoh7Qgd3gg5Yqo55S75omn6KGM5byC5bi4XG5cdFx0XHR0aGlzLiRuZXh0VGljaygoKSA9PiB7XG5cdFx0XHRcdC8vIFRPRE8g5a6a5pe25Zmo5L+d6K+B5Yqo55S75a6M5YWo5omn6KGM77yM55uu5YmN5pyJ5Lqb6Zeu6aKY77yM5ZCO6Z2i5Lya5Y+W5raI5a6a5pe25ZmoXG5cdFx0XHRcdHRoaXMudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR0aGlzLmFuaW1hdGlvbiA9IGNyZWF0ZUFuaW1hdGlvbih0aGlzLmNvbmZpZywgdGhpcylcblx0XHRcdFx0XHR0aGlzLnRyYW5mcm9tSW5pdChmYWxzZSkuc3RlcCgpXG5cdFx0XHRcdFx0dGhpcy5hbmltYXRpb24ucnVuKClcblx0XHRcdFx0XHR0aGlzLiRlbWl0KCdjaGFuZ2UnLCB7XG5cdFx0XHRcdFx0XHRkZXRhaWw6IHRoaXMuaXNTaG93XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0fSwgMjApXG5cdFx0XHR9KVxuXHRcdH0sXG5cdFx0Ly8g5YWz6Zet6L+H5bqm5Yqo55S7XG5cdFx0Y2xvc2UodHlwZSkge1xuXHRcdFx0aWYgKCF0aGlzLmFuaW1hdGlvbikgcmV0dXJuXG5cdFx0XHR0aGlzLnRyYW5mcm9tSW5pdCh0cnVlKVxuXHRcdFx0XHQuc3RlcCgpXG5cdFx0XHRcdC5ydW4oKCkgPT4ge1xuXHRcdFx0XHRcdHRoaXMuaXNTaG93ID0gZmFsc2Vcblx0XHRcdFx0XHR0aGlzLmFuaW1hdGlvbkRhdGEgPSBudWxsXG5cdFx0XHRcdFx0dGhpcy5hbmltYXRpb24gPSBudWxsXG5cdFx0XHRcdFx0bGV0IHsgb3BhY2l0eSwgdHJhbnNmb3JtIH0gPSB0aGlzLnN0eWxlSW5pdChmYWxzZSlcblx0XHRcdFx0XHR0aGlzLm9wYWNpdHkgPSBvcGFjaXR5IHx8IDFcblx0XHRcdFx0XHR0aGlzLnRyYW5zZm9ybSA9IHRyYW5zZm9ybVxuXHRcdFx0XHRcdHRoaXMuJGVtaXQoJ2NoYW5nZScsIHtcblx0XHRcdFx0XHRcdGRldGFpbDogdGhpcy5pc1Nob3dcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHR9KVxuXHRcdH0sXG5cdFx0Ly8g5aSE55CG5Yqo55S75byA5aeL5YmN55qE6buY6K6k5qC35byPXG5cdFx0c3R5bGVJbml0KHR5cGUpIHtcblx0XHRcdGxldCBzdHlsZXMgPSB7XG5cdFx0XHRcdHRyYW5zZm9ybTogJydcblx0XHRcdH1cblx0XHRcdGxldCBidWlsZFN0eWxlID0gKHR5cGUsIG1vZGUpID0+IHtcblx0XHRcdFx0aWYgKG1vZGUgPT09ICdmYWRlJykge1xuXHRcdFx0XHRcdHN0eWxlcy5vcGFjaXR5ID0gdGhpcy5hbmltYXRpb25UeXBlKHR5cGUpW21vZGVdXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0c3R5bGVzLnRyYW5zZm9ybSArPSB0aGlzLmFuaW1hdGlvblR5cGUodHlwZSlbbW9kZV0gKyAnICdcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKHR5cGVvZiB0aGlzLm1vZGVDbGFzcyA9PT0gJ3N0cmluZycpIHtcblx0XHRcdFx0YnVpbGRTdHlsZSh0eXBlLCB0aGlzLm1vZGVDbGFzcylcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMubW9kZUNsYXNzLmZvckVhY2gobW9kZSA9PiB7XG5cdFx0XHRcdFx0YnVpbGRTdHlsZSh0eXBlLCBtb2RlKVxuXHRcdFx0XHR9KVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHN0eWxlc1xuXHRcdH0sXG5cdFx0Ly8g5aSE55CG5YaF572u57uE5ZCI5Yqo55S7XG5cdFx0dHJhbmZyb21Jbml0KHR5cGUpIHtcblx0XHRcdGxldCBidWlsZFRyYW5mcm9tID0gKHR5cGUsIG1vZGUpID0+IHtcblx0XHRcdFx0bGV0IGFuaU51bSA9IG51bGxcblx0XHRcdFx0aWYgKG1vZGUgPT09ICdmYWRlJykge1xuXHRcdFx0XHRcdGFuaU51bSA9IHR5cGUgPyAwIDogMVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGFuaU51bSA9IHR5cGUgPyAnLTEwMCUnIDogJzAnXG5cdFx0XHRcdFx0aWYgKG1vZGUgPT09ICd6b29tLWluJykge1xuXHRcdFx0XHRcdFx0YW5pTnVtID0gdHlwZSA/IDAuOCA6IDFcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKG1vZGUgPT09ICd6b29tLW91dCcpIHtcblx0XHRcdFx0XHRcdGFuaU51bSA9IHR5cGUgPyAxLjIgOiAxXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChtb2RlID09PSAnc2xpZGUtcmlnaHQnKSB7XG5cdFx0XHRcdFx0XHRhbmlOdW0gPSB0eXBlID8gJzEwMCUnIDogJzAnXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChtb2RlID09PSAnc2xpZGUtYm90dG9tJykge1xuXHRcdFx0XHRcdFx0YW5pTnVtID0gdHlwZSA/ICcxMDAlJyA6ICcwJ1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLmFuaW1hdGlvblt0aGlzLmFuaW1hdGlvbk1vZGUoKVttb2RlXV0oYW5pTnVtKVxuXHRcdFx0fVxuXHRcdFx0aWYgKHR5cGVvZiB0aGlzLm1vZGVDbGFzcyA9PT0gJ3N0cmluZycpIHtcblx0XHRcdFx0YnVpbGRUcmFuZnJvbSh0eXBlLCB0aGlzLm1vZGVDbGFzcylcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMubW9kZUNsYXNzLmZvckVhY2gobW9kZSA9PiB7XG5cdFx0XHRcdFx0YnVpbGRUcmFuZnJvbSh0eXBlLCBtb2RlKVxuXHRcdFx0XHR9KVxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gdGhpcy5hbmltYXRpb25cblx0XHR9LFxuXHRcdGFuaW1hdGlvblR5cGUodHlwZSkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0ZmFkZTogdHlwZSA/IDEgOiAwLFxuXHRcdFx0XHQnc2xpZGUtdG9wJzogYHRyYW5zbGF0ZVkoJHt0eXBlID8gJzAnIDogJy0xMDAlJ30pYCxcblx0XHRcdFx0J3NsaWRlLXJpZ2h0JzogYHRyYW5zbGF0ZVgoJHt0eXBlID8gJzAnIDogJzEwMCUnfSlgLFxuXHRcdFx0XHQnc2xpZGUtYm90dG9tJzogYHRyYW5zbGF0ZVkoJHt0eXBlID8gJzAnIDogJzEwMCUnfSlgLFxuXHRcdFx0XHQnc2xpZGUtbGVmdCc6IGB0cmFuc2xhdGVYKCR7dHlwZSA/ICcwJyA6ICctMTAwJSd9KWAsXG5cdFx0XHRcdCd6b29tLWluJzogYHNjYWxlWCgke3R5cGUgPyAxIDogMC44fSkgc2NhbGVZKCR7dHlwZSA/IDEgOiAwLjh9KWAsXG5cdFx0XHRcdCd6b29tLW91dCc6IGBzY2FsZVgoJHt0eXBlID8gMSA6IDEuMn0pIHNjYWxlWSgke3R5cGUgPyAxIDogMS4yfSlgXG5cdFx0XHR9XG5cdFx0fSxcblx0XHQvLyDlhoXnva7liqjnlLvnsbvlnovkuI7lrp7pmYXliqjnlLvlr7nlupTlrZflhbhcblx0XHRhbmltYXRpb25Nb2RlKCkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0ZmFkZTogJ29wYWNpdHknLFxuXHRcdFx0XHQnc2xpZGUtdG9wJzogJ3RyYW5zbGF0ZVknLFxuXHRcdFx0XHQnc2xpZGUtcmlnaHQnOiAndHJhbnNsYXRlWCcsXG5cdFx0XHRcdCdzbGlkZS1ib3R0b20nOiAndHJhbnNsYXRlWScsXG5cdFx0XHRcdCdzbGlkZS1sZWZ0JzogJ3RyYW5zbGF0ZVgnLFxuXHRcdFx0XHQnem9vbS1pbic6ICdzY2FsZScsXG5cdFx0XHRcdCd6b29tLW91dCc6ICdzY2FsZSdcblx0XHRcdH1cblx0XHR9LFxuXHRcdC8vIOmpvOWzsOi9rOS4reaoque6v1xuXHRcdHRvTGluZShuYW1lKSB7XG5cdFx0XHRyZXR1cm4gbmFtZS5yZXBsYWNlKC8oW0EtWl0pL2csICctJDEnKS50b0xvd2VyQ2FzZSgpXG5cdFx0fVxuXHR9XG59XG48L3NjcmlwdD5cblxuPHN0eWxlPjwvc3R5bGU+XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///62\n");
  11305. /***/ }),
  11306. /* 63 */
  11307. /*!******************************************************************!*\
  11308. !*** ./node_modules/@babel/runtime/helpers/toConsumableArray.js ***!
  11309. \******************************************************************/
  11310. /*! no static exports found */
  11311. /***/ (function(module, exports, __webpack_require__) {
  11312. var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ 64);
  11313. var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ 66);
  11314. var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ 67);
  11315. var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ 68);
  11316. function _toConsumableArray(arr) {
  11317. return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();
  11318. }
  11319. module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
  11320. /***/ }),
  11321. /* 64 */
  11322. /*!******************************************************************!*\
  11323. !*** ./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***!
  11324. \******************************************************************/
  11325. /*! no static exports found */
  11326. /***/ (function(module, exports, __webpack_require__) {
  11327. var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ 65);
  11328. function _arrayWithoutHoles(arr) {
  11329. if (Array.isArray(arr)) return arrayLikeToArray(arr);
  11330. }
  11331. module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
  11332. /***/ }),
  11333. /* 65 */
  11334. /*!*****************************************************************!*\
  11335. !*** ./node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!
  11336. \*****************************************************************/
  11337. /*! no static exports found */
  11338. /***/ (function(module, exports) {
  11339. function _arrayLikeToArray(arr, len) {
  11340. if (len == null || len > arr.length) len = arr.length;
  11341. for (var i = 0, arr2 = new Array(len); i < len; i++) {
  11342. arr2[i] = arr[i];
  11343. }
  11344. return arr2;
  11345. }
  11346. module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
  11347. /***/ }),
  11348. /* 66 */
  11349. /*!****************************************************************!*\
  11350. !*** ./node_modules/@babel/runtime/helpers/iterableToArray.js ***!
  11351. \****************************************************************/
  11352. /*! no static exports found */
  11353. /***/ (function(module, exports) {
  11354. function _iterableToArray(iter) {
  11355. if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
  11356. }
  11357. module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
  11358. /***/ }),
  11359. /* 67 */
  11360. /*!***************************************************************************!*\
  11361. !*** ./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!
  11362. \***************************************************************************/
  11363. /*! no static exports found */
  11364. /***/ (function(module, exports, __webpack_require__) {
  11365. var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ 65);
  11366. function _unsupportedIterableToArray(o, minLen) {
  11367. if (!o) return;
  11368. if (typeof o === "string") return arrayLikeToArray(o, minLen);
  11369. var n = Object.prototype.toString.call(o).slice(8, -1);
  11370. if (n === "Object" && o.constructor) n = o.constructor.name;
  11371. if (n === "Map" || n === "Set") return Array.from(o);
  11372. if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);
  11373. }
  11374. module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
  11375. /***/ }),
  11376. /* 68 */
  11377. /*!******************************************************************!*\
  11378. !*** ./node_modules/@babel/runtime/helpers/nonIterableSpread.js ***!
  11379. \******************************************************************/
  11380. /*! no static exports found */
  11381. /***/ (function(module, exports) {
  11382. function _nonIterableSpread() {
  11383. throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  11384. }
  11385. module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports;
  11386. /***/ }),
  11387. /* 69 */
  11388. /*!******************************************************************************************************************!*\
  11389. !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-transition/components/uni-transition/createAnimation.js ***!
  11390. \******************************************************************************************************************/
  11391. /*! no static exports found */
  11392. /***/ (function(module, exports, __webpack_require__) {
  11393. "use strict";
  11394. eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createAnimation = createAnimation;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ 52));\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ 53));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n// const defaultOption = {\n// \tduration: 300,\n// \ttimingFunction: 'linear',\n// \tdelay: 0,\n// \ttransformOrigin: '50% 50% 0'\n// }\nvar MPAnimation = /*#__PURE__*/function () {\n function MPAnimation(options, _this) {\n (0, _classCallCheck2.default)(this, MPAnimation);\n this.options = options;\n this.animation = uni.createAnimation(options);\n this.currentStepAnimates = {};\n this.next = 0;\n this.$ = _this;\n }\n (0, _createClass2.default)(MPAnimation, [{\n key: \"_nvuePushAnimates\",\n value: function _nvuePushAnimates(type, args) {\n var aniObj = this.currentStepAnimates[this.next];\n var styles = {};\n if (!aniObj) {\n styles = {\n styles: {},\n config: {}\n };\n } else {\n styles = aniObj;\n }\n if (animateTypes1.includes(type)) {\n if (!styles.styles.transform) {\n styles.styles.transform = '';\n }\n var unit = '';\n if (type === 'rotate') {\n unit = 'deg';\n }\n styles.styles.transform += \"\".concat(type, \"(\").concat(args + unit, \") \");\n } else {\n styles.styles[type] = \"\".concat(args);\n }\n this.currentStepAnimates[this.next] = styles;\n }\n }, {\n key: \"_animateRun\",\n value: function _animateRun() {\n var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var ref = this.$.$refs['ani'].ref;\n if (!ref) return;\n return new Promise(function (resolve, reject) {\n nvueAnimation.transition(ref, _objectSpread({\n styles: styles\n }, config), function (res) {\n resolve();\n });\n });\n }\n }, {\n key: \"_nvueNextAnimate\",\n value: function _nvueNextAnimate(animates) {\n var _this2 = this;\n var step = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var fn = arguments.length > 2 ? arguments[2] : undefined;\n var obj = animates[step];\n if (obj) {\n var styles = obj.styles,\n config = obj.config;\n this._animateRun(styles, config).then(function () {\n step += 1;\n _this2._nvueNextAnimate(animates, step, fn);\n });\n } else {\n this.currentStepAnimates = {};\n typeof fn === 'function' && fn();\n this.isEnd = true;\n }\n }\n }, {\n key: \"step\",\n value: function step() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.animation.step(config);\n return this;\n }\n }, {\n key: \"run\",\n value: function run(fn) {\n this.$.animationData = this.animation.export();\n this.$.timer = setTimeout(function () {\n typeof fn === 'function' && fn();\n }, this.$.durationTime);\n }\n }]);\n return MPAnimation;\n}();\nvar animateTypes1 = ['matrix', 'matrix3d', 'rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scale3d', 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'translate', 'translate3d', 'translateX', 'translateY', 'translateZ'];\nvar animateTypes2 = ['opacity', 'backgroundColor'];\nvar animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom'];\nanimateTypes1.concat(animateTypes2, animateTypes3).forEach(function (type) {\n MPAnimation.prototype[type] = function () {\n var _this$animation;\n (_this$animation = this.animation)[type].apply(_this$animation, arguments);\n return this;\n };\n});\nfunction createAnimation(option, _this) {\n if (!_this) return;\n clearTimeout(_this.timer);\n return new MPAnimation(option, _this);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXRyYW5zaXRpb24vY29tcG9uZW50cy91bmktdHJhbnNpdGlvbi9jcmVhdGVBbmltYXRpb24uanMiXSwibmFtZXMiOlsiTVBBbmltYXRpb24iLCJvcHRpb25zIiwiX3RoaXMiLCJhbmltYXRpb24iLCJ1bmkiLCJjcmVhdGVBbmltYXRpb24iLCJjdXJyZW50U3RlcEFuaW1hdGVzIiwibmV4dCIsIiQiLCJ0eXBlIiwiYXJncyIsImFuaU9iaiIsInN0eWxlcyIsImNvbmZpZyIsImFuaW1hdGVUeXBlczEiLCJpbmNsdWRlcyIsInRyYW5zZm9ybSIsInVuaXQiLCJyZWYiLCIkcmVmcyIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwibnZ1ZUFuaW1hdGlvbiIsInRyYW5zaXRpb24iLCJyZXMiLCJhbmltYXRlcyIsInN0ZXAiLCJmbiIsIm9iaiIsIl9hbmltYXRlUnVuIiwidGhlbiIsIl9udnVlTmV4dEFuaW1hdGUiLCJpc0VuZCIsImFuaW1hdGlvbkRhdGEiLCJleHBvcnQiLCJ0aW1lciIsInNldFRpbWVvdXQiLCJkdXJhdGlvblRpbWUiLCJhbmltYXRlVHlwZXMyIiwiYW5pbWF0ZVR5cGVzMyIsImNvbmNhdCIsImZvckVhY2giLCJwcm90b3R5cGUiLCJvcHRpb24iLCJjbGVhclRpbWVvdXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBLElBSU1BLFdBQVc7RUFDaEIscUJBQVlDLE9BQU8sRUFBRUMsS0FBSyxFQUFFO0lBQUE7SUFDM0IsSUFBSSxDQUFDRCxPQUFPLEdBQUdBLE9BQU87SUFDdEIsSUFBSSxDQUFDRSxTQUFTLEdBQUdDLEdBQUcsQ0FBQ0MsZUFBZSxDQUFDSixPQUFPLENBQUM7SUFDN0MsSUFBSSxDQUFDSyxtQkFBbUIsR0FBRyxDQUFDLENBQUM7SUFDN0IsSUFBSSxDQUFDQyxJQUFJLEdBQUcsQ0FBQztJQUNiLElBQUksQ0FBQ0Ms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Q0FBQ3VDLE1BQU0sRUFBRTFDLEtBQUssRUFBRTtFQUM5QyxJQUFHLENBQUNBLEtBQUssRUFBRTtFQUNYMkMsWUFBWSxDQUFDM0MsS0FBSyxDQUFDa0MsS0FBSyxDQUFDO0VBQ3pCLE9BQU8sSUFBSXBDLFdBQVcsQ0FBQzRDLE1BQU0sRUFBRTFDLEtBQUssQ0FBQztBQUN0QyIsImZpbGUiOiI2OS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGNvbnN0IGRlZmF1bHRPcHRpb24gPSB7XHJcbi8vIFx0ZHVyYXRpb246IDMwMCxcclxuLy8gXHR0aW1pbmdGdW5jdGlvbjogJ2xpbmVhcicsXHJcbi8vIFx0ZGVsYXk6IDAsXHJcbi8vIFx0dHJhbnNmb3JtT3JpZ2luOiAnNTAlIDUwJSAwJ1xyXG4vLyB9XHJcblxyXG5cclxuXHJcbmNsYXNzIE1QQW5pbWF0aW9uIHtcclxuXHRjb25zdHJ1Y3RvcihvcHRpb25zLCBfdGhpcykge1xyXG5cdFx0dGhpcy5vcHRpb25zID0gb3B0aW9uc1xyXG5cdFx0dGhpcy5hbmltYXRpb24gPSB1bmkuY3JlYXRlQW5pbWF0aW9uKG9wdGlvbnMpXHJcblx0XHR0aGlzLmN1cnJlbnRTdGVwQW5pbWF0ZXMgPSB7fVxyXG5cdFx0dGhpcy5uZXh0ID0gMFxyXG5cdFx0dGhpcy4kID0gX3RoaXNcclxuXHJcblx0fVxyXG5cclxuXHRfbnZ1ZVB1c2hBbmltYXRlcyh0eXBlLCBhcmdzKSB7XHJcblx0XHRsZXQgYW5pT2JqID0gdGhpcy5jdXJyZW50U3RlcEFuaW1hdGVzW3RoaXMubmV4dF1cclxuXHRcdGxldCBzdHlsZXMgPSB7fVxyXG5cdFx0aWYgKCFhbmlPYmopIHtcclxuXHRcdFx0c3R5bGVzID0ge1xyXG5cdFx0XHRcdHN0eWxlczoge30sXHJcblx0XHRcdFx0Y29uZmlnOiB7fVxyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRzdHlsZXMgPSBhbmlPYmpcclxuXHRcdH1cclxuXHRcdGlmIChhbmltYXRlVHlwZXMxLmluY2x1ZGVzKHR5cGUpKSB7XHJcblx0XHRcdGlmICghc3R5bGVzLnN0eWxlcy50cmFuc2Zvcm0pIHtcclxuXHRcdFx0XHRzdHlsZXMuc3R5bGVzLnRyYW5zZm9ybSA9ICcnXHJcblx0XHRcdH1cclxuXHRcdFx0bGV0IHVuaXQgPSAnJ1xyXG5cdFx0XHRpZih0eXBlID09PSAncm90YXRlJyl7XHJcblx0XHRcdFx0dW5pdCA9ICdkZWcnXHJcblx0XHRcdH1cclxuXHRcdFx0c3R5bGVzLnN0eWxlcy50cmFuc2Zvcm0gKz0gYCR7dHlwZX0oJHthcmdzK3VuaXR9KSBgXHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRzdHlsZXMuc3R5bGVzW3R5cGVdID0gYCR7YXJnc31gXHJcblx0XHR9XHJcblx0XHR0aGlzLmN1cnJlbnRTdGVwQW5pbWF0ZXNbdGhpcy5uZXh0XSA9IHN0eWxlc1xyXG5cdH1cclxuXHRfYW5pbWF0ZVJ1bihzdHlsZXMgPSB7fSwgY29uZmlnID0ge30pIHtcclxuXHRcdGxldCByZWYgPSB0aGlzLiQuJHJlZnNbJ2FuaSddLnJlZlxyXG5cdFx0aWYgKCFyZWYpIHJldHVyblxyXG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0bnZ1ZUFuaW1hdGlvbi50cmFuc2l0aW9uKHJlZiwge1xyXG5cdFx0XHRcdHN0eWxlcyxcclxuXHRcdFx0XHQuLi5jb25maWdcclxuXHRcdFx0fSwgcmVzID0+IHtcclxuXHRcdFx0XHRyZXNvbHZlKClcclxuXHRcdFx0fSlcclxuXHRcdH0pXHJcblx0fVxyXG5cclxuXHRfbnZ1ZU5leHRBbmltYXRlKGFuaW1hdGVzLCBzdGVwID0gMCwgZm4pIHtcclxuXHRcdGxldCBvYmogPSBhbmltYXRlc1tzdGVwXVxyXG5cdFx0aWYgKG9iaikge1xyXG5cdFx0XHRsZXQge1xyXG5cdFx0XHRcdHN0eWxlcyxcclxuXHRcdFx0XHRjb25maWdcclxuXHRcdFx0fSA9IG9ialxyXG5cdFx0XHR0aGlzLl9hbmltYXRlUnVuKHN0eWxlcywgY29uZmlnKS50aGVuKCgpID0+IHtcclxuXHRcdFx0XHRzdGVwICs9IDFcclxuXHRcdFx0XHR0aGlzLl9udnVlTmV4dEFuaW1hdGUoYW5pbWF0ZXMsIHN0ZXAsIGZuKVxyXG5cdFx0XHR9KVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5jdXJyZW50U3RlcEFuaW1hdGVzID0ge31cclxuXHRcdFx0dHlwZW9mIGZuID09PSAnZnVuY3Rpb24nICYmIGZuKClcclxuXHRcdFx0dGhpcy5pc0VuZCA9IHRydWVcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHN0ZXAoY29uZmlnID0ge30pIHtcclxuXHJcblx0XHR0aGlzLmFuaW1hdGlvbi5zdGVwKGNvbmZpZylcclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHRcdHJldHVybiB0aGlzXHJcblx0fVxyXG5cclxuXHRydW4oZm4pIHtcclxuXHJcblx0XHR0aGlzLiQuYW5pbWF0aW9uRGF0YSA9IHRoaXMuYW5pbWF0aW9uLmV4cG9ydCgpXHJcblx0XHR0aGlzLiQudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0dHlwZW9mIGZuID09PSAnZnVuY3Rpb24nICYmIGZuKClcclxuXHRcdH0sIHRoaXMuJC5kdXJhdGlvblRpbWUpXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHR9XHJcbn1cclxuXHJcblxyXG5jb25zdCBhbmltYXRlVHlwZXMxID0gWydtYXRyaXgnLCAnbWF0cml4M2QnLCAncm90YXRlJywgJ3JvdGF0ZTNkJywgJ3JvdGF0ZVgnLCAncm90YXRlWScsICdyb3RhdGVaJywgJ3NjYWxlJywgJ3NjYWxlM2QnLFxyXG5cdCdzY2FsZVgnLCAnc2NhbGVZJywgJ3NjYWxlWicsICdza2V3JywgJ3NrZXdYJywgJ3NrZXdZJywgJ3RyYW5zbGF0ZScsICd0cmFuc2xhdGUzZCcsICd0cmFuc2xhdGVYJywgJ3RyYW5zbGF0ZVknLFxyXG5cdCd0cmFuc2xhdGVaJ1xyXG5dXHJcbmNvbnN0IGFuaW1hdGVUeXBlczIgPSBbJ29wYWNpdHknLCAnYmFja2dyb3VuZENvbG9yJ11cclxuY29uc3QgYW5pbWF0ZVR5cGVzMyA9IFsnd2lkdGgnLCAnaGVpZ2h0JywgJ2xlZnQnLCAncmlnaHQnLCAndG9wJywgJ2JvdHRvbSddXHJcbmFuaW1hdGVUeXBlczEuY29uY2F0KGFuaW1hdGVUeXBlczIsIGFuaW1hdGVUeXBlczMpLmZvckVhY2godHlwZSA9PiB7XHJcblx0TVBBbmltYXRpb24ucHJvdG90eXBlW3R5cGVdID0gZnVuY3Rpb24oLi4uYXJncykge1xyXG5cclxuXHRcdHRoaXMuYW5pbWF0aW9uW3R5cGVdKC4uLmFyZ3MpXHJcblxyXG5cclxuXHJcblxyXG5cdFx0cmV0dXJuIHRoaXNcclxuXHR9XHJcbn0pXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQW5pbWF0aW9uKG9wdGlvbiwgX3RoaXMpIHtcclxuXHRpZighX3RoaXMpIHJldHVyblxyXG5cdGNsZWFyVGltZW91dChfdGhpcy50aW1lcilcclxuXHRyZXR1cm4gbmV3IE1QQW5pbWF0aW9uKG9wdGlvbiwgX3RoaXMpXHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///69\n");
  11395. /***/ }),
  11396. /* 70 */
  11397. /*!****************************************************************************************************************************!*\
  11398. !*** D:/Work2/Orienteering/TrackOffical/uni_modules/uni-popup/components/uni-popup/uni-popup.vue?vue&type=script&lang=js& ***!
  11399. \****************************************************************************************************************************/
  11400. /*! no static exports found */
  11401. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  11402. "use strict";
  11403. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup.vue?vue&type=script&lang=js& */ 71);\n/* harmony import */ var _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Program_Files_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWlvQixDQUFnQix1bkJBQUcsRUFBQyIsImZpbGUiOiI3MC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vdW5pLXBvcHVwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi9Qcm9ncmFtIEZpbGVzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uL1Byb2dyYW0gRmlsZXMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vUHJvZ3JhbSBGaWxlcy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91bmktcG9wdXAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///70\n");
  11404. /***/ }),
  11405. /* 71 */
  11406. /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  11407. !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Work2/Orienteering/TrackOffical/uni_modules/uni-popup/components/uni-popup/uni-popup.vue?vue&type=script&lang=js& ***!
  11408. \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  11409. /*! no static exports found */
  11410. /***/ (function(module, exports, __webpack_require__) {
  11411. "use strict";
  11412. eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/**\n * PopUp 弹出层\n * @description 弹出层组件,为了解决遮罩弹层的问题\n * @tutorial https://ext.dcloud.net.cn/plugin?id=329\n * @property {String} type = [top|center|bottom|left|right|message|dialog|share] 弹出方式\n * \t@value top 顶部弹出\n * \t@value center 中间弹出\n * \t@value bottom 底部弹出\n * \t@value left\t\t左侧弹出\n * \t@value right 右侧弹出\n * \t@value message 消息提示\n * \t@value dialog 对话框\n * \t@value share 底部分享示例\n * @property {Boolean} animation = [true|false] 是否开启动画\n * @property {Boolean} maskClick = [true|false] 蒙版点击是否关闭弹窗(废弃)\n * @property {Boolean} isMaskClick = [true|false] 蒙版点击是否关闭弹窗\n * @property {String} backgroundColor 主窗口背景色\n * @property {String} maskBackgroundColor 蒙版颜色\n * @property {Boolean} safeArea\t\t 是否适配底部安全区\n * @event {Function} change 打开关闭弹窗触发,e={show: false}\n * @event {Function} maskClick 点击遮罩触发\n */\nvar _default = {\n name: 'uniPopup',\n components: {},\n emits: ['change', 'maskClick'],\n props: {\n // 开启动画\n animation: {\n type: Boolean,\n default: true\n },\n // 弹出层类型,可选值,top: 顶部弹出层;bottom:底部弹出层;center:全屏弹出层\n // message: 消息提示 ; dialog : 对话框\n type: {\n type: String,\n default: 'center'\n },\n // maskClick\n isMaskClick: {\n type: Boolean,\n default: null\n },\n // TODO 2 个版本后废弃属性 ,使用 isMaskClick\n maskClick: {\n type: Boolean,\n default: null\n },\n backgroundColor: {\n type: String,\n default: 'none'\n },\n safeArea: {\n type: Boolean,\n default: true\n },\n maskBackgroundColor: {\n type: String,\n default: 'rgba(0, 0, 0, 0.4)'\n },\n // 指定使用v-show指令,不重新渲染Pop组件\n onceRender: {\n type: Boolean,\n default: false\n }\n },\n watch: {\n /**\n * 监听type类型\n */\n type: {\n handler: function handler(type) {\n if (!this.config[type]) return;\n this[this.config[type]](true);\n },\n immediate: true\n },\n isDesktop: {\n handler: function handler(newVal) {\n if (!this.config[newVal]) return;\n this[this.config[this.type]](true);\n },\n immediate: true\n },\n /**\n * 监听遮罩是否可点击\n * @param {Object} val\n */\n maskClick: {\n handler: function handler(val) {\n this.mkclick = val;\n },\n immediate: true\n },\n isMaskClick: {\n handler: function handler(val) {\n this.mkclick = val;\n },\n immediate: true\n },\n // H5 下禁止底部滚动\n showPopup: function showPopup(show) {}\n },\n data: function data() {\n return {\n duration: 300,\n ani: [],\n showPopup: false,\n showTrans: false,\n popupWidth: 0,\n popupHeight: 0,\n config: {\n top: 'top',\n bottom: 'bottom',\n center: 'center',\n left: 'left',\n right: 'right',\n message: 'top',\n dialog: 'center',\n share: 'bottom'\n },\n maskClass: {\n position: 'fixed',\n bottom: 0,\n top: 0,\n left: 0,\n right: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.4)'\n },\n transClass: {\n position: 'fixed',\n left: 0,\n right: 0\n },\n maskShow: true,\n mkclick: true,\n popupstyle: this.isDesktop ? 'fixforpc-top' : 'top'\n };\n },\n computed: {\n isDesktop: function isDesktop() {\n return this.popupWidth >= 500 && this.popupHeight >= 500;\n },\n bg: function bg() {\n if (this.backgroundColor === '' || this.backgroundColor === 'none') {\n return 'transparent';\n }\n return this.backgroundColor;\n }\n },\n mounted: function mounted() {\n var _this = this;\n var fixSize = function fixSize() {\n var _uni$getSystemInfoSyn = uni.getSystemInfoSync(),\n windowWidth = _uni$getSystemInfoSyn.windowWidth,\n windowHeight = _uni$getSystemInfoSyn.windowHeight,\n windowTop = _uni$getSystemInfoSyn.windowTop,\n safeArea = _uni$getSystemInfoSyn.safeArea,\n screenHeight = _uni$getSystemInfoSyn.screenHeight,\n safeAreaInsets = _uni$getSystemInfoSyn.safeAreaInsets;\n _this.popupWidth = windowWidth;\n _this.popupHeight = windowHeight + (windowTop || 0);\n // TODO fix by mehaotian 是否适配底部安全区 ,目前微信ios 、和 app ios 计算有差异,需要框架修复\n if (safeArea && _this.safeArea) {\n _this.safeAreaInsets = safeAreaInsets.bottom;\n } else {\n _this.safeAreaInsets = 0;\n }\n };\n fixSize();\n },\n // TODO vue2\n destroyed: function destroyed() {\n this.setH5Visible();\n },\n created: function created() {\n // this.mkclick = this.isMaskClick || this.maskClick\n if (this.isMaskClick === null && this.maskClick === null) {\n this.mkclick = true;\n } else {\n this.mkclick = this.isMaskClick !== null ? this.isMaskClick : this.maskClick;\n }\n if (this.animation) {\n this.duration = 300;\n } else {\n this.duration = 0;\n }\n // TODO 处理 message 组件生命周期异常的问题\n this.messageChild = null;\n // TODO 解决头条冒泡的问题\n this.clearPropagation = false;\n this.maskClass.backgroundColor = this.maskBackgroundColor;\n },\n methods: {\n setH5Visible: function setH5Visible() {},\n /**\n * 公用方法,不显示遮罩层\n */\n closeMask: function closeMask() {\n this.maskShow = false;\n },\n /**\n * 公用方法,遮罩层禁止点击\n */\n disableMask: function disableMask() {\n this.mkclick = false;\n },\n // TODO nvue 取消冒泡\n clear: function clear(e) {\n e.stopPropagation();\n this.clearPropagation = true;\n },\n open: function open(direction) {\n // fix by mehaotian 处理快速打开关闭的情况\n if (this.showPopup) {\n clearTimeout(this.timer);\n this.showPopup = false;\n }\n var innerType = ['top', 'center', 'bottom', 'left', 'right', 'message', 'dialog', 'share'];\n if (!(direction && innerType.indexOf(direction) !== -1)) {\n direction = this.type;\n }\n if (!this.config[direction]) {\n __f__(\"error\", '缺少类型:', direction, \" at uni_modules/uni-popup/components/uni-popup/uni-popup.vue:285\");\n return;\n }\n this[this.config[direction]]();\n this.$emit('change', {\n show: true,\n type: direction\n });\n },\n close: function close(type) {\n var _this2 = this;\n this.showTrans = false;\n this.$emit('change', {\n show: false,\n type: this.type\n });\n clearTimeout(this.timer);\n // // 自定义关闭事件\n // this.customOpen && this.customClose()\n this.timer = setTimeout(function () {\n _this2.showPopup = false;\n }, 300);\n },\n // TODO 处理冒泡事件,头条的冒泡事件有问题 ,先这样兼容\n touchstart: function touchstart() {\n this.clearPropagation = false;\n },\n onTap: function onTap() {\n if (this.clearPropagation) {\n // fix by mehaotian 兼容 nvue\n this.clearPropagation = false;\n return;\n }\n this.$emit('maskClick');\n if (!this.mkclick) return;\n this.close();\n },\n /**\n * 顶部弹出样式处理\n */\n top: function top(type) {\n var _this3 = this;\n this.popupstyle = this.isDesktop ? 'fixforpc-top' : 'top';\n this.ani = ['slide-top'];\n this.transClass = {\n position: 'fixed',\n left: 0,\n right: 0,\n backgroundColor: this.bg\n };\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n this.$nextTick(function () {\n if (_this3.messageChild && _this3.type === 'message') {\n _this3.messageChild.timerClose();\n }\n });\n },\n /**\n * 底部弹出样式处理\n */\n bottom: function bottom(type) {\n this.popupstyle = 'bottom';\n this.ani = ['slide-bottom'];\n this.transClass = {\n position: 'fixed',\n left: 0,\n right: 0,\n bottom: 0,\n paddingBottom: this.safeAreaInsets + 'px',\n backgroundColor: this.bg\n };\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n },\n /**\n * 中间弹出样式处理\n */\n center: function center(type) {\n this.popupstyle = 'center';\n this.ani = ['zoom-out', 'fade'];\n this.transClass = {\n position: 'fixed',\n display: 'flex',\n flexDirection: 'column',\n bottom: 0,\n left: 0,\n right: 0,\n top: 0,\n justifyContent: 'center',\n alignItems: 'center'\n };\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n },\n left: function left(type) {\n this.popupstyle = 'left';\n this.ani = ['slide-left'];\n this.transClass = {\n position: 'fixed',\n left: 0,\n bottom: 0,\n top: 0,\n backgroundColor: this.bg,\n display: 'flex',\n flexDirection: 'column'\n };\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n },\n right: function right(type) {\n this.popupstyle = 'right';\n this.ani = ['slide-right'];\n this.transClass = {\n position: 'fixed',\n bottom: 0,\n right: 0,\n top: 0,\n backgroundColor: this.bg,\n display: 'flex',\n flexDirection: 'column'\n };\n // TODO 兼容 type 属性 ,后续会废弃\n if (type) return;\n this.showPopup = true;\n this.showTrans = true;\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 27)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwL3VuaS1wb3B1cC52dWUiXSwibmFtZXMiOlsibmFtZSIsImNvbXBvbmVudHMiLCJlbWl0cyIsInByb3BzIiwiYW5pbWF0aW9uIiwidHlwZSIsImRlZmF1bHQiLCJpc01hc2tDbGljayIsIm1hc2tDbGljayIsImJhY2tncm91bmRDb2xvciIsInNhZmVBcmVhIiwibWFza0JhY2tncm91bmRDb2xvciIsIm9uY2VSZW5kZXIiLCJ3YXRjaCIsImhhbmRsZXIiLCJpbW1lZGlhdGUiLCJpc0Rlc2t0b3AiLCJzaG93UG9wdXAiLCJkYXRhIiwiZHVyYXRpb24iLCJhbmkiLCJzaG93VHJhbnMiLCJwb3B1cFdpZHRoIiwicG9wdXBIZWlnaHQiLCJjb25maWciLCJ0b3AiLCJib3R0b20iLCJjZW50ZXIiLCJsZWZ0IiwicmlnaHQiLCJtZXNzYWdlIiwiZGlhbG9nIiwic2hhcmUiLCJtYXNrQ2xhc3MiLCJwb3NpdGlvbiIsInRyYW5zQ2xhc3MiLCJtYXNrU2hvdyIsIm1rY2xpY2siLCJwb3B1cHN0eWxlIiwiY29tcHV0ZWQiLCJiZyIsIm1vdW50ZWQiLCJ1bmkiLCJ3aW5kb3dXaWR0aCIsIndpbmRvd0hlaWdodCIsIndpbmRvd1RvcCIsInNjcmVlbkhlaWdodCIsInNhZmVBcmVhSW5zZXRzIiwiZml4U2l6ZSIsImRlc3Ryb3llZCIsImNyZWF0ZWQiLCJtZXRob2RzIiwic2V0SDVWaXNpYmxlIiwiY2xvc2VNYXNrIiwiZGlzYWJsZU1hc2siLCJjbGVhciIsImUiLCJvcGVuIiwiY2xlYXJUaW1lb3V0IiwiZGlyZWN0aW9uIiwic2hvdyIsImNsb3NlIiwidG91Y2hzdGFydCIsIm9uVGFwIiwicGFkZGluZ0JvdHRvbSIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwianVzdGlmeUNvbnRlbnQiLCJhbGlnbkl0ZW1zIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFyQkEsZUF1QkE7RUFDQUE7RUFDQUMsYUFJQTtFQUNBQztFQUNBQztJQUNBO0lBQ0FDO01BQ0FDO01BQ0FDO0lBQ0E7SUFDQTtJQUNBO0lBQ0FEO01BQ0FBO01BQ0FDO0lBQ0E7SUFDQTtJQUNBQztNQUNBRjtNQUNBQztJQUNBO0lBQ0E7SUFDQUU7TUFDQUg7TUFDQUM7SUFDQTtJQUNBRztNQUNBSjtNQUNBQztJQUNBO0lBQ0FJO01BQ0FMO01BQ0FDO0lBQ0E7SUFDQUs7TUFDQU47TUFDQUM7SUFDQTtJQUNBO0lBQ0FNO01BQ0FQO01BQ0FDO0lBQ0E7RUFDQTtFQUVBTztJQUNBO0FBQ0E7QUFDQTtJQUNBUjtNQUNBUztRQUNBO1FBQ0E7TUFDQTtNQUNBQztJQUNBO0lBQ0FDO01BQ0FGO1FBQ0E7UUFDQTtNQUNBO01BQ0FDO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNBUDtNQUNBTTtRQUNBO01BQ0E7TUFDQUM7SUFDQTtJQUNBUjtNQUNBTztRQUNBO01BQ0E7TUFDQUM7SUFDQTtJQUNBO0lBQ0FFLHFDQUtBO0VBQ0E7RUFDQUM7SUFDQTtNQUNBQztNQUNBQztNQUNBSDtNQUNBSTtNQUNBQztNQUNBQztNQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztNQUNBO01BQ0FDO1FBQ0FDO1FBQ0FSO1FBQ0FEO1FBQ0FHO1FBQ0FDO1FBQ0FwQjtNQUNBO01BQ0EwQjtRQUNBRDtRQUNBTjtRQUNBQztNQUNBO01BQ0FPO01BQ0FDO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBdkI7TUFDQTtJQUNBO0lBQ0F3QjtNQUNBO1FBQ0E7TUFDQTtNQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUFBO0lBQ0E7TUFDQSw0QkFPQUM7UUFOQUM7UUFDQUM7UUFDQUM7UUFDQW5DO1FBQ0FvQztRQUNBQztNQUVBO01BQ0E7TUFDQTtNQUNBO1FBS0E7TUFFQTtRQUNBO01BQ0E7SUFDQTtJQUNBQztFQU9BO0VBRUE7RUFDQUM7SUFDQTtFQUNBO0VBUUFDO0lBQ0E7SUFDQTtNQUNBO0lBQ0E7TUFDQTtJQUNBO0lBQ0E7TUFDQTtJQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBQyx1Q0FLQTtJQUNBO0FBQ0E7QUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFFQUM7TUFFQTtJQUNBO0lBRUFDO01BQ0E7TUFDQTtRQUNBQztRQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0FDO01BQ0E7TUFDQTtRQUNBO1FBQ0E7TUFDQTtNQUNBO01BQ0E7UUFDQUM7UUFDQXZEO01BQ0E7SUFDQTtJQUNBd0Q7TUFBQTtNQUNBO01BQ0E7UUFDQUQ7UUFDQXZEO01BQ0E7TUFDQXFEO01BQ0E7TUFDQTtNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUk7TUFDQTtJQUNBO0lBRUFDO01BQ0E7UUFDQTtRQUNBO1FBQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0F0QztNQUFBO01BQ0E7TUFDQTtNQUNBO1FBQ0FTO1FBQ0FOO1FBQ0FDO1FBQ0FwQjtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQWlCO01BQ0E7TUFDQTtNQUNBO1FBQ0FRO1FBQ0FOO1FBQ0FDO1FBQ0FIO1FBQ0FzQztRQUNBdkQ7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQWtCO01BQ0E7TUFDQTtNQUNBO1FBQ0FPO1FBRUErQjtRQUNBQztRQUVBeEM7UUFDQUU7UUFDQUM7UUFDQUo7UUFDQTBDO1FBQ0FDO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0F4QztNQUNBO01BQ0E7TUFDQTtRQUNBTTtRQUNBTjtRQUNBRjtRQUNBRDtRQUNBaEI7UUFFQXdEO1FBQ0FDO01BRUE7TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0FyQztNQUNBO01BQ0E7TUFDQTtRQUNBSztRQUNBUjtRQUNBRztRQUNBSjtRQUNBaEI7UUFFQXdEO1FBQ0FDO01BRUE7TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0VBQ0E7QUFDQTtBQUFBLDJCIiwiZmlsZSI6IjcxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxuXHQ8dmlldyB2LWlmPVwic2hvd1BvcHVwfHxvbmNlUmVuZGVyXCIgdi1zaG93PVwic2hvd1BvcHVwXCIgIGNsYXNzPVwidW5pLXBvcHVwXCIgOmNsYXNzPVwiW3BvcHVwc3R5bGUsIGlzRGVza3RvcCA/ICdmaXhmb3JwYy16LWluZGV4JyA6ICcnXVwiPlxuXHRcdDx2aWV3IEB0b3VjaHN0YXJ0PVwidG91Y2hzdGFydFwiPlxuXHRcdFx0PHVuaS10cmFuc2l0aW9uIGtleT1cIjFcIiB2LWlmPVwibWFza1Nob3dcIiBuYW1lPVwibWFza1wiIG1vZGUtY2xhc3M9XCJmYWRlXCIgOnN0eWxlcz1cIm1hc2tDbGFzc1wiXG5cdFx0XHRcdDpkdXJhdGlvbj1cImR1cmF0aW9uXCIgOnNob3c9XCJzaG93VHJhbnNcIiBAY2xpY2s9XCJvblRhcFwiIC8+XG5cdFx0XHQ8dW5pLXRyYW5zaXRpb24ga2V5PVwiMlwiIDptb2RlLWNsYXNzPVwiYW5pXCIgbmFtZT1cImNvbnRlbnRcIiA6c3R5bGVzPVwidHJhbnNDbGFzc1wiIDpkdXJhdGlvbj1cImR1cmF0aW9uXCJcblx0XHRcdFx0OnNob3c9XCJzaG93VHJhbnNcIiBAY2xpY2s9XCJvblRhcFwiIDpvbmNlLXJlbmRlcj1cIm9uY2VSZW5kZXJcIj5cblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktcG9wdXBfX3dyYXBwZXJcIiA6c3R5bGU9XCJ7IGJhY2tncm91bmRDb2xvcjogYmcgfVwiIDpjbGFzcz1cIltwb3B1cHN0eWxlXVwiIEBjbGljaz1cImNsZWFyXCI+XG5cdFx0XHRcdFx0PHNsb3QgLz5cblx0XHRcdFx0PC92aWV3PlxuXHRcdFx0PC91bmktdHJhbnNpdGlvbj5cblx0XHQ8L3ZpZXc+XG5cdFx0PCEtLSAjaWZkZWYgSDUgLS0+XG5cdFx0PGtleXByZXNzIHYtaWY9XCJtYXNrU2hvd1wiIEBlc2M9XCJvblRhcFwiIC8+XG5cdFx0PCEtLSAjZW5kaWYgLS0+XG5cdDwvdmlldz5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5cdC8vICNpZmRlZiBINVxuXHRpbXBvcnQga2V5cHJlc3MgZnJvbSAnLi9rZXlwcmVzcy5qcydcblx0Ly8gI2VuZGlmXG5cblx0LyoqXG5cdCAqIFBvcFVwIOW8ueWHuuWxglxuXHQgKiBAZGVzY3JpcHRpb24g5by55Ye65bGC57uE5Lu277yM5Li65LqG6Kej5Yaz6YGu572p5by55bGC55qE6Zeu6aKYXG5cdCAqIEB0dXRvcmlhbCBodHRwczovL2V4dC5kY2xvdWQubmV0LmNuL3BsdWdpbj9pZD0zMjlcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9IHR5cGUgPSBbdG9wfGNlbnRlcnxib3R0b218bGVmdHxyaWdodHxtZXNzYWdlfGRpYWxvZ3xzaGFyZV0g5by55Ye65pa55byPXG5cdCAqIFx0QHZhbHVlIHRvcCDpobbpg6jlvLnlh7pcblx0ICogXHRAdmFsdWUgY2VudGVyIOS4remXtOW8ueWHulxuXHQgKiBcdEB2YWx1ZSBib3R0b20g5bqV6YOo5by55Ye6XG5cdCAqIFx0QHZhbHVlIGxlZnRcdFx05bem5L6n5by55Ye6XG5cdCAqIFx0QHZhbHVlIHJpZ2h0ICDlj7PkvqflvLnlh7pcblx0ICogXHRAdmFsdWUgbWVzc2FnZSDmtojmga/mj5DnpLpcblx0ICogXHRAdmFsdWUgZGlhbG9nIOWvueivneahhlxuXHQgKiBcdEB2YWx1ZSBzaGFyZSDlupXpg6jliIbkuqvnpLrkvotcblx0ICogQHByb3BlcnR5IHtCb29sZWFufSBhbmltYXRpb24gPSBbdHJ1ZXxmYWxzZV0g5piv5ZCm5byA5ZCv5Yqo55S7XG5cdCAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn0gbWFza0NsaWNrID0gW3RydWV8ZmFsc2VdIOiSmeeJiOeCueWHu+aYr+WQpuWFs+mXreW8ueeqlyjlup/lvIMpXG5cdCAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn0gaXNNYXNrQ2xpY2sgPSBbdHJ1ZXxmYWxzZV0g6JKZ54mI54K55Ye75piv5ZCm5YWz6Zet5by556qXXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfSAgYmFja2dyb3VuZENvbG9yIOS4u+eql+WPo+iDjOaZr+iJslxuXHQgKiBAcHJvcGVydHkge1N0cmluZ30gIG1hc2tCYWNrZ3JvdW5kQ29sb3Ig6JKZ54mI6aKc6ImyXG5cdCAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn0gc2FmZUFyZWFcdFx0ICAg5piv5ZCm6YCC6YWN5bqV6YOo5a6J5YWo5Yy6XG5cdCAqIEBldmVudCB7RnVuY3Rpb259IGNoYW5nZSDmiZPlvIDlhbPpl63lvLnnqpfop6blj5HvvIxlPXtzaG93OiBmYWxzZX1cblx0ICogQGV2ZW50IHtGdW5jdGlvbn0gbWFza0NsaWNrIOeCueWHu+mBrue9qeinpuWPkVxuXHQgKi9cblxuXHRleHBvcnQgZGVmYXVsdCB7XG5cdFx0bmFtZTogJ3VuaVBvcHVwJyxcblx0XHRjb21wb25lbnRzOiB7XG5cdFx0XHQvLyAjaWZkZWYgSDVcblx0XHRcdGtleXByZXNzXG5cdFx0XHQvLyAjZW5kaWZcblx0XHR9LFxuXHRcdGVtaXRzOiBbJ2NoYW5nZScsICdtYXNrQ2xpY2snXSxcblx0XHRwcm9wczoge1xuXHRcdFx0Ly8g5byA5ZCv5Yqo55S7XG5cdFx0XHRhbmltYXRpb246IHtcblx0XHRcdFx0dHlwZTogQm9vbGVhbixcblx0XHRcdFx0ZGVmYXVsdDogdHJ1ZVxuXHRcdFx0fSxcblx0XHRcdC8vIOW8ueWHuuWxguexu+Wei++8jOWPr+mAieWAvO+8jHRvcDog6aG26YOo5by55Ye65bGC77ybYm90dG9t77ya5bqV6YOo5by55Ye65bGC77ybY2VudGVy77ya5YWo5bGP5by55Ye65bGCXG5cdFx0XHQvLyBtZXNzYWdlOiDmtojmga/mj5DnpLogOyBkaWFsb2cgOiDlr7nor53moYZcblx0XHRcdHR5cGU6IHtcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxuXHRcdFx0XHRkZWZhdWx0OiAnY2VudGVyJ1xuXHRcdFx0fSxcblx0XHRcdC8vIG1hc2tDbGlja1xuXHRcdFx0aXNNYXNrQ2xpY2s6IHtcblx0XHRcdFx0dHlwZTogQm9vbGVhbixcblx0XHRcdFx0ZGVmYXVsdDogbnVsbFxuXHRcdFx0fSxcblx0XHRcdC8vIFRPRE8gMiDkuKrniYjmnKzlkI7lup/lvIPlsZ7mgKcg77yM5L2/55SoIGlzTWFza0NsaWNrXG5cdFx0XHRtYXNrQ2xpY2s6IHtcblx0XHRcdFx0dHlwZTogQm9vbGVhbixcblx0XHRcdFx0ZGVmYXVsdDogbnVsbFxuXHRcdFx0fSxcblx0XHRcdGJhY2tncm91bmRDb2xvcjoge1xuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXG5cdFx0XHRcdGRlZmF1bHQ6ICdub25lJ1xuXHRcdFx0fSxcblx0XHRcdHNhZmVBcmVhOiB7XG5cdFx0XHRcdHR5cGU6IEJvb2xlYW4sXG5cdFx0XHRcdGRlZmF1bHQ6IHRydWVcblx0XHRcdH0sXG5cdFx0XHRtYXNrQmFja2dyb3VuZENvbG9yOiB7XG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcblx0XHRcdFx0ZGVmYXVsdDogJ3JnYmEoMCwgMCwgMCwgMC40KSdcblx0XHRcdH0sXG5cdFx0XHQvLyDmjIflrprkvb/nlKh2LXNob3fmjIfku6TvvIzkuI3ph43mlrDmuLLmn5NQb3Dnu4Tku7Zcblx0XHRcdG9uY2VSZW5kZXI6e1xuXHRcdFx0XHR0eXBlOkJvb2xlYW4sXG5cdFx0XHRcdGRlZmF1bHQ6ZmFsc2Vcblx0XHRcdH0sXG5cdFx0fSxcblxuXHRcdHdhdGNoOiB7XG5cdFx0XHQvKipcblx0XHRcdCAqIOebkeWQrHR5cGXnsbvlnotcblx0XHRcdCAqL1xuXHRcdFx0dHlwZToge1xuXHRcdFx0XHRoYW5kbGVyOiBmdW5jdGlvbih0eXBlKSB7XG5cdFx0XHRcdFx0aWYgKCF0aGlzLmNvbmZpZ1t0eXBlXSkgcmV0dXJuXG5cdFx0XHRcdFx0dGhpc1t0aGlzLmNvbmZpZ1t0eXBlXV0odHJ1ZSlcblx0XHRcdFx0fSxcblx0XHRcdFx0aW1tZWRpYXRlOiB0cnVlXG5cdFx0XHR9LFxuXHRcdFx0aXNEZXNrdG9wOiB7XG5cdFx0XHRcdGhhbmRsZXI6IGZ1bmN0aW9uKG5ld1ZhbCkge1xuXHRcdFx0XHRcdGlmICghdGhpcy5jb25maWdbbmV3VmFsXSkgcmV0dXJuXG5cdFx0XHRcdFx0dGhpc1t0aGlzLmNvbmZpZ1t0aGlzLnR5cGVdXSh0cnVlKVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRpbW1lZGlhdGU6IHRydWVcblx0XHRcdH0sXG5cdFx0XHQvKipcblx0XHRcdCAqIOebkeWQrOmBrue9qeaYr+WQpuWPr+eCueWHu1xuXHRcdFx0ICogQHBhcmFtIHtPYmplY3R9IHZhbFxuXHRcdFx0ICovXG5cdFx0XHRtYXNrQ2xpY2s6IHtcblx0XHRcdFx0aGFuZGxlcjogZnVuY3Rpb24odmFsKSB7XG5cdFx0XHRcdFx0dGhpcy5ta2NsaWNrID0gdmFsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGltbWVkaWF0ZTogdHJ1ZVxuXHRcdFx0fSxcblx0XHRcdGlzTWFza0NsaWNrOiB7XG5cdFx0XHRcdGhhbmRsZXI6IGZ1bmN0aW9uKHZhbCkge1xuXHRcdFx0XHRcdHRoaXMubWtjbGljayA9IHZhbFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRpbW1lZGlhdGU6IHRydWVcblx0XHRcdH0sXG5cdFx0XHQvLyBINSDkuIvnpoHmraLlupXpg6jmu5rliqhcblx0XHRcdHNob3dQb3B1cChzaG93KSB7XG5cdFx0XHRcdC8vICNpZmRlZiBINVxuXHRcdFx0XHQvLyBmaXggYnkgbWVoYW90aWFuIOWkhOeQhiBoNSDmu5rliqjnqb/pgI/nmoTpl67pophcblx0XHRcdFx0ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXS5zdHlsZS5vdmVyZmxvdyA9IHNob3cgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1xuXHRcdFx0XHQvLyAjZW5kaWZcblx0XHRcdH1cblx0XHR9LFxuXHRcdGRhdGEoKSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRkdXJhdGlvbjogMzAwLFxuXHRcdFx0XHRhbmk6IFtdLFxuXHRcdFx0XHRzaG93UG9wdXA6IGZhbHNlLFxuXHRcdFx0XHRzaG93VHJhbnM6IGZhbHNlLFxuXHRcdFx0XHRwb3B1cFdpZHRoOiAwLFxuXHRcdFx0XHRwb3B1cEhlaWdodDogMCxcblx0XHRcdFx0Y29uZmlnOiB7XG5cdFx0XHRcdFx0dG9wOiAndG9wJyxcblx0XHRcdFx0XHRib3R0b206ICdib3R0b20nLFxuXHRcdFx0XHRcdGNlbnRlcjogJ2NlbnRlcicsXG5cdFx0XHRcdFx0bGVmdDogJ2xlZnQnLFxuXHRcdFx0XHRcdHJpZ2h0OiAncmlnaHQnLFxuXHRcdFx0XHRcdG1lc3NhZ2U6ICd0b3AnLFxuXHRcdFx0XHRcdGRpYWxvZzogJ2NlbnRlcicsXG5cdFx0XHRcdFx0c2hhcmU6ICdib3R0b20nXG5cdFx0XHRcdH0sXG5cdFx0XHRcdG1hc2tDbGFzczoge1xuXHRcdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxuXHRcdFx0XHRcdGJvdHRvbTogMCxcblx0XHRcdFx0XHR0b3A6IDAsXG5cdFx0XHRcdFx0bGVmdDogMCxcblx0XHRcdFx0XHRyaWdodDogMCxcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsIDAsIDAsIDAuNCknXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHRyYW5zQ2xhc3M6IHtcblx0XHRcdFx0XHRwb3NpdGlvbjogJ2ZpeGVkJyxcblx0XHRcdFx0XHRsZWZ0OiAwLFxuXHRcdFx0XHRcdHJpZ2h0OiAwXG5cdFx0XHRcdH0sXG5cdFx0XHRcdG1hc2tTaG93OiB0cnVlLFxuXHRcdFx0XHRta2NsaWNrOiB0cnVlLFxuXHRcdFx0XHRwb3B1cHN0eWxlOiB0aGlzLmlzRGVza3RvcCA/ICdmaXhmb3JwYy10b3AnIDogJ3RvcCdcblx0XHRcdH1cblx0XHR9LFxuXHRcdGNvbXB1dGVkOiB7XG5cdFx0XHRpc0Rlc2t0b3AoKSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLnBvcHVwV2lkdGggPj0gNTAwICYmIHRoaXMucG9wdXBIZWlnaHQgPj0gNTAwXG5cdFx0XHR9LFxuXHRcdFx0YmcoKSB7XG5cdFx0XHRcdGlmICh0aGlzLmJhY2tncm91bmRDb2xvciA9PT0gJycgfHwgdGhpcy5iYWNrZ3JvdW5kQ29sb3IgPT09ICdub25lJykge1xuXHRcdFx0XHRcdHJldHVybiAndHJhbnNwYXJlbnQnXG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRoaXMuYmFja2dyb3VuZENvbG9yXG5cdFx0XHR9XG5cdFx0fSxcblx0XHRtb3VudGVkKCkge1xuXHRcdFx0Y29uc3QgZml4U2l6ZSA9ICgpID0+IHtcblx0XHRcdFx0Y29uc3Qge1xuXHRcdFx0XHRcdHdpbmRvd1dpZHRoLFxuXHRcdFx0XHRcdHdpbmRvd0hlaWdodCxcblx0XHRcdFx0XHR3aW5kb3dUb3AsXG5cdFx0XHRcdFx0c2FmZUFyZWEsXG5cdFx0XHRcdFx0c2NyZWVuSGVpZ2h0LFxuXHRcdFx0XHRcdHNhZmVBcmVhSW5zZXRzXG5cdFx0XHRcdH0gPSB1bmkuZ2V0U3lzdGVtSW5mb1N5bmMoKVxuXHRcdFx0XHR0aGlzLnBvcHVwV2lkdGggPSB3aW5kb3dXaWR0aFxuXHRcdFx0XHR0aGlzLnBvcHVwSGVpZ2h0ID0gd2luZG93SGVpZ2h0ICsgKHdpbmRvd1RvcCB8fCAwKVxuXHRcdFx0XHQvLyBUT0RPIGZpeCBieSBtZWhhb3RpYW4g5piv5ZCm6YCC6YWN5bqV6YOo5a6J5YWo5Yy6ICznm67liY3lvq7kv6Fpb3Mg44CB5ZKMIGFwcCBpb3Mg6K6h566X5pyJ5beu5byC77yM6ZyA6KaB5qGG5p625L+u5aSNXG5cdFx0XHRcdGlmIChzYWZlQXJlYSAmJiB0aGlzLnNhZmVBcmVhKSB7XG5cdFx0XHRcdFx0Ly8gI2lmZGVmIE1QLVdFSVhJTlxuXHRcdFx0XHRcdHRoaXMuc2FmZUFyZWFJbnNldHMgPSBzY3JlZW5IZWlnaHQgLSBzYWZlQXJlYS5ib3R0b21cblx0XHRcdFx0XHQvLyAjZW5kaWZcblx0XHRcdFx0XHQvLyAjaWZuZGVmIE1QLVdFSVhJTlxuXHRcdFx0XHRcdHRoaXMuc2FmZUFyZWFJbnNldHMgPSBzYWZlQXJlYUluc2V0cy5ib3R0b21cblx0XHRcdFx0XHQvLyAjZW5kaWZcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLnNhZmVBcmVhSW5zZXRzID0gMFxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRmaXhTaXplKClcblx0XHRcdC8vICNpZmRlZiBINVxuXHRcdFx0Ly8gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGZpeFNpemUpXG5cdFx0XHQvLyB0aGlzLiRvbmNlKCdob29rOmJlZm9yZURlc3Ryb3knLCAoKSA9PiB7XG5cdFx0XHQvLyBcdHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBmaXhTaXplKVxuXHRcdFx0Ly8gfSlcblx0XHRcdC8vICNlbmRpZlxuXHRcdH0sXG5cdFx0Ly8gI2lmbmRlZiBWVUUzXG5cdFx0Ly8gVE9ETyB2dWUyXG5cdFx0ZGVzdHJveWVkKCkge1xuXHRcdFx0dGhpcy5zZXRINVZpc2libGUoKVxuXHRcdH0sXG5cdFx0Ly8gI2VuZGlmXG5cdFx0Ly8gI2lmZGVmIFZVRTNcblx0XHQvLyBUT0RPIHZ1ZTNcblx0XHR1bm1vdW50ZWQoKSB7XG5cdFx0XHR0aGlzLnNldEg1VmlzaWJsZSgpXG5cdFx0fSxcblx0XHQvLyAjZW5kaWZcblx0XHRjcmVhdGVkKCkge1xuXHRcdFx0Ly8gdGhpcy5ta2NsaWNrID0gIHRoaXMuaXNNYXNrQ2xpY2sgfHwgdGhpcy5tYXNrQ2xpY2tcblx0XHRcdGlmICh0aGlzLmlzTWFza0NsaWNrID09PSBudWxsICYmIHRoaXMubWFza0NsaWNrID09PSBudWxsKSB7XG5cdFx0XHRcdHRoaXMubWtjbGljayA9IHRydWVcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMubWtjbGljayA9IHRoaXMuaXNNYXNrQ2xpY2sgIT09IG51bGwgPyB0aGlzLmlzTWFza0NsaWNrIDogdGhpcy5tYXNrQ2xpY2tcblx0XHRcdH1cblx0XHRcdGlmICh0aGlzLmFuaW1hdGlvbikge1xuXHRcdFx0XHR0aGlzLmR1cmF0aW9uID0gMzAwXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLmR1cmF0aW9uID0gMFxuXHRcdFx0fVxuXHRcdFx0Ly8gVE9ETyDlpITnkIYgbWVzc2FnZSDnu4Tku7bnlJ/lkb3lkajmnJ/lvILluLjnmoTpl67pophcblx0XHRcdHRoaXMubWVzc2FnZUNoaWxkID0gbnVsbFxuXHRcdFx0Ly8gVE9ETyDop6PlhrPlpLTmnaHlhpLms6HnmoTpl67pophcblx0XHRcdHRoaXMuY2xlYXJQcm9wYWdhdGlvbiA9IGZhbHNlXG5cdFx0XHR0aGlzLm1hc2tDbGFzcy5iYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLm1hc2tCYWNrZ3JvdW5kQ29sb3Jcblx0XHR9LFxuXHRcdG1ldGhvZHM6IHtcblx0XHRcdHNldEg1VmlzaWJsZSgpIHtcblx0XHRcdFx0Ly8gI2lmZGVmIEg1XG5cdFx0XHRcdC8vIGZpeCBieSBtZWhhb3RpYW4g5aSE55CGIGg1IOa7muWKqOepv+mAj+eahOmXrumimFxuXHRcdFx0XHRkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdLnN0eWxlLm92ZXJmbG93ID0gJ3Zpc2libGUnXG5cdFx0XHRcdC8vICNlbmRpZlxuXHRcdFx0fSxcblx0XHRcdC8qKlxuXHRcdFx0ICog5YWs55So5pa55rOV77yM5LiN5pi+56S66YGu572p5bGCXG5cdFx0XHQgKi9cblx0XHRcdGNsb3NlTWFzaygpIHtcblx0XHRcdFx0dGhpcy5tYXNrU2hvdyA9IGZhbHNlXG5cdFx0XHR9LFxuXHRcdFx0LyoqXG5cdFx0XHQgKiDlhaznlKjmlrnms5XvvIzpga7nvanlsYLnpoHmraLngrnlh7tcblx0XHRcdCAqL1xuXHRcdFx0ZGlzYWJsZU1hc2soKSB7XG5cdFx0XHRcdHRoaXMubWtjbGljayA9IGZhbHNlXG5cdFx0XHR9LFxuXHRcdFx0Ly8gVE9ETyBudnVlIOWPlua2iOWGkuazoVxuXHRcdFx0Y2xlYXIoZSkge1xuXHRcdFx0XHQvLyAjaWZuZGVmIEFQUC1OVlVFXG5cdFx0XHRcdGUuc3RvcFByb3BhZ2F0aW9uKClcblx0XHRcdFx0Ly8gI2VuZGlmXG5cdFx0XHRcdHRoaXMuY2xlYXJQcm9wYWdhdGlvbiA9IHRydWVcblx0XHRcdH0sXG5cblx0XHRcdG9wZW4oZGlyZWN0aW9uKSB7XG5cdFx0XHRcdC8vIGZpeCBieSBtZWhhb3RpYW4g5aSE55CG5b+r6YCf5omT5byA5YWz6Zet55qE5oOF5Ya1XG5cdFx0XHRcdGlmICh0aGlzLnNob3dQb3B1cCkge1xuXHRcdFx0XHRcdGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKVxuXHRcdFx0XHRcdHRoaXMuc2hvd1BvcHVwID0gZmFsc2Vcblx0XHRcdFx0fVxuXHRcdFx0XHRsZXQgaW5uZXJUeXBlID0gWyd0b3AnLCAnY2VudGVyJywgJ2JvdHRvbScsICdsZWZ0JywgJ3JpZ2h0JywgJ21lc3NhZ2UnLCAnZGlhbG9nJywgJ3NoYXJlJ11cblx0XHRcdFx0aWYgKCEoZGlyZWN0aW9uICYmIGlubmVyVHlwZS5pbmRleE9mKGRpcmVjdGlvbikgIT09IC0xKSkge1xuXHRcdFx0XHRcdGRpcmVjdGlvbiA9IHRoaXMudHlwZVxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICghdGhpcy5jb25maWdbZGlyZWN0aW9uXSkge1xuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ+e8uuWwkeexu+Wei++8micsIGRpcmVjdGlvbilcblx0XHRcdFx0XHRyZXR1cm5cblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzW3RoaXMuY29uZmlnW2RpcmVjdGlvbl1dKClcblx0XHRcdFx0dGhpcy4kZW1pdCgnY2hhbmdlJywge1xuXHRcdFx0XHRcdHNob3c6IHRydWUsXG5cdFx0XHRcdFx0dHlwZTogZGlyZWN0aW9uXG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXHRcdFx0Y2xvc2UodHlwZSkge1xuXHRcdFx0XHR0aGlzLnNob3dUcmFucyA9IGZhbHNlXG5cdFx0XHRcdHRoaXMuJGVtaXQoJ2NoYW5nZScsIHtcblx0XHRcdFx0XHRzaG93OiBmYWxzZSxcblx0XHRcdFx0XHR0eXBlOiB0aGlzLnR5cGVcblx0XHRcdFx0fSlcblx0XHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpXG5cdFx0XHRcdC8vIC8vIOiHquWumuS5ieWFs+mXreS6i+S7tlxuXHRcdFx0XHQvLyB0aGlzLmN1c3RvbU9wZW4gJiYgdGhpcy5jdXN0b21DbG9zZSgpXG5cdFx0XHRcdHRoaXMudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR0aGlzLnNob3dQb3B1cCA9IGZhbHNlXG5cdFx0XHRcdH0sIDMwMClcblx0XHRcdH0sXG5cdFx0XHQvLyBUT0RPIOWkhOeQhuWGkuazoeS6i+S7tu+8jOWktOadoeeahOWGkuazoeS6i+S7tuaciemXrumimCDvvIzlhYjov5nmoLflhbzlrrlcblx0XHRcdHRvdWNoc3RhcnQoKSB7XG5cdFx0XHRcdHRoaXMuY2xlYXJQcm9wYWdhdGlvbiA9IGZhbHNlXG5cdFx0XHR9LFxuXG5cdFx0XHRvblRhcCgpIHtcblx0XHRcdFx0aWYgKHRoaXMuY2xlYXJQcm9wYWdhdGlvbikge1xuXHRcdFx0XHRcdC8vIGZpeCBieSBtZWhhb3RpYW4g5YW85a65IG52dWVcblx0XHRcdFx0XHR0aGlzLmNsZWFyUHJvcGFnYXRpb24gPSBmYWxzZVxuXHRcdFx0XHRcdHJldHVyblxuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuJGVtaXQoJ21hc2tDbGljaycpXG5cdFx0XHRcdGlmICghdGhpcy5ta2NsaWNrKSByZXR1cm5cblx0XHRcdFx0dGhpcy5jbG9zZSgpXG5cdFx0XHR9LFxuXHRcdFx0LyoqXG5cdFx0XHQgKiDpobbpg6jlvLnlh7rmoLflvI/lpITnkIZcblx0XHRcdCAqL1xuXHRcdFx0dG9wKHR5cGUpIHtcblx0XHRcdFx0dGhpcy5wb3B1cHN0eWxlID0gdGhpcy5pc0Rlc2t0b3AgPyAnZml4Zm9ycGMtdG9wJyA6ICd0b3AnXG5cdFx0XHRcdHRoaXMuYW5pID0gWydzbGlkZS10b3AnXVxuXHRcdFx0XHR0aGlzLnRyYW5zQ2xhc3MgPSB7XG5cdFx0XHRcdFx0cG9zaXRpb246ICdmaXhlZCcsXG5cdFx0XHRcdFx0bGVmdDogMCxcblx0XHRcdFx0XHRyaWdodDogMCxcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6IHRoaXMuYmdcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBUT0RPIOWFvOWuuSB0eXBlIOWxnuaApyDvvIzlkI7nu63kvJrlup/lvINcblx0XHRcdFx0aWYgKHR5cGUpIHJldHVyblxuXHRcdFx0XHR0aGlzLnNob3dQb3B1cCA9IHRydWVcblx0XHRcdFx0dGhpcy5zaG93VHJhbnMgPSB0cnVlXG5cdFx0XHRcdHRoaXMuJG5leHRUaWNrKCgpID0+IHtcblx0XHRcdFx0XHRpZiAodGhpcy5tZXNzYWdlQ2hpbGQgJiYgdGhpcy50eXBlID09PSAnbWVzc2FnZScpIHtcblx0XHRcdFx0XHRcdHRoaXMubWVzc2FnZUNoaWxkLnRpbWVyQ2xvc2UoKVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdH0sXG5cdFx0XHQvKipcblx0XHRcdCAqIOW6lemDqOW8ueWHuuagt+W8j+WkhOeQhlxuXHRcdFx0ICovXG5cdFx0XHRib3R0b20odHlwZSkge1xuXHRcdFx0XHR0aGlzLnBvcHVwc3R5bGUgPSAnYm90dG9tJ1xuXHRcdFx0XHR0aGlzLmFuaSA9IFsnc2xpZGUtYm90dG9tJ11cblx0XHRcdFx0dGhpcy50cmFuc0NsYXNzID0ge1xuXHRcdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxuXHRcdFx0XHRcdGxlZnQ6IDAsXG5cdFx0XHRcdFx0cmlnaHQ6IDAsXG5cdFx0XHRcdFx0Ym90dG9tOiAwLFxuXHRcdFx0XHRcdHBhZGRpbmdCb3R0b206IHRoaXMuc2FmZUFyZWFJbnNldHMgKyAncHgnLFxuXHRcdFx0XHRcdGJhY2tncm91bmRDb2xvcjogdGhpcy5iZ1xuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIFRPRE8g5YW85a65IHR5cGUg5bGe5oCnIO+8jOWQjue7reS8muW6n+W8g1xuXHRcdFx0XHRpZiAodHlwZSkgcmV0dXJuXG5cdFx0XHRcdHRoaXMuc2hvd1BvcHVwID0gdHJ1ZVxuXHRcdFx0XHR0aGlzLnNob3dUcmFucyA9IHRydWVcblx0XHRcdH0sXG5cdFx0XHQvKipcblx0XHRcdCAqIOS4remXtOW8ueWHuuagt+W8j+WkhOeQhlxuXHRcdFx0ICovXG5cdFx0XHRjZW50ZXIodHlwZSkge1xuXHRcdFx0XHR0aGlzLnBvcHVwc3R5bGUgPSAnY2VudGVyJ1xuXHRcdFx0XHR0aGlzLmFuaSA9IFsnem9vbS1vdXQnLCAnZmFkZSddXG5cdFx0XHRcdHRoaXMudHJhbnNDbGFzcyA9IHtcblx0XHRcdFx0XHRwb3NpdGlvbjogJ2ZpeGVkJyxcblx0XHRcdFx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXG5cdFx0XHRcdFx0ZGlzcGxheTogJ2ZsZXgnLFxuXHRcdFx0XHRcdGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuXHRcdFx0XHRcdC8qICNlbmRpZiAqL1xuXHRcdFx0XHRcdGJvdHRvbTogMCxcblx0XHRcdFx0XHRsZWZ0OiAwLFxuXHRcdFx0XHRcdHJpZ2h0OiAwLFxuXHRcdFx0XHRcdHRvcDogMCxcblx0XHRcdFx0XHRqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG5cdFx0XHRcdFx0YWxpZ25JdGVtczogJ2NlbnRlcidcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBUT0RPIOWFvOWuuSB0eXBlIOWxnuaApyDvvIzlkI7nu63kvJrlup/lvINcblx0XHRcdFx0aWYgKHR5cGUpIHJldHVyblxuXHRcdFx0XHR0aGlzLnNob3dQb3B1cCA9IHRydWVcblx0XHRcdFx0dGhpcy5zaG93VHJhbnMgPSB0cnVlXG5cdFx0XHR9LFxuXHRcdFx0bGVmdCh0eXBlKSB7XG5cdFx0XHRcdHRoaXMucG9wdXBzdHlsZSA9ICdsZWZ0J1xuXHRcdFx0XHR0aGlzLmFuaSA9IFsnc2xpZGUtbGVmdCddXG5cdFx0XHRcdHRoaXMudHJhbnNDbGFzcyA9IHtcblx0XHRcdFx0XHRwb3NpdGlvbjogJ2ZpeGVkJyxcblx0XHRcdFx0XHRsZWZ0OiAwLFxuXHRcdFx0XHRcdGJvdHRvbTogMCxcblx0XHRcdFx0XHR0b3A6IDAsXG5cdFx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiB0aGlzLmJnLFxuXHRcdFx0XHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cblx0XHRcdFx0XHRkaXNwbGF5OiAnZmxleCcsXG5cdFx0XHRcdFx0ZmxleERpcmVjdGlvbjogJ2NvbHVtbidcblx0XHRcdFx0XHQvKiAjZW5kaWYgKi9cblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBUT0RPIOWFvOWuuSB0eXBlIOWxnuaApyDvvIzlkI7nu63kvJrlup/lvINcblx0XHRcdFx0aWYgKHR5cGUpIHJldHVyblxuXHRcdFx0XHR0aGlzLnNob3dQb3B1cCA9IHRydWVcblx0XHRcdFx0dGhpcy5zaG93VHJhbnMgPSB0cnVlXG5cdFx0XHR9LFxuXHRcdFx0cmlnaHQodHlwZSkge1xuXHRcdFx0XHR0aGlzLnBvcHVwc3R5bGUgPSAncmlnaHQnXG5cdFx0XHRcdHRoaXMuYW5pID0gWydzbGlkZS1yaWdodCddXG5cdFx0XHRcdHRoaXMudHJhbnNDbGFzcyA9IHtcblx0XHRcdFx0XHRwb3NpdGlvbjogJ2ZpeGVkJyxcblx0XHRcdFx0XHRib3R0b206IDAsXG5cdFx0XHRcdFx0cmlnaHQ6IDAsXG5cdFx0XHRcdFx0dG9wOiAwLFxuXHRcdFx0XHRcdGJhY2tncm91bmRDb2xvcjogdGhpcy5iZyxcblx0XHRcdFx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXG5cdFx0XHRcdFx0ZGlzcGxheTogJ2ZsZXgnLFxuXHRcdFx0XHRcdGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nXG5cdFx0XHRcdFx0LyogI2VuZGlmICovXG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gVE9ETyDlhbzlrrkgdHlwZSDlsZ7mgKcg77yM5ZCO57ut5Lya5bqf5byDXG5cdFx0XHRcdGlmICh0eXBlKSByZXR1cm5cblx0XHRcdFx0dGhpcy5zaG93UG9wdXAgPSB0cnVlXG5cdFx0XHRcdHRoaXMuc2hvd1RyYW5zID0gdHJ1ZVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuPC9zY3JpcHQ+XG48c3R5bGUgbGFuZz1cInNjc3NcIj5cblx0LnVuaS1wb3B1cCB7XG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cblx0XHR6LWluZGV4OiA5OTtcblxuXHRcdC8qICNlbmRpZiAqL1xuXHRcdCYudG9wLFxuXHRcdCYubGVmdCxcblx0XHQmLnJpZ2h0IHtcblx0XHRcdC8qICNpZmRlZiBINSAqL1xuXHRcdFx0dG9wOiB2YXIoLS13aW5kb3ctdG9wKTtcblx0XHRcdC8qICNlbmRpZiAqL1xuXHRcdFx0LyogI2lmbmRlZiBINSAqL1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0LyogI2VuZGlmICovXG5cdFx0fVxuXG5cdFx0LnVuaS1wb3B1cF9fd3JhcHBlciB7XG5cdFx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdC8qICNlbmRpZiAqL1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHQvKiBpcGhvbmV4IOetieWuieWFqOWMuuiuvue9ru+8jOW6lemDqOWuieWFqOWMuumAgumFjSAqL1xuXHRcdFx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xuXHRcdFx0Ly8gcGFkZGluZy1ib3R0b206IGNvbnN0YW50KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO1xuXHRcdFx0Ly8gcGFkZGluZy1ib3R0b206IGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTtcblx0XHRcdC8qICNlbmRpZiAqL1xuXHRcdFx0Ji5sZWZ0LFxuXHRcdFx0Ji5yaWdodCB7XG5cdFx0XHRcdC8qICNpZmRlZiBINSAqL1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogdmFyKC0td2luZG93LXRvcCk7XG5cdFx0XHRcdC8qICNlbmRpZiAqL1xuXHRcdFx0XHQvKiAjaWZuZGVmIEg1ICovXG5cdFx0XHRcdHBhZGRpbmctdG9wOiAwO1xuXHRcdFx0XHQvKiAjZW5kaWYgKi9cblx0XHRcdFx0ZmxleDogMTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuZml4Zm9ycGMtei1pbmRleCB7XG5cdFx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xuXHRcdHotaW5kZXg6IDk5OTtcblx0XHQvKiAjZW5kaWYgKi9cblx0fVxuXG5cdC5maXhmb3JwYy10b3Age1xuXHRcdHRvcDogMDtcblx0fVxuPC9zdHlsZT5cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///71\n");
  11413. /***/ })
  11414. ],[[0,"app-config"]]]);